Skip to content

About

Fleet manager for Tasmota devices: inventory, health, OTA updates, backups, policy and bulk commands. One Go binary with SQLite.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

1 watching

Forks

Latest commit

 

History

794 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

TasmoFleet

Back up, check and update your Tasmota devices from one place, on your own server.

Release Docker Hub pulls License: AGPL-3.0-or-later CI

Website · Live demo · Install · Docs · Release notes · Discussions

The TasmoFleet dashboard: fleet state, what needs attention, recent transactions

TasmoFleet is a self-hosted fleet manager for Tasmota devices, one Go binary with an embedded SQLite database. All screenshots show simulated devices; the live demo is the real UI with a simulated fleet of 60 devices, saved as static pages (actions are disabled).

Why TasmoFleet

Built on a home fleet of a few dozen devices, as an alternative to TasmoAdmin (it imports its device list).

  • Backups with diff and restore: the raw .dmp plus decoded JSON, scheduled and before every update, compared side by side, restored onto the same or a replacement device.
  • Policy and compliance: rules such as PowerOnState 0 or TelePeriod 300 per chip family, tag or device, a drift view per device, and "Make compliant" as one transaction.
  • Safe bulk firmware updates: persisted server-side jobs (closing the browser does not stop them), bounded parallelism, and a guard before every OtaUrl and Upgrade that refuses unknown hardware, a chip-family mismatch, safeboot images and a variant change you did not choose.
  • MQTT, optional: live state and pages that update without reloading; without MQTT every feature works over HTTP polling.
  • Notifications by webhook (for example Home Assistant) or email when an update finishes or a scheduled backup or snapshot fails.
  • Sign-in with OIDC single sign-on, trusted forward-auth headers or local accounts; roles and an audit log of every change.
  • Nothing changes on a device on its own: background work only reads. See what TasmoFleet changes on your devices.

Also: discovery via MQTT or HTTP scan, Prometheus metrics, light and dark theme, phone layout, import from TasmoAdmin.

Device list Policy rule editor
Device list with status, firmware and chip columns Policy rule editor suggesting commands from the Tasmota catalogue

A firmware update of four devices: pick them, review, start, watch each device's progress

Quick start (Docker)

docker run -d --name tasmofleet \
  -p 8443:8080 -p 80:80 \
  -e TZ=Europe/Berlin \
  -v tasmofleet-data:/data \
  nofuturekid/tasmofleet:latest
docker logs tasmofleet 2>&1 | grep -o '/setup/account?token=[^"]*'

Open https://<host>:8443 followed by the printed /setup/account?token=... path, accept the self-signed certificate, set the admin password and follow the setup. Port 80 serves firmware to the devices over plain HTTP; set the URL they use on the System settings page.

With Docker Compose:

services:
  tasmofleet:
    image: nofuturekid/tasmofleet:latest
    container_name: tasmofleet
    restart: unless-stopped
    ports:
      - "8443:8080" # UI (HTTPS, self-signed; container port is always 8080)
      - "80:80" # firmware for the devices (plain HTTP)
    environment:
      TZ: "Europe/Berlin"
    volumes:
      - tasmofleet-data:/data
volumes:
  tasmofleet-data:

The setup link is then in docker compose logs tasmofleet. Images are on Docker Hub and ghcr.io, for amd64 and arm64. Bind mounts, registries, architectures and upgrading: docs/installation.md.

Unraid: install TasmoFleet from Community Applications (search for it in the Apps tab). A manual template is in deploy/unraid/tasmofleet.xml.

Home Assistant app: experimental and not published yet (no sidebar entry, no Home Assistant sign-in). The app and its documentation are in deploy/homeassistant/tasmofleet.

Backing up TasmoFleet

Back up the whole data directory (the /data volume): it holds the database and the device backups. System, Snapshots downloads a consistent database snapshot, and scheduled snapshots are possible. How to take, schedule and restore them: docs/backing-up.md.

Documentation

Status

Pre-1.0, single maintainer. It runs a home fleet of a few dozen devices every day, but breaking changes are to be expected before 1.0: read the CHANGELOG before updating. Your data is migrated forward; configuration and routes may change. Questions and ideas are welcome in Discussions, bug reports in the issues.

How it is built (AI disclosure)

TasmoFleet is built with Claude Code: most code, tests and docs were written by it. The maintainer sets direction, reviews the changes and tests them on a real fleet of Tasmota devices. The safety-critical parts (firmware selection, the OTA state machine) run under mutation testing in addition to unit, integration and Playwright tests against a device simulator.

TasmoFleet is an independent project and is not affiliated with, endorsed by or sponsored by Tasmota or its maintainers. "Tasmota" is the name of the firmware this tool manages; the TasmoFleet logo is original and unrelated to the Tasmota logo.

License

GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). If you run a modified version as a network service, you must offer its source to its users; the About page links to the source code. Third-party notices are in NOTICE.

About

Fleet manager for Tasmota devices: inventory, health, OTA updates, backups, policy and bulk commands. One Go binary with SQLite.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages