LibreDB Studio on Fly.io
July 19, 2026 ยท View on GitHub
Fly.io does not have a template gallery, so this repo ships a ready
fly.toml instead. It runs the prebuilt
ghcr.io/libredb/libredb-studio image with a persistent volume at
/app/data and a health check on /api/db/health.
Deploy
You need flyctl and a Fly.io account.
git clone https://github.com/libredb/libredb-studio
cd libredb-studio
# Creates the app from the bundled fly.toml. --copy-config uses the file
# as-is without prompting, so pass your own app name and region explicitly.
# --no-deploy because secrets and the volume are not set up yet.
fly launch --copy-config --no-deploy --name my-libredb --region ams
# Persistent storage for saved connections and settings (1 GB is plenty).
# Use the SAME region you passed above - volumes are region-bound.
fly volumes create libredb_data --size 1 --region ams
# Required credentials. Everything is generated - note the two passwords
# printed below, you will log in with them.
ADMIN_PASSWORD=$(openssl rand -base64 15)
USER_PASSWORD=$(openssl rand -base64 15)
echo "admin: $ADMIN_PASSWORD user: $USER_PASSWORD"
fly secrets set \
JWT_SECRET=$(openssl rand -hex 32) \
ADMIN_EMAIL=admin@libredb.org \
ADMIN_PASSWORD="$ADMIN_PASSWORD" \
USER_EMAIL=user@libredb.org \
USER_PASSWORD="$USER_PASSWORD"
fly deploy
fly apps open
Log in with the admin credentials you set above.
Notes
- The app state lives in SQLite on the mounted volume, so run a single
machine. A Fly volume attaches to one machine at a time:
fly scale count 2either fails for lack of a second volume or, with an extra volume, gives the second machine its own empty database (divergent state). For multi-instance setups switch toSTORAGE_PROVIDER=postgresand setSTORAGE_POSTGRES_URL. auto_stop_machinesis enabled: the machine stops when idle and wakes on the next request. First request after idle takes a few seconds.- To update, bump the image tag in
fly.tomlto the latest release and runfly deployagain. - Optional features (AI assistance, OIDC login) are configured the same
way as everywhere else โ set the extra env vars with
fly secrets set. See the README for the list.