Skip to content

Backups and Data Management

Protect your self-hosted Glassy data with automated daily backups, optional AES-256-GCM encryption, manual backup and restore, and storage monitoring.

Video coming soon.

Before you start

  • self-hosting/01-deploying-with-docker

What you'll learn

  • Understand the automatic daily backup schedule
  • Configure backup encryption
  • Perform a manual backup
  • Restore from a backup
  • Know what is and isn't included in backups

Backups are critical for any self-hosted setup. Glassy handles this automatically, but understanding the system helps you recover confidently when you need to.

Automatic daily backups

Glassy creates an automatic backup of your SQLite database every day at 02:00 server time. No setup required.

  • Frequency: Every 24 hours
  • Time: 2:00 AM server time
  • Location: /app/data/backups/ (inside the glassy-data volume, accessible at ~/.GLASSYDASH_CLEAR/backups/ on the host or wherever your volume is mounted)
  • Format: notes-YYYY-MM-DDTHH-MM-SS.db
  • Retention: ~7 days retained by default (configurable)

What is backed up

The backup contains a complete copy of the SQLite database (notes.db), which includes:

  • All notes, bookmarks, and captures
  • User account and settings
  • Tags and collections
  • AI query history
  • Agent activity logs
  • Webhook delivery logs

What is NOT backed up

Backup encryption

For encrypted on-demand backups, set BACKUP_ENCRYPTION_KEY in your .env:

BACKUP_ENCRYPTION_KEY=$(openssl rand -hex 32)

When set, on-demand backups you trigger manually are encrypted with AES-256-GCM. Automatic daily backups remain unencrypted (they’re internal to the volume).

Manual backup

From the admin panel

Open Admin → Backups

Sign in as admin → Account HUD → AdminBackups.

Create backup now

Click Create backup now. A backup is created immediately and appears in the list.

From the command line

docker compose exec glassy \
  node -e "require('./server/services/backupService.js').createBackup()"

The backup file appears in the backups/ directory inside the data volume.

Manual restore

Stop the container

docker compose down

Replace the database file

cp ~/.GLASSYDASH_CLEAR/backups/notes-2026-07-13T02-00-00.db \
   ~/.GLASSYDASH_CLEAR/notes.db

Adjust the path to match your actual data volume mount and the backup filename.

Restart

docker compose up -d

The container starts with the restored database.

Storage monitoring

Check your storage usage in the Account HUD — it shows used vs. total capacity. The bar turns amber when you’re near the limit.

On the self-hosted appliance, storage caps can be configured via environment variables:

  • LIFETIME_STORAGE_MB — storage limit for the clear_lifetime tier
  • PRO_STORAGE_MB — storage limit for the Pro tier

If not set, defaults apply. Adjust these in your .env if you want a different cap.

Best practices

What’s next?

Learn about upgrades and troubleshooting — keeping Glassy updated with Watchtower and diagnosing common issues.