[app]
name = "my-app"
# Pages need a signed-in, invited user. Use "public" for a site anyone can open.
access_mode = "accounts"
# Pages sit behind sign-in; /api takes an app API key with the "api" scope.
[[routes]]
path = "/"
access = "accounts"
service = "web"
[[routes]]
path = "/api"
access = "api_key"
scope = "api"
service = "web"
[services.web]
type = "web"
path = "."
port = 3000
# Runs once per deploy before traffic moves. A failure stops the deploy and the
# previous version keeps serving. Never migrate in the start command: every cold
# start would wait on it.
migrate_command = "node_modules/.bin/tsx scripts/migrate.ts"
# 0 bills only while serving requests. floo pings the app every five minutes so it
# stays running and does not cold-start between visits (Postgres still pauses after
# 5 idle minutes). Set 1 to reserve an instance; it is billed while idle.
min_instances = 0
# Instances floo may start under load.
max_instances = 3
# floo's default size for each instance.
cpu = "1"
memory = "512Mi"
# Postgres managed by floo. The default resource injects DATABASE_URL.
[managed.default]
type = "postgres"