Skip to content

TasmoAdmin/TasmoAdmin

Repository files navigation

TasmoAdmin

Main codecov Discord

GitHub release GitHub contributors GitHub stars GitHub forks Github all releases GitHub license bootstrap php

TasmoAdmin (previously SonWEB) is an administrative platform for devices flashed with Tasmota. It can run standalone, as a container, or as a Home Assistant addon.

Features

  • Login protected
  • Multi update process
    • Select devices to update
    • Automatic mode downloads latest firmware bin from the Tasmota OTA site
  • Show device information and sensor data
  • Responsive Bootstrap 5 interface
    • SCSS-based assets with minified builds
  • Configure devices from the web UI
  • Self-update function for TasmoAdmin (disabled for Docker installs)
  • Night mode with Enable / Disable / Auto settings
  • Autoscan to find Tasmota devices
    • Network range scanning
    • MQTT broker discovery with configurable topic prefixes, subscriptions, and timeout
    • Device-specific MQTT topic matching for discovery results
  • Optional touch-friendly toggle confirmations
    • Global default in settings
    • Per-device override
  • Device list batch actions
    • Send commands, create backups, restart devices, and delete devices from the list view
  • Startpage visibility controls
    • Hide selected devices from the startpage without removing them from the inventory
  • Support for multiple sensors
  • Encrypt stored device passwords at rest

Supported Platforms

  • Apache2 and Nginx
  • Docker by @RaymondMouthaan
    • unRaid by @digiblur
  • IOCage (FreeNAS) by @tprelog

YouTube

YouTube Video by DrZzs by DrZzs

Setup

Docker

TasmoAdmin is available as a Docker image on GitHub packages.

This is a Linux Alpine based image with Nginx and PHP 8.2 installed. It supports multiple architectures, amd64 (i.e. Synology DSM), arm (i.e. Raspberry PI3) and arm64 (i.e. Pine64). Check out the Guide for TasmoAdmin on Docker for setup instructions.

This is the recommended way to get up and running.

Home Assistant Addon

TasmoAdmin is also available as Home Assistant addon, please refer to Home Assistant - addon TasmoAdmin for more information.

Using a Web Server

TasmoAdmin should run on any webserver that supports PHP 8.2 or newer.

Check the guides on the Wiki for more information.

Configuration

Some environment variables are configured to allow easier customisation of the application

  • TASMO_DATADIR - Path where to store data. If not provided defaults to ./tasmoadmin/data
  • TASMO_BASEURL - Customise the base URL for the application
  • NO_AUTH - Set to true to bypass the built-in login when authentication is handled externally
  • TASMO_DEVICE_PASSWORD_KEY - Base64-encoded 32-byte secret for device password encryption at rest

Device Password Encryption

TasmoAdmin encrypts only the password column in devices.csv. Usernames, column order, and in-memory Device objects remain unchanged.

  1. If _DATADIR_/.device-password.key exists, TasmoAdmin uses it.
  2. Otherwise, if TASMO_DEVICE_PASSWORD_KEY exists, TasmoAdmin uses it.
  3. Otherwise, TasmoAdmin lazily generates a 32-byte key, persists it to .device-password.key, and uses it.
  4. If both sources exist, they must match exactly or TasmoAdmin fails closed.

Encrypted password cells are stored as enc:v1:<base64(iv||tag||ciphertext)>.

On the first read after upgrading, legacy plaintext password cells are migrated in place to the encrypted format. Running clean=devices removes both devices.csv and .device-password.key for file-backed installs.

MQTT Discovery

TasmoAdmin can discover devices through your MQTT broker in addition to classic network autoscan.

Configure the broker connection in Settings -> MQTT discovery, then use the MQTT tab in autoscan to:

  • subscribe to one or more discovery topics such as tele/+/LWT
  • match existing devices by MQTT topic and refresh their status
  • add newly discovered devices from broker responses

You can also store a device-specific MQTT topic in the device edit form to make MQTT discovery matching more reliable in installations with custom topic layouts.

Development

Provided is a docker-compose setup to ease getting started.

Simply run:

make dev

Then visit http://localhost:8000

Persistent storage within this setup is located in the .storage folder.

DDEV

The repository also includes a DDEV setup for local development. It uses:

  • apache-fpm
  • PHP 8.5
  • Node.js 24
  • no database container

Start the environment with:

ddev start

Install PHP and Node.js dependencies:

ddev install-deps

Install the repository hooks for local staged-file validation:

pre-commit install

Build the frontend assets:

ddev build-assets

Then visit https://tasmoadmin.ddev.site.

Common development commands:

ddev ssh
ddev exec phpunit
ddev qa
ddev restart
ddev stop

Notes:

  • ddev install-deps runs composer install and npm ci in tasmoadmin/
  • ddev build-assets runs the frontend build
  • ddev qa runs the Composer quality checks
  • pre-commit run --all-files runs the repository hook set locally
  • ddev exec npm run test:js runs the JavaScript test suite
  • ddev exec npm run prettier:check verifies formatting for frontend files

Translations

We use Transifex to maintain translations of this project. If you are not familiar with this service, you can read Transifex Documentation to get started.

Add or update translations

Here are steps to translate the extension to a specific language.

  1. Join our team on Transifex.
  2. Translate resources using Transifex web interface.

Support

Use the issue functionality on this repo to report bugs or feature requests.

Alternatively, join the Discord server.

Powered by

JetBrains logo.

This project supported by JetBrains through their Licenses for Open Source program.

About

TasmoAdmin is an administrative platform for devices flashed with Tasmota

Topics

Resources

License

Code of conduct

Security policy

Stars

970 stars

Watchers

36 watching

Forks

Packages

 
 
 

Contributors