Persistent Data

Persistent Data

The auto-pull cron uses git reset --hard, which overwrites any tracked files. Content managed through the admin panel must NOT be tracked in git, or it will be overwritten on every pull. The .gitignore file excludes these paths:

# Runtime data — managed by admin panel, not git
admin/users.json
admin/audit.json
admin/.encryption-key
admin/.rate-limits.json
admin/.versions.json
admin/.sessions.json
admin/.ip-salt
admin/.ip-geo-cache.json
admin/.vapid-keys.json
admin/drafts.json
content/json/
content/markdown/
content/.rate-limit/
static/server/counter/data/
static/img/team/
static/img/directory/
static/img/gallery/
static/video/
documents/

These files only exist on the server and are never overwritten by deployments. If you need to add a new writable path, add it to .gitignore before creating it, or git will track it and the next pull will reset it.

Backup these paths regularly. Since they are not in git, they are not backed up automatically. Copy them off the server periodically or set up a backup cron. The key paths to back up are: content/, documents/, static/img/gallery/, static/img/team/, static/video/, admin/users.json, admin/audit.json, admin/.encryption-key, admin/.versions.json, and admin/drafts.json.
Back to top