# Requires secrets to be set: # - ACME_EMAIL # - PAGES_CONFIG_FILE # - PAGES_STORAGE_S3_ENDPOINT # - PAGES_STORAGE_S3_ACCESS_KEY_ID # - PAGES_STORAGE_S3_SECRET_ACCESS_KEY # - PAGES_STORAGE_S3_BUCKET [build] dockerfile = "Dockerfile" [experimental] cmd = ["supervisord"] [[vm]] cpu-type = "shared" cpus = 2 memory = 512 [env] UDP_BIND_TO = "fly-global-services" ALLOW_PROXY = "172.16.0.0/16" AUTOMEMLIMIT = "0.25" [[files]] guest_path = "/app/config.toml" local_path = "config.fly.toml" # [::]:80/TCP; HTTP/1.1 and HTTP/2 (cleartext) [[services]] internal_port = 80 protocol = "tcp" auto_stop_machines = "stop" auto_start_machines = true [[services.ports]] port = 80 handlers = ["proxy_proto"] proxy_proto_options = { version = "v2" } [services.concurrency] type = "connections" soft_limit = 250 # [::]:433/TCP; HTTP/1.1 and HTTP/2 [[services]] internal_port = 443 protocol = "tcp" auto_stop_machines = "stop" auto_start_machines = true [[services.ports]] port = 443 handlers = ["proxy_proto"] proxy_proto_options = { version = "v2" } [services.concurrency] type = "connections" soft_limit = 250 # 0.0.0.0:433/UDP; HTTP/3 # (Fly.io does not support UDP on public IPv6!) [[services]] internal_port = 443 protocol = "udp" ports = [{ port = 443 }] auto_stop_machines = "stop" auto_start_machines = true # monitoring [checks.health] type = "http" method = "get" port = 2002 path = "/" grace_period = "5s" interval = "2s" timeout = "1s" [metrics] port = 2019 path = "/metrics"