Sign inSign up

smilexth/tasmota-builder

By smilexth

•Updated about 1 year ago

Image
0

341

smilexth/tasmota-builder repository overview

⁠Tasmota Firmware Builder

Docker Pulls Docker Image Size Docker Image Version

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.

⁠Quick Start

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⁠

⁠Features

  • 🚀 Modern Web Interface - Responsive design with real-time build progress
  • 🔧 Multiple Build Environments - Support for ESP8266/ESP32 variants
  • 📝 Custom Configuration - Add your own #define statements
  • 📦 PlatformIO Integration - Professional firmware compilation
  • 💾 Build Management - Download compiled firmware directly
  • 🐳 Fully Containerized - No local dependencies required

⁠Supported Architectures

This image supports multiple architectures:

  • linux/amd64 - Intel/AMD 64-bit
  • linux/arm64 - ARM 64-bit (Apple M1/M2)
  • linux/arm/v7 - ARM 32-bit (Raspberry Pi)

⁠Usage

⁠Using Docker Compose
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
⁠With Custom Port
docker run -d \
  --name tasmota-builder \
  -p 8080:3000 \
  -v $(pwd)/data:/data \
  smilexth/tasmota-builder:latest

⁠Build Environments

⁠ESP8266
  • tasmota - Standard build
  • tasmota-sensors - With sensor support
  • tasmota-display - With display support
  • tasmota-ir - With infrared support
  • tasmota-lite - Minimal build
⁠ESP32 Family
  • tasmota32 - ESP32 standard
  • tasmota32s3 - 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)

⁠API Endpoints

The container exposes a RESTful API:

EndpointMethodDescription
/GETWeb interface
/healthGETHealth check
/api/environmentsGETList build environments
/api/buildPOSTStart build
/api/build/{id}/statusGETBuild status
/api/build/{id}/downloadGETDownload firmware
/api/buildsGETList all builds
/api/cleanPOSTClean cache
⁠Example: Start Build via API
# 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

⁠Environment Variables

VariableDefaultDescription
FLASK_ENVproductionFlask environment
PYTHONUNBUFFERED1Python output buffering
PLATFORMIO_CORE_DIR/data/.platformioPlatformIO directory

⁠Volumes

  • /data - Persistent storage for:
    • PlatformIO packages and toolchains
    • Build artifacts
    • User configurations
    • Application logs

⁠Resource Requirements

⁠Minimum
  • Memory: 2GB RAM
  • Storage: 5GB free space
  • CPU: 2 cores
  • Memory: 4GB RAM
  • Storage: 10GB free space
  • CPU: 4 cores

⁠Troubleshooting

⁠Container Won't Start
# Check logs
docker logs tasmota-builder

# Verify health
docker exec tasmota-builder curl -f http://localhost:3000/health
⁠Build Failures
# Clean cache
curl -X POST http://localhost:3000/api/clean

# Restart container
docker restart tasmota-builder
⁠Memory Issues
# Run with increased memory
docker run -d \
  --name tasmota-builder \
  --memory=4g \
  -p 3000:3000 \
  -v $(pwd)/data:/data \
  smilexth/tasmota-builder:latest

⁠Tags

  • latest - Latest stable release
  • v1.0.0 - Specific version
  • main - Development branch (unstable)

⁠License

This project builds upon the open-source Tasmota firmware. See the original Tasmota repository⁠ for licensing.

⁠Support

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.

Tag summary

Content type

Image

Digest

sha256:8b0233835…

Size

541.1 MB

Last updated

about 1 year ago

docker pull smilexth/tasmota-builder