Backup
What to back up
Section titled “What to back up”Two Docker volumes hold all the user data Pipebase generates:
<project>_pipebase-runtime-routes— deployed Camel YAML files (one per flow)<project>_pipebase-designer-flows— designer’s flow definitions, layouts, params, runtime registry, OAuth client secrets, SSO config
<project> is the Compose project name: by default the name of the
directory that holds docker-compose.yml. Put yours in place of
<project> in the commands below.
Configuration lives in .env (regenerable) and the source code lives
in git (regenerable). Lose those volumes and you lose user data.
Manual backup (one-shot)
Section titled “Manual backup (one-shot)”ssh <host> 'TS=$(date +%Y%m%d-%H%M%S)mkdir -p /backup/pipebasedocker run --rm \ -v <project>_pipebase-runtime-routes:/data:ro \ -v /backup/pipebase:/backup \ alpine tar czf /backup/runtime-routes-$TS.tar.gz -C /data .docker run --rm \ -v <project>_pipebase-designer-flows:/data:ro \ -v /backup/pipebase:/backup \ alpine tar czf /backup/designer-flows-$TS.tar.gz -C /data .'Output: two .tar.gz files per backup run. Total size: typically a
few MB; depends on flow count.
Scheduled backup
Section titled “Scheduled backup”Drop this into /etc/cron.daily/pipebase-backup (mode 755):
#!/bin/bashset -euo pipefailTS=$(date +%Y%m%d-%H%M%S)DIR=/backup/pipebaseKEEP=14 # daysPROJECT=pipebase # your Compose project name
mkdir -p $DIRfor vol in ${PROJECT}_pipebase-runtime-routes ${PROJECT}_pipebase-designer-flows; do docker run --rm -v "$vol:/data:ro" -v "$DIR:/backup" alpine \ tar czf "/backup/$vol-$TS.tar.gz" -C /data .done
# Prune anything older than KEEP daysfind $DIR -type f -name '*.tar.gz' -mtime +$KEEP -deleteOff-site copy is your call (rsync, S3, Borg, restic). The local files are useless if the host dies.
Restore
Section titled “Restore”Stop the stack first so the runtime doesn’t load mid-restore:
docker compose downdocker run --rm \ -v <project>_pipebase-runtime-routes:/data \ -v /backup/pipebase:/backup \ alpine sh -c 'cd /data && rm -rf ./* && tar xzf /backup/runtime-routes-<TS>.tar.gz'docker run --rm \ -v <project>_pipebase-designer-flows:/data \ -v /backup/pipebase:/backup \ alpine sh -c 'cd /data && rm -rf ./* && tar xzf /backup/designer-flows-<TS>.tar.gz'docker compose up -dVerify: https://designer.<root>/api/flows should return your
restored flow list.
What’s NOT in the backup
Section titled “What’s NOT in the backup”- The deploy token (
PIPEBASE_DEPLOY_TOKEN) — lives in.env - The JWT secret — same
- TLS certs — Traefik regenerates them on demand
- Container images — rebuilt from your checkout with the tags set in
docker-compose.yml
If you lose .env, regenerate the secrets via ./scripts/init.sh,
then update Coolify’s env vars to match.
Pipebase is operated by Jobu 42 Holding ApS · Company no. 44796988 Privacy