Sample deployments
The Confabulous-maintained instances run on two different stacks. Both configurations are public and you can copy from them.
Fly.io — confabulous.dev (managed)
Section titled “Fly.io — confabulous.dev (managed)”The free managed instance at confabulous.dev runs on Fly.io, using:
- App + worker as separate Fly processes from a single image.
- Tigris (Fly Object Storage) for S3-compatible session-blob storage.
- Neon as the managed Postgres provider — connection string passed in as
DATABASE_URL(a Fly secret). - Resend for share-invitation email.
- Honeycomb for OpenTelemetry traces.
- Anthropic for Smart Recaps.
The full configuration lives in the repo at fly.toml, with the deploy script at deploy-to-fly.sh.
Notable choices for a Fly.io deployment:
- Two
[[vm]]blocks — one for theappprocess (auto-stop enabled), one for the always-onworkersingleton. S3_ENDPOINT = "fly.storage.tigris.dev"for Tigris, withS3_USE_SSL = "true".- Secrets (
AWS_*,CSRF_SECRET_KEY,RESEND_API_KEY,ANTHROPIC_API_KEY,OTEL_EXPORTER_OTLP_HEADERS) are set viafly secrets set, not infly.toml. auto_stop_machines = 'stop'plusmin_machines_running = 1keeps response latency low while letting unused machines stop on idle.
Deploying
Section titled “Deploying”# One-time:fly launch # or `fly deploy` if the app already exists
# Run database migrations against the production DB, then deploy:export PRODUCTION_DATABASE_URL='postgresql://user:pass@host/db?sslmode=require'./deploy-to-fly.shLinode — demo.confabulous.dev (demo)
Section titled “Linode — demo.confabulous.dev (demo)”demo.confabulous.dev runs on a ~$7/month Linode Nanode (1 GB + backups). The full infra-as-code lives in ConfabulousDev/confab-demo-site — the Deployment walkthrough stack plus Demo mode, Caddy for HTTPS, and MAX_USERS=0.
What’s in the repo:
stack/—docker-compose.ymlandCaddyfile.tofu/— OpenTofu for the Linode VM and firewall.cloud-init.yaml.tftplrendersstack/plus secrets into/opt/confab/on first boot and starts the stack via systemd.ignore_changes = [metadata]keeps laterapplys from rebuilding the VM.scripts/deploy.sh— image and compose updates. Infra goes throughtofu apply; secrets are edited in/opt/confab/.envon the VM.
Cloudflare DNS is added by hand so no DNS token lives in the repo.
Picking a stack
Section titled “Picking a stack”| If you want… | Use |
|---|---|
| Managed PaaS, scale-to-zero, minimal ops | Fly.io (or similar — Railway, Render) |
| Full control of a VM, low monthly cost | Linode VPS (or DigitalOcean, Hetzner) + Docker Compose + Caddy |
| Enterprise infra, OIDC SSO | Bring your own — k8s, ECS, etc. Confabulous is just a single Docker image plus Postgres + S3. |