Updating the panel
Update FeatherPanel with the installer, the update button in the admin area or plain Docker Compose commands, and what to back up before you do.
On this page
The backend container runs php cli migrate every time it starts, so updating is a matter of getting new images and restarting
the stack. Pick one of the three ways below.
With the installer
curl -sSL https://get.featherpanel.com/installer.sh | bash
Pick [1] Panel, then Update Panel. For a Docker install the installer:
- Downloads the current
docker-compose.ymlagain (frommain, or the development Compose file if you chose a development build) and re-applies your panel port. - Offers the backup.
- Stops the stack, runs
docker compose pulland starts it again withdocker compose up -d.
From the admin area
On Docker installs the version widget on the admin dashboard and the Updates page (/admin/updates) can start a panel
update. The Updates page also lists plugin updates and the FeatherWings version of each node. Both call POST /api/admin/settings/docker/update, which needs the ADMIN_SETTINGS_EDIT permission.
The backend cannot restart its own containers, so it asks the featherpanel-docker-updater service on the host. That
service listens on 127.0.0.1:9418, checks the DOCKER_UPDATER_TOKEN from /var/www/featherpanel/.env, and runs
docker compose up -d --pull always --remove-orphans in /var/www/featherpanel. Its log is in
/var/www/featherpanel/install.log.
systemctl status featherpanel-docker-updater
If the button reports that the updater is unreachable, the service is not installed or not running. Run the installer’s update once; it installs the service.
With Docker Compose
cd /var/www/featherpanel
docker compose pull
docker compose up -d --remove-orphans
docker image prune -f
This keeps your existing docker-compose.yml. Compare it with the current file in the repository from time to time,
because new services and variables arrive there.
Source installs
For source installs the installer runs installer/source/init/update.bash. It discards local changes in the repository,
pulls the configured git ref, installs backend dependencies and runs migrations, rebuilds the frontend and the async
runner, and restarts the services.
After the update
- Open the panel and check the version in the admin dashboard.
- Check
docker compose ps: every service should behealthy. - Check the node versions on the Updates page and update FeatherWings where it is behind.
Frequently asked questions
The installer warns that plugins, themes and code modifications may be removed during an update and offers a backup first. Plugins live in the featherpanel_addons volume, which a normal Docker update keeps, but code changes made inside containers are lost when the images are replaced.
No. The installer stores an auto-update preference in its configuration file, but nothing in the installer or panel acts on it. Run an update yourself, with the installer, the admin update button or Docker Compose.