Updates and backups
Updates
Update Punchify with two commands in the installation folder:
docker compose pull
docker compose up -d
The database is migrated automatically on start. What changed is listed in the changelog of each version. To update in a controlled way, set a fixed version in .env (PUNCHIFY_VERSION=0.10.0) and raise it deliberately.
Take a fresh backup before an update (see below).
Backups
Punchify backs up the entire database every night at 02:30 (time zone of the instance). Backups are encrypted with AES-256-GCM; the key is derived from PUNCHIFY_SECRET_KEY. The last 14 are kept (PUNCHIFY_BACKUP_KEEP).
The files are in the container under /data/backups (Docker volume punchify-data). Copy them to another system regularly – a backup on the same server does not protect against that server failing.
List backups and create one manually:
docker compose exec app python3 -m punchify.backup list
docker compose exec app python3 -m punchify.backup create
Copy the backups to your machine (example):
docker compose cp app:/data/backups ./punchify-backups
Restoring
Restoring replaces all data of the installation with the state of the backup.
docker compose exec app python3 -m punchify.backup restore /data/backups/<file name>
docker compose restart app
PUNCHIFY_SECRET_KEY must be the same as when the backup was created. Copy a backup from another server into the container first with docker compose cp <file> app:/data/backups/.
Moving to a new server
- Create a backup on the old server and download it.
- Install Punchify on the new server – with the same
.env(in particularPUNCHIFY_SECRET_KEY). - Copy the backup into the container and restore it (see above).
- Point DNS to the new server.
Logs
docker compose logs app --tail 100
docker compose logs caddy --tail 100