# 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 primary_region = "fra" [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 min_machines_running = 1 [[services.ports]] port = 80 handlers = ["proxy_proto"] proxy_proto_options = { version = "v2" } [services.concurrency] type = "connections" soft_limit = 250 [[services.http_checks]] protocol = "http" method = "get" path = "/" headers = { Health-Check = "🩺", Host = "localhost" } grace_period = "5s" interval = "2s" timeout = "1.5s" # [::]:433/TCP; HTTP/1.1 and HTTP/2 [[services]] internal_port = 443 protocol = "tcp" auto_stop_machines = "stop" auto_start_machines = true min_machines_running = 1 [[services.ports]] port = 443 handlers = ["proxy_proto"] proxy_proto_options = { version = "v2" } [services.concurrency] type = "connections" soft_limit = 250 [[services.http_checks]] protocol = "https" method = "get" path = "/" headers = { Health-Check = "🩺", Host = "localhost" } grace_period = "5s" interval = "2s" timeout = "1.5s" # At the moment there's no good way to handle this, so staging needs TLS keys from production # for this one host that isn't used for anything other than full stack health checks. # These can be copied over manually whenever they expire. tls_skip_verify = false tls_server_name = "git-pages.fly.dev" # 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 min_machines_running = 1 # Metrics [metrics] port = 2019 path = "/metrics"