Deployment Overview

Deploy Mnemosyne to production with confidence. This section covers multiple deployment strategies.

Deployment Options

MethodComplexityBest ForPersistence
Fly.ioLowServerless appsSQLite volume
DockerMediumContainerized stacksBind mount
SystemdMediumLinux serversLocal path
CronLowScheduled tasksShared volume

Architecture Decision


flowchart TD
  A[Choose Deployment] -->|Serverless| B[Fly.io]
  A -->|Containers| C[Docker]
  A -->|VM/Bare Metal| D[Systemd]
  A -->|Scheduled Jobs| E[Cron]
  B -->|SQLite + Volume| F[Persistent Storage]
  C -->|Bind Mount| F
  D -->|Local Disk| F
  E -->|Shared Volume| F

Common Requirements

All deployments need:

  1. SQLite 3.45+ with FTS5 and vector extension support
  2. Persistent storage for the database file
  3. Environment variables for configuration
  4. Backup strategy (see Operations section)

Quick Deploy Checklist

  • SQLite version verified (sqlite3 --version)
  • Database path is on persistent storage
  • Environment variables configured
  • Backup job scheduled
  • Monitoring enabled
  • Health check endpoint responding
Ephemeral Storage

Do NOT store the database on ephemeral filesystems (Docker default volumes, /tmp, Heroku dyno filesystem). Data will be lost on restart. Always use persistent volumes.