Skip to content

Production deployment (Fly.io) #26

@elias-ba

Description

@elias-ba

Summary

Deploy Estim to production using Fly.io.

Why Fly.io

  • Excellent Phoenix/Elixir support
  • Built-in PostgreSQL
  • Easy SSL/custom domains
  • Global edge deployment
  • Reasonable pricing

Setup Tasks

  • Create Fly.io account and app
  • Configure fly.toml
  • Set up Fly PostgreSQL database
  • Configure secrets (SECRET_KEY_BASE, DATABASE_URL)
  • Set up custom domain (estim.dev)
  • Configure SSL certificate
  • Set up health check endpoint
  • Configure auto-scaling rules

fly.toml

```toml
app = "estim"
primary_region = "iad"

[build]
builder = "heroku/buildpacks:20"

[env]
PHX_HOST = "estim.dev"
PORT = "8080"

[http_service]
internal_port = 8080
force_https = true
auto_stop_machines = true
auto_start_machines = true

[[services]]
protocol = "tcp"
internal_port = 8080

[[services.ports]]
port = 80
handlers = ["http"]

[[services.ports]]
port = 443
handlers = ["tls", "http"]
```

Secrets to Configure

  • SECRET_KEY_BASE
  • DATABASE_URL
  • GITHUB_CLIENT_ID
  • GITHUB_CLIENT_SECRET
  • SLACK_CLIENT_ID
  • SLACK_CLIENT_SECRET

Acceptance Criteria

  • App deployed and accessible at estim.dev
  • Database connected and migrated
  • SSL working
  • Health checks passing

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions