Skip to content

Backup & Restore

Fluent's open-source runtime supports snapshot-based backup and restore. The snapshot format is JSON and is compatible across Fluent environments, so you can move data between self-hosted instances, import from early access, or back up before upgrades.

Export a Snapshot

Default SQLite Backend

bash
npm run oss:export:snapshot -- --out "./tmp/fluent-oss-snapshot.json"

Postgres + S3 Backend

bash
npm run oss:export:snapshot -- --backend postgres-s3 \
  --out "./tmp/fluent-oss-postgres-s3-snapshot.json"

From Early Access

Export your data from the managed service:

bash
npm run export:snapshot:hosted -- --database fluent-hosted \
  --out "./tmp/fluent-cloud-snapshot.json"

Import a Snapshot

Into Default SQLite Backend

bash
npm run oss:import:snapshot -- --file "./tmp/fluent-oss-snapshot.json"

Import into a specific root:

bash
npm run oss:import:snapshot -- --root "./tmp/fluent-restore" \
  --file "./tmp/fluent-oss-snapshot.json"

Into Postgres + S3 Backend

bash
npm run oss:import:snapshot -- --backend postgres-s3 \
  --file "./tmp/fluent-oss-postgres-s3-snapshot.json"

From Early Access Into A Self-Hosted Runtime

bash
npm run oss:import:snapshot -- --file "./tmp/fluent-cloud-snapshot.json"

The snapshot format is aligned between early access and the open-source runtime, so the same JSON artifact works for all import paths.

What Is Included

The snapshot contains:

  • All current relational rows (profiles, Meals plans and recipes, grocery state, Style items, budget facts, and related evidence)
  • Artifact metadata (references to photos and files)

What Is Not Included

  • Artifact binary bytes are not embedded in the snapshot JSON
  • Uploaded files must be copied separately when moving between storage backends

Common Scenarios

Back Up Before Upgrading

bash
npm run oss:export:snapshot -- --out "./tmp/fluent-backup-$(date +%Y%m%d).json"
git pull
docker compose --env-file .env.oss up --build

Restore to a New Host

On the old host:

bash
npm run oss:export:snapshot -- --out "./tmp/fluent-snapshot.json"

Copy the snapshot file to the new host, then:

bash
npm run oss:import:snapshot -- --file "./tmp/fluent-snapshot.json"
npm run oss:start -- --host 127.0.0.1 --port 8788

Migrate From Early Access To Self-Host

bash
# Export from early access
npm run export:snapshot:hosted -- --database fluent-hosted \
  --out "./tmp/fluent-cloud-snapshot.json"

# Import into the open-source runtime
npm run oss:import:snapshot -- --file "./tmp/fluent-cloud-snapshot.json"

# Start the open-source runtime
npm run oss:start -- --host 127.0.0.1 --port 8788

Migrate Between Storage Backends

Export from SQLite:

bash
npm run oss:export:snapshot -- --out "./tmp/fluent-migrate.json"

Import into Postgres + S3:

bash
npm run oss:import:snapshot -- --backend postgres-s3 \
  --file "./tmp/fluent-migrate.json"

TIP

Saved records and file references move between backends. Copy the uploaded files separately if you change storage backends.

Managed Fluent is free during early access · open-source runtime available