Skip to content

Backup

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.

Terminal window
ssh <host> '
TS=$(date +%Y%m%d-%H%M%S)
mkdir -p /backup/pipebase
docker 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.

Drop this into /etc/cron.daily/pipebase-backup (mode 755):

#!/bin/bash
set -euo pipefail
TS=$(date +%Y%m%d-%H%M%S)
DIR=/backup/pipebase
KEEP=14 # days
PROJECT=pipebase # your Compose project name
mkdir -p $DIR
for 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 days
find $DIR -type f -name '*.tar.gz' -mtime +$KEEP -delete

Off-site copy is your call (rsync, S3, Borg, restic). The local files are useless if the host dies.

Stop the stack first so the runtime doesn’t load mid-restore:

Terminal window
docker compose down
docker 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 -d

Verify: https://designer.<root>/api/flows should return your restored flow list.

  • 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