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 Fluent's hosted service, 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 Fluent's Hosted Service ​

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 Fluent's Hosted Service Into A Self-Hosted Runtime ​

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

The snapshot format is aligned between Fluent's hosted service 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 Fluent's Hosted Service To Self-Host ​

bash
# Export from Fluent's hosted service
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 information and file references move between backends. Copy the uploaded files separately if you change storage backends.

Use Fluent online, or run it yourself with the open-source runtime. Fluent is free.