Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 96 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: Bug report
description: Something in the web installer isn't working as expected
title: "[Bug]: "
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Thanks for reporting a problem! Flashing issues in particular are much easier to
diagnose with concrete details - please fill in as much of this as you can.
- type: textarea
id: what-happened
attributes:
label: What happened?
description: A clear description of the bug, including what you expected to happen instead.
placeholder: Tell us what you saw...
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce
placeholder: |
1. Go to '...'
2. Select version '...'
3. Select variant/flash size '...'
4. Click 'Install' and ...
5. See error
validations:
required: true
- type: dropdown
id: chip
attributes:
label: Chip
options:
- ESP32
- ESP32-S3
- ESP32-C3
- ESP32-S2
- ESP8266
- Other / not sure
validations:
required: false
- type: input
id: board-model
attributes:
label: Specific board (if known)
placeholder: e.g. LilyGO T7-S3, Wemos D1 Mini, generic N16R8 devkit, Adafruit MatrixPortal S3...
- type: dropdown
id: variant
attributes:
label: Variant selected
options:
- Plain
- Audioreactive
- Ethernet
- ESP8266 CPU Frequency Test
- ESP32 V4
- DEBUG
- HUB75 Matrix
- Not sure
validations:
required: false
- type: input
id: flash-size
attributes:
label: Flash size (or HUB75 layout) selected
placeholder: e.g. 8MB, or "Adafruit MatrixPortal S3"
- type: input
id: wled-version
attributes:
label: WLED version you tried to install
placeholder: e.g. 16.0.1, nightly...
- type: input
id: browser
attributes:
label: Browser + OS
placeholder: e.g. Chrome 126 on Windows 11
validations:
required: true
- type: textarea
id: console
attributes:
label: Browser console output (if any)
description: Open DevTools (F12) -> Console before/while reproducing, and paste any errors here.
render: shell
- type: textarea
id: serial-log
attributes:
label: Serial/boot log (if the device fails to boot or loops after flashing)
description: If you can capture it with a serial monitor, paste the boot log here.
render: shell
- type: textarea
id: additional
attributes:
label: Anything else?
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: WLED firmware issues
url: https://github.com/wled/WLED/issues
about: Report bugs in WLED itself (not this web installer) here.
- name: WLED documentation
url: https://kno.wled.ge
about: Usage questions, setup guides, and general WLED knowledge base.
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Feature request
description: Suggest an idea or improvement for the web installer
title: "[Feature]: "
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Thanks for the suggestion! Please describe what you'd like to see and why.
- type: textarea
id: problem
attributes:
label: What problem would this solve?
description: Is this related to something you ran into, or a board/workflow that isn't well supported today?
placeholder: e.g. "I couldn't find a way to..."
- type: textarea
id: solution
attributes:
label: Describe the solution you'd like
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives you've considered
- type: textarea
id: additional
attributes:
label: Additional context
description: Screenshots, links, related boards/chips/WLED variants, etc.
19 changes: 0 additions & 19 deletions .github/workflows/nightly.yaml

This file was deleted.

59 changes: 57 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,57 @@
# WLED-WebFlasher
WLED web flasher using the Web Serial API, powered by ESPHome Web
# WLED Web Installer

A static, GitHub-Pages-friendly web installer for [WLED](https://github.com/wled/WLED), built on
[ESP Web Tools](https://esphome.github.io/esp-web-tools/).

No build step and no server component: `index.html` fetches the release list straight from the
GitHub Releases API at page-load time and generates an install manifest on the fly for whichever
version / variant / flash size combination the user picks.

## Features

- Always up to date - versions come live from the [wled/WLED releases](https://github.com/wled/WLED/releases) API, no manual manifest maintenance.
- Variant selection (Plain, Audioreactive, Ethernet, ESP8266 CPU frequency test, ESP32 V4, DEBUG, HUB75 Matrix) - unavailable variants for the selected version are hidden automatically.
- Flash size selection (1MB / 2MB / 4MB / 8MB / 16MB) for boards that ship multiple binaries (ESP32-S3, ESP8266) - unavailable sizes for the selected version/variant are hidden automatically.
- HUB75 layout selection (board/pinout picker) when the HUB75 Matrix variant is selected.
- Multi-language UI, loaded dynamically from `lang/` - see [Localization](#localization).

## Local development

Any static file server works, e.g.:

```bash
npx serve .
```

Then open the printed local URL in Chrome or Edge (Web Serial is required).

## Deploying

Push to a repository and enable GitHub Pages for it (Settings -> Pages -> Deploy from branch).
No build step is required - the repository root is the site.

## Localization

`lang/languages.json` maps each supported language code to its display name, and
`lang/<code>.json` holds that language's strings. Both are fetched at runtime - `i18n.js` never
hardcodes a language list.

To add a language:

1. Copy `lang/en.json` to `lang/<code>.json` (e.g. `lang/de.json`) and translate the values.
2. Add one line to `lang/languages.json`: `"<code>": "<Native display name>"`.

That's it - the language selector and every `data-i18n` element on the page pick it up on next
load, no code changes required. Missing keys in a translation silently fall back to English.

## Files

- `index.html`, `style.css` - page markup/styling.
- `app.js` - release fetching, manifest generation, UI wiring.
- `i18n.js` - loads `lang/` and applies translations.
- `lang/` - one JSON file per language, plus `languages.json` listing them.
- `bin/boot/` - chip bootloaders and partition tables needed to flash bare chips (WLED release assets only contain the application binary).

## License

MIT, see `LICENSE`.
Loading