Self-hosting
Backups & restore
Back up the database and uploads, and restore them when you need to.
An Inkspace backup has two parts, and you need both:
- the PostgreSQL database — members, stories, comments, ratings and settings;
- the uploads folder — avatars, covers and images referenced by those stories.
The commands below assume you’re in the folder with your docker-compose.yml and use
the default inkspace user and database names.
Back up
Database
docker compose exec -T db \
pg_dump -U inkspace -d inkspace > inkspace-backup.sql
Uploads
tar czf inkspace-uploads.tar.gz -C uploads .
Automate it
A nightly cron entry that keeps dated copies:
0 3 * * * cd /srv/inkspace && \
docker compose exec -T db pg_dump -U inkspace -d inkspace > backups/db-$(date +\%F).sql && \
tar czf backups/uploads-$(date +\%F).tar.gz -C uploads .
Store copies somewhere other than the server itself.
Restore
Restores overwrite data. Practice on a test install before you rely on them.
Database
docker compose exec -T db \
psql -U inkspace -d inkspace < inkspace-backup.sql
Uploads
rm -rf uploads/*
tar xzf inkspace-uploads.tar.gz -C uploads
sudo chown -R 1000:1000 uploads
Restart the app afterwards with docker compose restart app.
Member-level exports
Backups protect the whole instance. Members can also download their own data at any time from Settings → Danger zone → Export data — see Your data & account.