Updating & Maintenance
Kuberfy is packaged as a single multi-arch Docker image (ghcr.io/joelveloz/kuberfy:latest) with native support for both amd64 (x86_64) and arm64 (Apple Silicon / AWS Graviton / Raspberry Pi).
One-Command Updates
Method A: Using Host CLI (Recommended)
If you are on the server host where Kuberfy was installed:
kuberfy updateMethod B: Remote Shell Script
You can also trigger an update from any terminal with root access to the Docker daemon:
curl -sSL https://kuberfy.pages.dev/update.sh | shHow Rolling Updates Work
When an update is executed, the following sequence occurs automatically:
- Docker pulls the latest image tag from GitHub Container Registry.
- Docker Swarm executes a rolling service update with
--update-parallelism 1. - The new container boots up and connects to the existing SQLite database and Docker socket.
- Traefik seamlessly switches incoming HTTP and WebSocket traffic to the newly spawned container.
- The old container is safely terminated.
Zero Downtime: Deployed applications and background workloads running in your server are unaffected when the Kuberfy control plane updates.
Data Persistence & Backups
All platform state (users, session tokens, projects, application configs, domain mappings, and deployment logs) is stored in a single SQLite database inside the kuberfy-data Docker volume.
Backing Up Your Data
Because SQLite is a single file, taking a complete backup is as simple as copying the database file:
# Backup the SQLite database to a local file
docker run --rm -v kuberfy-data:/data -v $(pwd):/backup alpine \
cp /data/kuberfy.db /backup/kuberfy-backup-$(date +%Y%m%d).dbRestoring from Backup
# Restore from a backup file
docker run --rm -v kuberfy-data:/data -v $(pwd):/backup alpine \
cp /backup/kuberfy-backup.db /data/kuberfy.db