Running on Fly.io
Fly.io turns containers into VMs that can be deployed in one or multiple regions. The fly launch process can automatically set up Postgres VM that in connection with your Umami app.
Setup using Umami's pre-built container
For anyone wishing to deploy Umami on Fly now, here's a simple method using Umami's pre-built container for postgres instead of pulling the source and modifying the Dockerfile.
If you don't already have flyctl installed, install it.
- In a new directory for your app, create
fly.toml:
kill_signal = "SIGINT"
kill_timeout = "5s"
[experimental]
auto_rollback = true
[build]
image = "docker.umami.is/umami-software/umami:postgresql-latest"
[[services]]
protocol = "tcp"
internal_port = 3000
processes = ["app"]
[[services.ports]]
port = 80
handlers = ["http"]
force_https = true
[[services.ports]]
port = 443
handlers = ["tls", "http"]
[services.concurrency]
type = "connections"
hard_limit = 25
soft_limit = 20
[[services.tcp_checks]]
interval = "15s"
timeout = "2s"
grace_period = "1s"fly launchand choose to create an app with the foundfly.tomlconfiguration.- Go through the launch steps, and choose
yon the step to create a connected Postgres app. - Choose not to deploy the app yet.
fly secrets set APP_SECRET="<any-string-minus-angle-brackets>", using whatever string you want to salt the hash.fly deployThere will be errors, but let the deployment complete.fly scale memory 512(or higher, if needed. Umami seems to fail with less than 512 MB RAM)fly deploy- Following the Umami docs, log in with user:
adminand password:umami
Adjust instance locations, number of machines, auto-scaling, custom domains for your Umami app, and any other Fly.io options as per Fly docs