Update the Devilbox
Update the Devilbox
Update Git files, Docker images, and local configuration together. Back up first; updates can change service defaults and volume definitions.
Backup first
From the Devilbox repository root:
mkdir -p ../devilbox-backupstar -czf ../devilbox-backups/devilbox-data-$(date +%Y%m%d).tgz data/tar -czf ../devilbox-backups/devilbox-cfg-$(date +%Y%m%d).tgz cfg/cp .env ../devilbox-backups/env-$(date +%Y%m%d) 2>/dev/null || trueAlso back up any local docker-compose.override.yml file:
cp docker-compose.override.yml \ ../devilbox-backups/docker-compose.override.yml-$(date +%Y%m%d) 2>/dev/null || trueStop the stack
./dvl.sh downIf containers are stuck, remove stopped containers explicitly:
docker compose rm -fUpdate the repository
For the main development branch:
git pull origin masterFor a tagged release:
git fetch --tagsgit checkout v1.0.1Compare .env with env-example
New releases can add, remove, or rename variables. Diff your active file against the current template:
diff -u env-example .envOr use an interactive diff tool:
vimdiff env-example .envKeep local values such as NEW_UID, NEW_GID, selected service versions,
ports, and paths, but add any new required variables from env-example.
Pull Docker images
Pull the images selected by your .env and override files:
docker compose pullIf you changed service versions, force recreation on startup:
docker compose rm -fStart again
./dvl.sh upCheck status and logs:
docker compose psdocker compose logs --tail=100 phpRun the health check:
./dvl.sh doctorRefresh generated project config
If your projects use generated HTTPD or environment config, sync it after updating:
./dvl.sh sync-httpd./dvl.sh sync-envRegenerate project YAML only when you intentionally want the current DVL defaults applied:
./dvl.sh generate-yamlUpdate checklist
- Backed up
data/,cfg/,.env, and local overrides. - Stopped Devilbox with
./dvl.sh down. - Ran
git pull origin masteror checked out the target tag. - Diffed
.envagainstenv-example. - Ran
docker compose pull. - Restarted with
./dvl.sh up. - Ran
./dvl.sh doctorand checked logs.