Back up, check and update your Tasmota devices from one place, on your own server.
Website · Live demo · Install · Docs · Release notes · Discussions
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).
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
.dmpplus 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 0orTelePeriod 300per 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
OtaUrlandUpgradethat 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 |
|---|---|
![]() |
![]() |
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.
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.
- Installing, upgrading, configuration (every environment variable, TLS, time zone, Home Assistant app)
- Backing up TasmoFleet and emergency access
- What TasmoFleet changes on your devices, including the two roles
- Reverse proxy, OIDC (Authentik), Prometheus, Grafana and Unraid examples: deploy/
- Design and behaviour: spec; security notes per feature: docs/security/; research: docs/research/
- CHANGELOG, ROADMAP, development
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.
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.
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.



