Putting an instance back
A fresh install, the daemon stopped, the dump loaded, the files put back. The procedure the instance's backup is for.
There is no button for this — the database being replaced is the one the button would run on — so it is done by hand, on the new box, from an instance backup you downloaded.
Before you start
This replaces everything the new instance knows. Do it on a box you have just installed and not yet claimed, and have the archive on it.
1. Install
curl -fsSL https://cubeship.dev/install.sh | shInstall the same version the backup came from if you can; a newer daemon will migrate the rows forward on its next start, an older one will not read them.
2. Stop the daemon
docker stop cubeship-daemonThe instance's Postgres keeps running — it is what the dump is loaded into.
3. Unpack the archive
mkdir restore && tar -xzf instance-2026-09-11T030000.000Z.tar.gz -C restore
ls restore # cubeship.sql letsencrypt/ projects/4. Load the database
The fresh install already created the schema. Drop it and load the dump in its place; the password and the names are read from the container's own environment, so nothing is typed:
docker exec -i cubeship-postgres sh -c 'PGPASSWORD="$POSTGRES_PASSWORD" psql -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "DROP SCHEMA public CASCADE; CREATE SCHEMA public;"'
docker exec -i cubeship-postgres sh -c 'PGPASSWORD="$POSTGRES_PASSWORD" psql -U "$POSTGRES_USER" -d "$POSTGRES_DB"' < restore/cubeship.sql5. Put the files back
cp restore/letsencrypt/acme.json /var/lib/cubeship/letsencrypt/acme.json
cp -r restore/projects /var/lib/cubeship//var/lib/cubeship is the default data directory; use yours if the
install was given another.
6. Start the daemon
docker start cubeship-daemonIt runs any migrations the new version needs and comes up with every account, project, app, credential and attachment the backup held. Point the DNS records at the new box, and the certificates in the restored store keep answering for the names they cover.
What is not back
The data: every database and every managed bucket is empty, and comes back from its own backups — create the database with the same engine and major version, then restore. Apps come back on their next deploy, which a push or a build triggers; an app that follows the instance's registry needs its image pushed again, since the registry's contents were not in the archive either.
The instance's own backup
Cubeship's own database — every account, project, app, credential and attachment — plus the two files that cannot be worked out again, on the same schedule machinery.
Object storage
The buckets this instance can reach — a MinIO it runs, or an S3 endpoint it holds the keys to — and the files in them.