Backups and Restore
Each stack has its own Postgres backup stream.
This page describes database backup. It does not describe complete instance backup.
Required backup posture
- nightly scheduled backups
- mandatory pre-migration backup before deploy
- off-VM object storage target
- encryption before upload
- rolling 30-day database backup retention for managed Personal self-hosted backups
Scope
Covered:
- the self-hosted SynckHub PostgreSQL database
- Synck VCS history and platform state stored in that database
Not covered:
- durable blob/file bytes
- derived markdown or thumbnail stores
- Meilisearch indexes
- VM disks, Docker images, TLS certificates, local config, or customer secrets
If you store blobs in cloud object storage, that storage provider’s durability is a separate part of your recovery plan. SynckHub database backup does not copy those blob bytes.
Recovery key
The backup encryption key is generated by your self-hosted instance. SynckHub does not keep a copy.
Save the recovery kit outside the SynckHub server. If you lose the key, the encrypted backups cannot be restored.
If your instance offers an option to email yourself the recovery kit, treat that as a convenience tradeoff: anyone with access to that mailbox can restore your database backups.
Restore sequence (high level)
Personal self-hosted restore is self-serve in v1.
- enable maintenance mode
- stop app containers (keep Postgres available)
- fetch encrypted backup artifact
- decrypt and restore in Postgres
- start app containers
- verify health
- disable maintenance mode
Operational requirement
Do not treat backups as valid until restore is tested in a controlled environment.