A modern web-based Tasmota firmware builder that runs in a Docker container. Build custom Tasmota firmware for ESP8266 and ESP32 devices with a simple web interface.
docker run -d \
--name tasmota-builder \
-p 3000:3000 \
-v $(pwd)/data:/data \
smilexth/tasmota-builder:latest
Access the web interface at: http://localhost:3000
#define statementsThis image supports multiple architectures:
linux/amd64 - Intel/AMD 64-bitlinux/arm64 - ARM 64-bit (Apple M1/M2)linux/arm/v7 - ARM 32-bit (Raspberry Pi)version: '3.8'
services:
tasmota-builder:
image: smilexth/tasmota-builder:latest
container_name: tasmota-builder
ports:
- "3000:3000"
volumes:
- ./data:/data
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
docker run -d \
--name tasmota-builder \
-p 8080:3000 \
-v $(pwd)/data:/data \
smilexth/tasmota-builder:latest
tasmota - Standard buildtasmota-sensors - With sensor supporttasmota-display - With display supporttasmota-ir - With infrared supporttasmota-lite - Minimal buildtasmota32 - ESP32 standardtasmota32s3 - ESP32-S3 (dual-core, more RAM)tasmota32c2 - ESP32-C2 (RISC-V, low cost)tasmota32c3 - ESP32-C3 (RISC-V, Wi-Fi + BLE)tasmota32c6 - ESP32-C6 (RISC-V, Wi-Fi 6)The container exposes a RESTful API:
| Endpoint | Method | Description |
|---|---|---|
/ | GET | Web interface |
/health | GET | Health check |
/api/environments | GET | List build environments |
/api/build | POST | Start build |
/api/build/{id}/status | GET | Build status |
/api/build/{id}/download | GET | Download firmware |
/api/builds | GET | List all builds |
/api/clean | POST | Clean cache |
# Start a build
curl -X POST -H "Content-Type: application/json" \
-d '{"environment":"tasmota32","config":"#define USE_MQTT"}' \
http://localhost:3000/api/build
# Check build status
curl http://localhost:3000/api/build/{build_id}/status
# Download firmware
curl -O http://localhost:3000/api/build/{build_id}/download
| Variable | Default | Description |
|---|---|---|
FLASK_ENV | production | Flask environment |
PYTHONUNBUFFERED | 1 | Python output buffering |
PLATFORMIO_CORE_DIR | /data/.platformio | PlatformIO directory |
/data - Persistent storage for:
# Check logs
docker logs tasmota-builder
# Verify health
docker exec tasmota-builder curl -f http://localhost:3000/health
# Clean cache
curl -X POST http://localhost:3000/api/clean
# Restart container
docker restart tasmota-builder
# Run with increased memory
docker run -d \
--name tasmota-builder \
--memory=4g \
-p 3000:3000 \
-v $(pwd)/data:/data \
smilexth/tasmota-builder:latest
latest - Latest stable releasev1.0.0 - Specific versionmain - Development branch (unstable)This project builds upon the open-source Tasmota firmware. See the original Tasmota repository for licensing.
For issues, feature requests, or questions:
Note: Due to a known PlatformIO toolchain PATH issue in containerized environments, build execution may fail at the compilation step. The web interface and API are fully functional for demonstration purposes.
Content type
Image
Digest
sha256:8b0233835…
Size
541.1 MB
Last updated
about 1 year ago
docker pull smilexth/tasmota-builder