readysite / infra.json
3.7 KB
infra.json
{
  "platform": {
    "provider": "digitalocean",
    "token": "$DIGITAL_OCEAN_API_KEY",
    "project": "$DIGITAL_OCEAN_PROJECT",
    "region": "sfo"
  },
  "servers": {
    "readysite-org": {
      "size": "small",
      "volumes": [
        {
          "name": "readysite-data",
          "size": 25,
          "mount": "/mnt/data"
        },
        {
          "name": "readysite-sites",
          "size": 50,
          "mount": "/mnt/sites"
        }
      ],
      "services": [
        "caddy",
        "registry"
      ],
      "binaries": [
        "readysite-org"
      ]
    },
    "website": {
      "size": "small",
      "binaries": [
        "website"
      ]
    }
  },
  "services": {
    "caddy": {
      "image": "caddy:2-alpine",
      "ports": [
        {
          "host": 80,
          "container": 80
        },
        {
          "host": 443,
          "container": 443
        }
      ],
      "volumes": [
        {
          "source": "/mnt/data/caddy/data",
          "target": "/data"
        },
        {
          "source": "/mnt/data/caddy/config",
          "target": "/config"
        },
        {
          "source": "/mnt/data/caddy",
          "target": "/etc/caddy"
        }
      ],
      "network": "readysite"
    },
    "registry": {
      "image": "registry:2",
      "ports": [
        {
          "host": 5001,
          "container": 5000
        }
      ],
      "volumes": [
        {
          "source": "/mnt/data/registry",
          "target": "/var/lib/registry"
        }
      ],
      "env": {
        "REGISTRY_STORAGE_DELETE_ENABLED": "true"
      },
      "network": "readysite",
      "healthcheck": "wget -q --spider http://localhost:5000/v2/ || exit 1"
    }
  },
  "binaries": {
    "readysite-org": {
      "image": "",
      "source": "./readysite.org",
      "ports": [
        {
          "host": 8081,
          "container": 5000,
          "bind": "127.0.0.1"
        }
      ],
      "volumes": [
        {
          "source": "/mnt/data/git",
          "target": "/var/git"
        },
        {
          "source": "/mnt/data/hosting",
          "target": "/data"
        },
        {
          "source": "/usr/bin/docker",
          "target": "/usr/local/bin/docker"
        },
        {
          "source": "/var/run/docker.sock",
          "target": "/var/run/docker.sock"
        },
        {
          "source": "/mnt/data/caddy",
          "target": "/caddy"
        },
        {
          "source": "/mnt/data/hosting/ssh",
          "target": "/root/.ssh"
        },
        {
          "source": "/mnt/sites",
          "target": "/sites"
        }
      ],
      "env": {
        "DB_PATH": "/data/hosting.db",
        "ENV": "production"
      },
      "env_files": {
        "AUTH_SECRET": "/etc/secrets/hosting_auth_secret",
        "DIGITAL_OCEAN_API_KEY": "/etc/secrets/do_api_key",
        "RESEND_API_KEY": "/etc/secrets/resend_api_key",
        "STRIPE_API_KEY": "/etc/secrets/stripe_api_key",
        "STRIPE_WEBHOOK_SECRET": "/etc/secrets/stripe_webhook_secret",
        "STRIPE_HOBBY_PRICE_ID": "/etc/secrets/stripe_hobby_price_id",
        "STRIPE_PRO_PRICE_ID": "/etc/secrets/stripe_pro_price_id"
      },
      "network": "readysite",
      "privileged": true
    },
    "website": {
      "image": "",
      "source": "./website",
      "ports": [
        {
          "host": 5000,
          "container": 5000
        }
      ],
      "env": {
        "ENV": "production"
      },
      "network": "readysite"
    }
  },
  "instances": {
    "readysite-org": [
      {
        "id": "548209488",
        "name": "readysite-org-1",
        "ip": "143.110.145.175",
        "region": "sfo3"
      }
    ],
    "website": [
      {
        "name": "website-2",
        "ip": "134.199.239.73"
      }
    ]
  }
}
← Back