72 lines
2.2 KiB
TOML
72 lines
2.2 KiB
TOML
# Fly.io configuration for LinkForty
|
|
# See https://fly.io/docs/reference/configuration/ for full documentation
|
|
|
|
app = "linkforty-core" # Change this to your unique app name
|
|
primary_region = "iad" # Change to your preferred region (iad = Washington DC)
|
|
|
|
# Build configuration
|
|
[build]
|
|
# Use the Dockerfile from the examples directory
|
|
dockerfile = "../../examples/Dockerfile"
|
|
|
|
# Environment variables (non-sensitive)
|
|
[env]
|
|
NODE_ENV = "production"
|
|
PORT = "8080"
|
|
# DATABASE_URL and REDIS_URL should be set as secrets (see DEPLOYMENT.md)
|
|
|
|
# HTTP service configuration
|
|
[http_service]
|
|
internal_port = 8080
|
|
force_https = true
|
|
auto_stop_machines = false # Keep at least one machine always running
|
|
auto_start_machines = true
|
|
min_machines_running = 1 # Always keep at least one instance running
|
|
|
|
# HTTP service concurrency
|
|
[http_service.concurrency]
|
|
type = "requests"
|
|
hard_limit = 250 # Maximum concurrent requests per machine
|
|
soft_limit = 200 # Target concurrent requests before scaling
|
|
|
|
# Health checks
|
|
[[http_service.checks]]
|
|
grace_period = "10s" # Wait before starting health checks
|
|
interval = "30s" # Check every 30 seconds
|
|
method = "GET"
|
|
timeout = "5s"
|
|
path = "/health" # Ensure your app has a /health endpoint
|
|
|
|
# VM resources
|
|
# Start with shared-cpu-1x (256MB RAM) - scale up as needed
|
|
[vm]
|
|
cpu_kind = "shared"
|
|
cpus = 1
|
|
memory_mb = 256
|
|
|
|
# Metrics (optional but recommended)
|
|
[[metrics]]
|
|
port = 9091 # If you add Prometheus metrics
|
|
path = "/metrics"
|
|
|
|
# Deploy configuration
|
|
[deploy]
|
|
release_command = "npm run migrate" # Run migrations before deploying
|
|
strategy = "rolling" # Rolling deployment strategy
|
|
|
|
# Scaling configuration
|
|
# Uncomment and adjust for auto-scaling based on traffic
|
|
# [[services.autoscaling]]
|
|
# enabled = true
|
|
# min_count = 1 # Minimum number of machines
|
|
# max_count = 10 # Maximum number of machines
|
|
|
|
# Multi-region deployment (optional)
|
|
# Uncomment to deploy to multiple regions for lower latency
|
|
# [[regions]]
|
|
# name = "iad" # Primary region (US East)
|
|
# [[regions]]
|
|
# name = "lhr" # Europe (London)
|
|
# [[regions]]
|
|
# name = "syd" # Asia-Pacific (Sydney)
|