Skip to Content
🚀 We just launched! Please star us on Github!
DocumentationUpdating & Backup

Updating & Backup

Smart Panel is actively developed, and updates bring new features, bug fixes, and security patches. This guide covers how to safely update your installation and back up your data.


Before You Update

⚠️

Always back up your data before updating. While updates include automatic database migrations, it’s good practice to have a recovery point.


Backup

Your Smart Panel stores two important files:

  • config/config.yaml — system configuration (plugins, weather, display settings)
  • data/database.sqlite — all devices, dashboards, users, and scenes

The location depends on your installation method:

Installation MethodData Location
One-liner script or npm global/var/lib/smart-panel/
Manual tarball/var/smart-panel/
DockerInside the smart-panel-data Docker volume

Systemd Installations (npm, tarball, one-liner)

Stop the services

sudo systemctl stop smart-panel-backend smart-panel-display

Create a backup

sudo tar czf ~/smart-panel-backup-$(date +%Y%m%d).tar.gz -C /var/lib/smart-panel .

Restart the services

sudo systemctl start smart-panel-backend smart-panel-display

Docker Installation

docker run --rm -v smart-panel-data:/data -v $(pwd):/backup alpine \ tar czf /backup/smart-panel-backup-$(date +%Y%m%d).tar.gz -C /data .

You don’t need to stop the Docker container to back up, but stopping it ensures data consistency.


Restore from Backup

Systemd Installations

sudo systemctl stop smart-panel-backend smart-panel-display sudo tar xzf ~/smart-panel-backup-YYYYMMDD.tar.gz -C /var/lib/smart-panel sudo systemctl start smart-panel-backend smart-panel-display

Docker Installation

docker compose down docker run --rm -v smart-panel-data:/data -v $(pwd):/backup alpine \ sh -c "rm -rf /data/* && tar xzf /backup/smart-panel-backup-YYYYMMDD.tar.gz -C /data" docker compose up -d

Updating

Docker

docker compose pull docker compose up -d

The container automatically runs pending database migrations on startup.

One-Liner / npm Global Install

sudo smart-panel-service update

This downloads the latest version, runs migrations, and restarts the services.

Manual Tarball Install

Stop services

sudo systemctl stop smart-panel-backend smart-panel-display

Download the latest release

curl -sL https://github.com/FastyBird/smart-panel/releases/latest/download/smart-panel.tar.gz \ -o /tmp/smart-panel.tar.gz

Extract over existing installation

sudo tar xzf /tmp/smart-panel.tar.gz -C /opt/smart-panel --strip-components=1

Install dependencies

cd /opt/smart-panel && pnpm install --production

Start services

sudo systemctl start smart-panel-backend smart-panel-display

Database migrations run automatically when the backend starts.


Pinning a Version

Docker

Edit your docker-compose.yml to use a specific tag:

services: smart-panel: image: ghcr.io/fastybird/smart-panel:1.2.3

npm

npm install -g @fastybird/smart-panel@1.2.3

Rolling Back

If an update causes problems:

  1. Stop the services
  2. Restore your backup (see above)
  3. Install the previous version using the pinning method above
  4. Start the services
⚠️

Rolling back after a database migration may cause issues if the schema has changed. Always test updates on a non-critical setup first if possible.


What’s Next?

Last updated on