Skip to main content
Fly.io runs the container as Firecracker VMs close to your users, with optional scale-to-zero. Fly needs two pieces of configuration the other platforms don’t: memory (the default 256mb machine is too small and the server gets OOM-killed at boot) and port (Fly routes to internal_port but does not provide PORT to the container, so the server listens on its default 3000).
1

Add a Dockerfile

2

Modify and commit connection.yaml

The project must use a direct connector, with secrets replaced by ${VAR} environment references, for example:
connection.yaml is gitignored by default. Once its secrets are ${VAR} placeholders, remove it from .gitignore and commit it — the container reads it at runtime.
3

Deploy

In the dashboard, click Launch an App, choose Launch an App from GitHub, and select the project’s repo, granting Fly access if prompted.Click Customize deploy and set:
  • Internal port: 3000
  • Memory: at least 512MB memory
  • Environment Variables: EVIDENCE_BASIC_USER, EVIDENCE_BASIC_PASSWORD, and every ${VAR} referenced in connection.yaml, here SNOWFLAKE_USER and SNOWFLAKE_PRIVATE_KEY
Deploy, then optionally enable Auto Deploy under Deployments → Settings so pushes to the default branch redeploy automatically.

Notes

  • Ensure fly has enough memory or else you may get Out of memory: Killed process (evidence) in fly logs. Increase memory with fly scale memory 512 or in fly.toml.