Updates and backups
Update the panel
Section titled “Update the panel”cd deploydocker compose pulldocker compose up -d- The panel applies database migrations when it starts. Back up first (below), so you can go back.
- Game servers keep running: they run on the nodes, not in the panel. The agents reconnect within seconds.
- Installed apps on phones pick up the new version on their next start.
Update the agents
Section titled “Update the agents”On each node, pull the agent’s image and recreate its container:
docker compose -f compose.agent.yml pulldocker compose -f compose.agent.yml up -dThe node keeps its identity, and the agent picks up the running game servers again.
Back up the panel
Section titled “Back up the panel”Two things, and they belong together:
- The database: users, tenants, servers, settings, and the encrypted secrets and their keys.
- The master key (
keys/master.key): it decrypts the keys in the database. A database backup without it can be restored, but Steam passwords and secret variables can’t be read anymore, and everyone has to sign in again.
cd deploydocker compose exec -T postgres pg_dump -U panel -d panel -Fc > panel-$(date +%F).dumpKeep the dumps and keys/master.key in different places: someone with both can read the secrets.
Restore
Section titled “Restore”- Start an empty database:
docker compose up -d postgres - Load the dump:
Terminal window docker compose exec -T postgres pg_restore -U panel -d panel --no-owner < panel-2026-10-15.dump - Put the same
keys/master.keyin place and start the panel:docker compose up -d
The nodes reconnect on their own; their identity is in the database.
What lives on the nodes
Section titled “What lives on the nodes”The panel’s backup doesn’t contain the game servers’ files. They are on the nodes, in /var/lib/panel-agent:
| Folder | Contents |
|---|---|
servers/ |
the game servers’ files |
backups/ |
server backups made in the panel |
console/ |
console logs |
agent.json |
the node’s identity (new enrollment token: a new one) |
Server backups stay on the node they were made on. To keep copies elsewhere, back up /var/lib/panel-agent/backups/ with your usual tools (restic, Borg, a NAS sync); copies to S3 or a NAS from the panel itself are planned.