{
  "manifest_version": "1.0.0",
  "template": {
    "id": "d2d2a18d-d7d1-4aa8-ba96-591bb30673ae",
    "slug": "supabase-firebase-alternative",
    "name": "Supabase | Open Source Firebase Alternative",
    "description": "Self Host Supabase. Auth, APIs, Functions, Subs, Vector embeddings & more",
    "url": "https://railway.com/deploy/supabase-firebase-alternative",
    "upstream": {
      "repo_url": "https://github.com/praveen-ks-2001/supabase-kong-railway"
    }
  },
  "services": [
    {
      "name": "kong",
      "source": {
        "repo": "https://github.com/praveen-ks-2001/supabase-kong-railway"
      },
      "needs_volume": false,
      "http": true
    },
    {
      "name": "postgres",
      "source": {
        "repo": "https://github.com/praveen-ks-2001/supabase-postgres-railway"
      },
      "needs_volume": true,
      "volume_mount_path": "/var/lib/postgresql/data",
      "http": false
    },
    {
      "name": "studio",
      "source": {
        "image": "supabase/studio:2026.04.27-sha-5f60601"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "supavisor",
      "source": {
        "repo": "https://github.com/praveen-ks-2001/supabase-supavisor-railway"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "storage",
      "source": {
        "image": "supabase/storage-api:v1.48.26"
      },
      "needs_volume": true,
      "volume_mount_path": "/var/lib/storage",
      "http": false
    },
    {
      "name": "meta",
      "source": {
        "image": "supabase/postgres-meta:v0.96.3"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "functions",
      "source": {
        "image": "supabase/edge-runtime:v1.71.2"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "realtime",
      "source": {
        "image": "supabase/realtime:v2.76.5"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "rest",
      "source": {
        "image": "postgrest/postgrest:v14.8"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "imgproxy",
      "source": {
        "image": "darthsim/imgproxy:v3.30.1"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "analytics",
      "source": {
        "image": "supabase/logflare:1.36.1"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "auth",
      "source": {
        "image": "supabase/gotrue:v2.186.0"
      },
      "needs_volume": false,
      "http": false
    }
  ],
  "required_inputs": [
    {
      "key": "PORT",
      "service": "kong",
      "description": "Kong listening port",
      "secret": false,
      "strategy": "default",
      "default": "8000"
    },
    {
      "key": "KONG_PLUGINS",
      "service": "kong",
      "description": "Loaded plugins",
      "secret": false,
      "strategy": "default",
      "default": "request-transformer,cors,key-auth,acl,basic-auth,request-termination,ip-restriction,post-function"
    },
    {
      "key": "KONG_DATABASE",
      "service": "kong",
      "description": "DB-less declarative mode",
      "secret": false,
      "strategy": "default",
      "default": "off"
    },
    {
      "key": "KONG_DNS_ORDER",
      "service": "kong",
      "description": "DNS resolution order",
      "secret": false,
      "strategy": "default",
      "default": "LAST,A,CNAME"
    },
    {
      "key": "KONG_PROXY_LISTEN",
      "service": "kong",
      "description": "Listen address",
      "secret": false,
      "strategy": "default",
      "default": "0.0.0.0:8000"
    },
    {
      "key": "SUPABASE_ANON_KEY",
      "service": "kong",
      "description": "Anon role JWT",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DASHBOARD_PASSWORD",
      "service": "kong",
      "description": "Studio basic auth pass",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "DASHBOARD_USERNAME",
      "service": "kong",
      "description": "Studio basic auth user",
      "secret": false,
      "strategy": "default",
      "default": "supabase"
    },
    {
      "key": "SUPABASE_AUTH_HOST",
      "service": "kong",
      "description": "Auth service hostname",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "SUPABASE_META_HOST",
      "service": "kong",
      "description": "Meta service hostname",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "SUPABASE_REST_HOST",
      "service": "kong",
      "description": "REST service hostname",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "SUPABASE_SERVICE_KEY",
      "service": "kong",
      "description": "Service role JWT",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SUPABASE_STUDIO_HOST",
      "service": "kong",
      "description": "Studio service hostname",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "SUPABASE_STORAGE_HOST",
      "service": "kong",
      "description": "Storage service hostname",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "SUPABASE_REALTIME_HOST",
      "service": "kong",
      "description": "Realtime service hostname",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "KONG_DECLARATIVE_CONFIG",
      "service": "kong",
      "description": "Rendered config path",
      "secret": false,
      "strategy": "default",
      "default": "/tmp/kong.yml"
    },
    {
      "key": "SUPABASE_FUNCTIONS_HOST",
      "service": "kong",
      "description": "Functions service hostname",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "KONG_NGINX_PROXY_PROXY_BUFFER_SIZE",
      "service": "kong",
      "description": "Proxy buffer size",
      "secret": false,
      "strategy": "default",
      "default": "160k"
    },
    {
      "key": "PGDATA",
      "service": "postgres",
      "description": "Subdir of volume mount",
      "secret": false,
      "strategy": "default",
      "default": "/var/lib/postgresql/data/pgdata"
    },
    {
      "key": "PGUSER",
      "service": "postgres",
      "description": "libpq client user",
      "secret": false,
      "strategy": "default",
      "default": "supabase_admin"
    },
    {
      "key": "JWT_EXP",
      "service": "postgres",
      "description": "JWT expiry seconds",
      "secret": false,
      "strategy": "default",
      "default": "3600"
    },
    {
      "key": "JWT_SECRET",
      "service": "postgres",
      "description": "Shared JWT signing key",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "PGPASSWORD",
      "service": "postgres",
      "description": "libpq client password",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_DB",
      "service": "postgres",
      "description": "Default database",
      "secret": false,
      "strategy": "default",
      "default": "postgres"
    },
    {
      "key": "POSTGRES_PORT",
      "service": "postgres",
      "description": "Postgres listening port",
      "secret": false,
      "strategy": "default",
      "default": "5432"
    },
    {
      "key": "POSTGRES_USER",
      "service": "postgres",
      "description": "MUST be supabase_admin (image expectation)",
      "secret": false,
      "strategy": "default",
      "default": "supabase_admin"
    },
    {
      "key": "RAILWAY_RUN_UID",
      "service": "postgres",
      "description": "Run as root (volume chown)",
      "secret": false,
      "strategy": "default",
      "default": "0"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "postgres",
      "description": "DB master password",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "PORT",
      "service": "studio",
      "description": "Listening port",
      "secret": false,
      "strategy": "default",
      "default": "3000"
    },
    {
      "key": "HOSTNAME",
      "service": "studio",
      "description": "Bind address",
      "secret": false,
      "strategy": "default",
      "default": "0.0.0.0"
    },
    {
      "key": "POSTGRES_DB",
      "service": "studio",
      "description": "Database name",
      "secret": false,
      "strategy": "default",
      "default": "postgres"
    },
    {
      "key": "LOGFLARE_URL",
      "service": "studio",
      "description": "Logflare internal URL",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "SUPABASE_URL",
      "service": "studio",
      "description": "Internal Kong URL",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "POSTGRES_HOST",
      "service": "studio",
      "description": "Postgres hostname",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "POSTGRES_PORT",
      "service": "studio",
      "description": "Postgres port",
      "secret": false,
      "strategy": "default",
      "default": "5432"
    },
    {
      "key": "AUTH_JWT_SECRET",
      "service": "studio",
      "description": "JWT validation key",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "LOGFLARE_API_KEY",
      "service": "studio",
      "description": "Logflare ingest token",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "studio",
      "description": "DB password",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SUPABASE_ANON_KEY",
      "service": "studio",
      "description": "Anon JWT",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DASHBOARD_PASSWORD",
      "service": "studio",
      "description": "Studio basic auth pass",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DASHBOARD_USERNAME",
      "service": "studio",
      "description": "Studio basic auth user",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "STUDIO_PG_META_URL",
      "service": "studio",
      "description": "postgres-meta internal URL",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "SUPABASE_PUBLIC_URL",
      "service": "studio",
      "description": "Public Kong URL",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "DEFAULT_PROJECT_NAME",
      "service": "studio",
      "description": "Initial project",
      "secret": false,
      "strategy": "default",
      "default": "Default Project"
    },
    {
      "key": "SUPABASE_SERVICE_KEY",
      "service": "studio",
      "description": "Service role JWT",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "NEXT_PUBLIC_ENABLE_LOGS",
      "service": "studio",
      "description": "Enable Logs tab",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "DEFAULT_ORGANIZATION_NAME",
      "service": "studio",
      "description": "Initial org",
      "secret": false,
      "strategy": "default",
      "default": "Default Organization"
    },
    {
      "key": "NEXT_ANALYTICS_BACKEND_PROVIDER",
      "service": "studio",
      "description": "Analytics backend",
      "secret": false,
      "strategy": "default",
      "default": "postgres"
    },
    {
      "key": "PORT",
      "service": "supavisor",
      "description": "Listening port",
      "secret": false,
      "strategy": "default",
      "default": "4000"
    },
    {
      "key": "REGION",
      "service": "supavisor",
      "description": "Cluster region tag",
      "secret": false,
      "strategy": "default",
      "default": "railway"
    },
    {
      "key": "NODE_NAME",
      "service": "supavisor",
      "description": "Node identifier",
      "secret": false,
      "strategy": "default",
      "default": "supavisor"
    },
    {
      "key": "ERL_AFLAGS",
      "service": "supavisor",
      "description": "Erlang TCP only",
      "secret": false,
      "strategy": "default",
      "default": "-proto_dist inet_tcp"
    },
    {
      "key": "POSTGRES_DB",
      "service": "supavisor",
      "description": "Supavisor metadata DB name",
      "secret": false,
      "strategy": "default",
      "default": "_supabase"
    },
    {
      "key": "DATABASE_URL",
      "service": "supavisor",
      "description": "Supavisor metadata DB",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "RELEASE_NODE",
      "service": "supavisor",
      "description": "Erlang node name",
      "secret": false,
      "strategy": "default",
      "default": "supavisor@127.0.0.1"
    },
    {
      "key": "POSTGRES_HOST",
      "service": "supavisor",
      "description": "Backend Postgres host",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "POSTGRES_PORT",
      "service": "supavisor",
      "description": "Backend Postgres port",
      "secret": false,
      "strategy": "default",
      "default": "5432"
    },
    {
      "key": "VAULT_ENC_KEY",
      "service": "supavisor",
      "description": "Vault encryption key",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "API_JWT_SECRET",
      "service": "supavisor",
      "description": "API JWT signing key",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "RELEASE_COOKIE",
      "service": "supavisor",
      "description": "Erlang release cookie",
      "secret": false,
      "strategy": "default",
      "default": "cookie"
    },
    {
      "key": "SECRET_KEY_BASE",
      "service": "supavisor",
      "description": "Phoenix session key",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "CLUSTER_POSTGRES",
      "service": "supavisor",
      "description": "Enable Postgres clustering",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "POOLER_POOL_MODE",
      "service": "supavisor",
      "description": "Pooling mode",
      "secret": false,
      "strategy": "default",
      "default": "transaction"
    },
    {
      "key": "POOLER_TENANT_ID",
      "service": "supavisor",
      "description": "Tenant identifier",
      "secret": false,
      "strategy": "default",
      "default": "supabase-railway"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "supavisor",
      "description": "Backend DB password",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "METRICS_JWT_SECRET",
      "service": "supavisor",
      "description": "Metrics JWT signing key",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POOLER_DB_POOL_SIZE",
      "service": "supavisor",
      "description": "DB connections per pool",
      "secret": false,
      "strategy": "default",
      "default": "5"
    },
    {
      "key": "POOLER_MAX_CLIENT_CONN",
      "service": "supavisor",
      "description": "Max client connections",
      "secret": false,
      "strategy": "default",
      "default": "200"
    },
    {
      "key": "POOLER_DEFAULT_POOL_SIZE",
      "service": "supavisor",
      "description": "Default pool size",
      "secret": false,
      "strategy": "default",
      "default": "20"
    },
    {
      "key": "POOLER_PROXY_PORT_TRANSACTION",
      "service": "supavisor",
      "description": "Transaction pool port",
      "secret": false,
      "strategy": "default",
      "default": "6543"
    },
    {
      "key": "PORT",
      "service": "storage",
      "description": "Listening port",
      "secret": false,
      "strategy": "default",
      "default": "5000"
    },
    {
      "key": "REGION",
      "service": "storage",
      "description": "S3 region placeholder",
      "secret": false,
      "strategy": "default",
      "default": "stub"
    },
    {
      "key": "ANON_KEY",
      "service": "storage",
      "description": "Anon JWT",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "TENANT_ID",
      "service": "storage",
      "description": "S3 tenant placeholder",
      "secret": false,
      "strategy": "default",
      "default": "stub"
    },
    {
      "key": "SERVICE_KEY",
      "service": "storage",
      "description": "Service role JWT",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DATABASE_URL",
      "service": "storage",
      "description": "Storage DB connection",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "IMGPROXY_URL",
      "service": "storage",
      "description": "Imgproxy internal URL",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "POSTGREST_URL",
      "service": "storage",
      "description": "PostgREST internal URL",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "AUTH_JWT_SECRET",
      "service": "storage",
      "description": "Auth JWT validation",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "FILE_SIZE_LIMIT",
      "service": "storage",
      "description": "50 MB upload cap",
      "secret": false,
      "strategy": "default",
      "default": "52428800"
    },
    {
      "key": "RAILWAY_RUN_UID",
      "service": "storage",
      "description": "Run as root (volume chown)",
      "secret": false,
      "strategy": "default",
      "default": "0"
    },
    {
      "key": "STORAGE_BACKEND",
      "service": "storage",
      "description": "Local filesystem backend",
      "secret": false,
      "strategy": "default",
      "default": "file"
    },
    {
      "key": "GLOBAL_S3_BUCKET",
      "service": "storage",
      "description": "S3 bucket placeholder",
      "secret": false,
      "strategy": "default",
      "default": "stub"
    },
    {
      "key": "PGRST_JWT_SECRET",
      "service": "storage",
      "description": "JWT validation key",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "STORAGE_PUBLIC_URL",
      "service": "storage",
      "description": "Public storage URL",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "FILE_STORAGE_BACKEND_PATH",
      "service": "storage",
      "description": "Volume mount path",
      "secret": false,
      "strategy": "default",
      "default": "/var/lib/storage"
    },
    {
      "key": "ENABLE_IMAGE_TRANSFORMATION",
      "service": "storage",
      "description": "Enable imgproxy",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "PORT",
      "service": "meta",
      "description": "Railway port var",
      "secret": false,
      "strategy": "default",
      "default": "8080"
    },
    {
      "key": "CRYPTO_KEY",
      "service": "meta",
      "description": "Schema encryption key",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "PG_META_PORT",
      "service": "meta",
      "description": "Listening port",
      "secret": false,
      "strategy": "default",
      "default": "8080"
    },
    {
      "key": "PG_META_DB_HOST",
      "service": "meta",
      "description": "Postgres hostname",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "PG_META_DB_NAME",
      "service": "meta",
      "description": "Database name",
      "secret": false,
      "strategy": "default",
      "default": "postgres"
    },
    {
      "key": "PG_META_DB_PORT",
      "service": "meta",
      "description": "Postgres port",
      "secret": false,
      "strategy": "default",
      "default": "5432"
    },
    {
      "key": "PG_META_DB_USER",
      "service": "meta",
      "description": "DB user",
      "secret": false,
      "strategy": "default",
      "default": "supabase_admin"
    },
    {
      "key": "PG_META_DB_PASSWORD",
      "service": "meta",
      "description": "DB password",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PORT",
      "service": "functions",
      "description": "Listening port",
      "secret": false,
      "strategy": "default",
      "default": "9000"
    },
    {
      "key": "JWT_SECRET",
      "service": "functions",
      "description": "JWT validation key",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "VERIFY_JWT",
      "service": "functions",
      "description": "Skip JWT validation",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "SUPABASE_URL",
      "service": "functions",
      "description": "Internal Kong URL",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "SUPABASE_DB_URL",
      "service": "functions",
      "description": "Functions DB connection",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "SUPABASE_ANON_KEY",
      "service": "functions",
      "description": "Anon JWT",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SUPABASE_PUBLIC_URL",
      "service": "functions",
      "description": "Public Kong URL",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "SUPABASE_SERVICE_ROLE_KEY",
      "service": "functions",
      "description": "Service role JWT",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PORT",
      "service": "realtime",
      "description": "Listening port",
      "secret": false,
      "strategy": "default",
      "default": "4000"
    },
    {
      "key": "DB_HOST",
      "service": "realtime",
      "description": "Postgres hostname",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "DB_NAME",
      "service": "realtime",
      "description": "Database name",
      "secret": false,
      "strategy": "default",
      "default": "postgres"
    },
    {
      "key": "DB_PORT",
      "service": "realtime",
      "description": "Postgres port",
      "secret": false,
      "strategy": "default",
      "default": "5432"
    },
    {
      "key": "DB_USER",
      "service": "realtime",
      "description": "DB user",
      "secret": false,
      "strategy": "default",
      "default": "supabase_admin"
    },
    {
      "key": "APP_NAME",
      "service": "realtime",
      "description": "App identifier",
      "secret": false,
      "strategy": "default",
      "default": "realtime"
    },
    {
      "key": "DB_ENC_KEY",
      "service": "realtime",
      "description": "Realtime encryption key",
      "secret": true,
      "strategy": "default",
      "default": "supabaserealtime"
    },
    {
      "key": "ERL_AFLAGS",
      "service": "realtime",
      "description": "Erlang TCP only",
      "secret": false,
      "strategy": "default",
      "default": "-proto_dist inet_tcp"
    },
    {
      "key": "DB_PASSWORD",
      "service": "realtime",
      "description": "DB password",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "RUN_JANITOR",
      "service": "realtime",
      "description": "Run cleanup janitor",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "RLIMIT_NOFILE",
      "service": "realtime",
      "description": "File descriptor limit",
      "secret": false,
      "strategy": "default",
      "default": "10000"
    },
    {
      "key": "API_JWT_SECRET",
      "service": "realtime",
      "description": "JWT validation key",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SEED_SELF_HOST",
      "service": "realtime",
      "description": "Seed default tenant",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "SECRET_KEY_BASE",
      "service": "realtime",
      "description": "Phoenix session key",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "DB_AFTER_CONNECT_QUERY",
      "service": "realtime",
      "description": "Schema search path",
      "secret": false,
      "strategy": "default",
      "default": "SET search_path TO _realtime"
    },
    {
      "key": "PORT",
      "service": "rest",
      "description": "Railway port var",
      "secret": false,
      "strategy": "default",
      "default": "3000"
    },
    {
      "key": "PGRST_DB_URI",
      "service": "rest",
      "description": "PostgREST DB connection",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "PGRST_DB_SCHEMAS",
      "service": "rest",
      "description": "Exposed schemas",
      "secret": false,
      "strategy": "default",
      "default": "public,storage,graphql_public"
    },
    {
      "key": "PGRST_JWT_SECRET",
      "service": "rest",
      "description": "JWT validation key",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PGRST_DB_MAX_ROWS",
      "service": "rest",
      "description": "Max rows per query",
      "secret": false,
      "strategy": "default",
      "default": "1000"
    },
    {
      "key": "PGRST_SERVER_PORT",
      "service": "rest",
      "description": "PostgREST port",
      "secret": false,
      "strategy": "default",
      "default": "3000"
    },
    {
      "key": "PGRST_DB_ANON_ROLE",
      "service": "rest",
      "description": "Anon DB role",
      "secret": false,
      "strategy": "default",
      "default": "anon"
    },
    {
      "key": "PGRST_DB_USE_LEGACY_GUCS",
      "service": "rest",
      "description": "Use modern GUC format",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "PGRST_APP_SETTINGS_JWT_EXP",
      "service": "rest",
      "description": "JWT expiry seconds",
      "secret": false,
      "strategy": "default",
      "default": "3600"
    },
    {
      "key": "PGRST_APP_SETTINGS_JWT_SECRET",
      "service": "rest",
      "description": "App-level JWT secret",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "IMGPROXY_BIND",
      "service": "imgproxy",
      "description": "Bind address",
      "secret": false,
      "strategy": "default",
      "default": ":5001"
    },
    {
      "key": "IMGPROXY_USE_ETAG",
      "service": "imgproxy",
      "description": "Enable ETag headers",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "IMGPROXY_MAX_SRC_RESOLUTION",
      "service": "imgproxy",
      "description": "Max source megapixels",
      "secret": false,
      "strategy": "default",
      "default": "16.8"
    },
    {
      "key": "IMGPROXY_ENABLE_WEBP_DETECTION",
      "service": "imgproxy",
      "description": "Auto WebP serving",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "IMGPROXY_LOCAL_FILESYSTEM_ROOT",
      "service": "imgproxy",
      "description": "Filesystem root",
      "secret": false,
      "strategy": "default",
      "default": "/"
    },
    {
      "key": "PORT",
      "service": "analytics",
      "description": "Listening port",
      "secret": false,
      "strategy": "default",
      "default": "4000"
    },
    {
      "key": "DB_PORT",
      "service": "analytics",
      "description": "Postgres port",
      "secret": false,
      "strategy": "default",
      "default": "5432"
    },
    {
      "key": "DB_SCHEMA",
      "service": "analytics",
      "description": "Analytics schema",
      "secret": false,
      "strategy": "default",
      "default": "_analytics"
    },
    {
      "key": "DB_DATABASE",
      "service": "analytics",
      "description": "Internal supabase DB",
      "secret": false,
      "strategy": "default",
      "default": "_supabase"
    },
    {
      "key": "DB_HOSTNAME",
      "service": "analytics",
      "description": "Postgres hostname",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "DB_PASSWORD",
      "service": "analytics",
      "description": "DB password",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DB_USERNAME",
      "service": "analytics",
      "description": "DB user",
      "secret": false,
      "strategy": "default",
      "default": "supabase_admin"
    },
    {
      "key": "RELEASE_COOKIE",
      "service": "analytics",
      "description": "Erlang release cookie",
      "secret": false,
      "strategy": "default",
      "default": "cookie"
    },
    {
      "key": "LOGFLARE_NODE_HOST",
      "service": "analytics",
      "description": "Erlang node host",
      "secret": false,
      "strategy": "default",
      "default": "127.0.0.1"
    },
    {
      "key": "POSTGRES_BACKEND_URL",
      "service": "analytics",
      "description": "Logflare DB connection",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "LOGFLARE_SINGLE_TENANT",
      "service": "analytics",
      "description": "Single-tenant mode",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "LOGFLARE_SUPABASE_MODE",
      "service": "analytics",
      "description": "Supabase integration mode",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "POSTGRES_BACKEND_SCHEMA",
      "service": "analytics",
      "description": "Logflare schema",
      "secret": false,
      "strategy": "default",
      "default": "_analytics"
    },
    {
      "key": "LOGFLARE_MIN_CLUSTER_SIZE",
      "service": "analytics",
      "description": "Single-node cluster",
      "secret": false,
      "strategy": "default",
      "default": "1"
    },
    {
      "key": "LOGFLARE_PUBLIC_ACCESS_TOKEN",
      "service": "analytics",
      "description": "Public ingest token",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "LOGFLARE_PRIVATE_ACCESS_TOKEN",
      "service": "analytics",
      "description": "Admin token",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "LOGFLARE_FEATURE_FLAG_OVERRIDE",
      "service": "analytics",
      "description": "Multi-backend support",
      "secret": false,
      "strategy": "default",
      "default": "multibackend=true"
    },
    {
      "key": "PORT",
      "service": "auth",
      "description": "Railway port var",
      "secret": false,
      "strategy": "default",
      "default": "9999"
    },
    {
      "key": "GOTRUE_JWT_AUD",
      "service": "auth",
      "description": "JWT audience",
      "secret": false,
      "strategy": "default",
      "default": "authenticated"
    },
    {
      "key": "GOTRUE_JWT_EXP",
      "service": "auth",
      "description": "JWT expiry",
      "secret": false,
      "strategy": "default",
      "default": "3600"
    },
    {
      "key": "GOTRUE_API_HOST",
      "service": "auth",
      "description": "Bind address",
      "secret": false,
      "strategy": "default",
      "default": "0.0.0.0"
    },
    {
      "key": "GOTRUE_API_PORT",
      "service": "auth",
      "description": "Listening port",
      "secret": false,
      "strategy": "default",
      "default": "9999"
    },
    {
      "key": "GOTRUE_SITE_URL",
      "service": "auth",
      "description": "Public site URL",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "API_EXTERNAL_URL",
      "service": "auth",
      "description": "External API URL",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "GOTRUE_DB_DRIVER",
      "service": "auth",
      "description": "DB driver",
      "secret": false,
      "strategy": "default",
      "default": "postgres"
    },
    {
      "key": "GOTRUE_JWT_SECRET",
      "service": "auth",
      "description": "JWT signing key",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "GOTRUE_DISABLE_SIGNUP",
      "service": "auth",
      "description": "Allow new signups",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "GOTRUE_URI_ALLOW_LIST",
      "service": "auth",
      "description": "Allowed redirect URIs",
      "secret": false,
      "strategy": "default",
      "default": "*"
    },
    {
      "key": "GOTRUE_DB_DATABASE_URL",
      "service": "auth",
      "description": "Auth DB connection",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "GOTRUE_JWT_ADMIN_ROLES",
      "service": "auth",
      "description": "Admin role names",
      "secret": false,
      "strategy": "default",
      "default": "service_role"
    },
    {
      "key": "GOTRUE_SMS_AUTOCONFIRM",
      "service": "auth",
      "description": "SMS verify off",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "GOTRUE_SMTP_ADMIN_EMAIL",
      "service": "auth",
      "description": "Admin sender",
      "secret": false,
      "strategy": "default",
      "default": "admin@example.com"
    },
    {
      "key": "GOTRUE_MAILER_AUTOCONFIRM",
      "service": "auth",
      "description": "Skip email verify",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "GOTRUE_EXTERNAL_EMAIL_ENABLED",
      "service": "auth",
      "description": "Email auth on",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "GOTRUE_EXTERNAL_PHONE_ENABLED",
      "service": "auth",
      "description": "Phone auth off",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "GOTRUE_JWT_DEFAULT_GROUP_NAME",
      "service": "auth",
      "description": "Default role",
      "secret": false,
      "strategy": "default",
      "default": "authenticated"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "supabase-firebase-alternative"
      }
    },
    "cli": "railway deploy --template supabase-firebase-alternative",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "d2d2a18d-d7d1-4aa8-ba96-591bb30673ae",
            "serializedConfig": {
              "buckets": {},
              "services": {
                "1df45112-835d-42f2-8e9d-8d882e003abd": {
                  "icon": "https://cdn.simpleicons.org/kong/003459.svg",
                  "name": "kong",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "repo": "https://github.com/praveen-ks-2001/supabase-kong-railway",
                    "rootDirectory": null
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "description": "Kong listening port",
                      "defaultValue": "8000"
                    },
                    "KONG_PLUGINS": {
                      "isOptional": false,
                      "description": "Loaded plugins",
                      "defaultValue": "request-transformer,cors,key-auth,acl,basic-auth,request-termination,ip-restriction,post-function"
                    },
                    "KONG_DATABASE": {
                      "isOptional": false,
                      "description": "DB-less declarative mode",
                      "defaultValue": "off"
                    },
                    "KONG_DNS_ORDER": {
                      "isOptional": false,
                      "description": "DNS resolution order",
                      "defaultValue": "LAST,A,CNAME"
                    },
                    "KONG_PROXY_LISTEN": {
                      "isOptional": false,
                      "description": "Listen address",
                      "defaultValue": "0.0.0.0:8000"
                    },
                    "SUPABASE_ANON_KEY": {
                      "isOptional": false,
                      "description": "Anon role JWT",
                      "defaultValue": "${{postgres.ANON_KEY}}"
                    },
                    "DASHBOARD_PASSWORD": {
                      "isOptional": false,
                      "description": "Studio basic auth pass",
                      "defaultValue": "{{DASHBOARD_PASSWORD}}"
                    },
                    "DASHBOARD_USERNAME": {
                      "isOptional": false,
                      "description": "Studio basic auth user",
                      "defaultValue": "supabase"
                    },
                    "SUPABASE_AUTH_HOST": {
                      "isOptional": false,
                      "description": "Auth service hostname",
                      "defaultValue": "${{auth.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "SUPABASE_META_HOST": {
                      "isOptional": false,
                      "description": "Meta service hostname",
                      "defaultValue": "${{meta.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "SUPABASE_REST_HOST": {
                      "isOptional": false,
                      "description": "REST service hostname",
                      "defaultValue": "${{rest.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "SUPABASE_SERVICE_KEY": {
                      "isOptional": false,
                      "description": "Service role JWT",
                      "defaultValue": "${{postgres.SERVICE_ROLE_KEY}}"
                    },
                    "SUPABASE_STUDIO_HOST": {
                      "isOptional": false,
                      "description": "Studio service hostname",
                      "defaultValue": "${{studio.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "SUPABASE_STORAGE_HOST": {
                      "isOptional": false,
                      "description": "Storage service hostname",
                      "defaultValue": "${{storage.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "SUPABASE_REALTIME_HOST": {
                      "isOptional": false,
                      "description": "Realtime service hostname",
                      "defaultValue": "${{realtime.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "KONG_DECLARATIVE_CONFIG": {
                      "isOptional": false,
                      "description": "Rendered config path",
                      "defaultValue": "/tmp/kong.yml"
                    },
                    "SUPABASE_FUNCTIONS_HOST": {
                      "isOptional": false,
                      "description": "Functions service hostname",
                      "defaultValue": "${{functions.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "KONG_NGINX_PROXY_PROXY_BUFFER_SIZE": {
                      "isOptional": false,
                      "description": "Proxy buffer size",
                      "defaultValue": "160k"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>": {}
                    }
                  }
                },
                "2c58e203-2d23-4395-912d-e0ee74a42d8e": {
                  "icon": "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/postgres.svg",
                  "name": "postgres",
                  "deploy": {
                    "startCommand": "/bin/bash -c \"rm -rf /var/lib/postgresql/data/pgdata && mkdir -p /var/lib/postgresql/data/pgdata && chown -R postgres:postgres /var/lib/postgresql/data && export PGDATA=/var/lib/postgresql/data/pgdata && exec docker-entrypoint.sh postgres -c config_file=/etc/postgresql/postgresql.conf -c data_directory=/var/lib/postgresql/data/pgdata -c log_min_messages=fatal\"",
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "repo": "https://github.com/praveen-ks-2001/supabase-postgres-railway",
                    "rootDirectory": null
                  },
                  "variables": {
                    "PGDATA": {
                      "isOptional": false,
                      "description": "Subdir of volume mount",
                      "defaultValue": "/var/lib/postgresql/data/pgdata"
                    },
                    "PGUSER": {
                      "isOptional": false,
                      "description": "libpq client user",
                      "defaultValue": "supabase_admin"
                    },
                    "JWT_EXP": {
                      "isOptional": false,
                      "description": "JWT expiry seconds",
                      "defaultValue": "3600"
                    },
                    "JWT_SECRET": {
                      "isOptional": false,
                      "description": "Shared JWT signing key",
                      "defaultValue": "{{JWT_SECRET}}"
                    },
                    "PGPASSWORD": {
                      "isOptional": false,
                      "description": "libpq client password",
                      "defaultValue": "${{postgres.POSTGRES_PASSWORD}}"
                    },
                    "POSTGRES_DB": {
                      "isOptional": false,
                      "description": "Default database",
                      "defaultValue": "postgres"
                    },
                    "POSTGRES_PORT": {
                      "isOptional": false,
                      "description": "Postgres listening port",
                      "defaultValue": "5432"
                    },
                    "POSTGRES_USER": {
                      "isOptional": false,
                      "description": "MUST be supabase_admin (image expectation)",
                      "defaultValue": "supabase_admin"
                    },
                    "RAILWAY_RUN_UID": {
                      "isOptional": false,
                      "description": "Run as root (volume chown)",
                      "defaultValue": "0"
                    },
                    "POSTGRES_PASSWORD": {
                      "isOptional": false,
                      "description": "DB master password",
                      "defaultValue": "{{POSTGRES_PASSWORD}}"
                    }
                  },
                  "volumeMounts": {
                    "2c58e203-2d23-4395-912d-e0ee74a42d8e": {
                      "mountPath": "/var/lib/postgresql/data"
                    }
                  }
                },
                "3489823d-a375-4bc5-b487-12be7af76671": {
                  "icon": "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/supabase.svg",
                  "name": "studio",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "supabase/studio:2026.04.27-sha-5f60601"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "description": "Listening port",
                      "defaultValue": "3000"
                    },
                    "HOSTNAME": {
                      "isOptional": false,
                      "description": "Bind address",
                      "defaultValue": "0.0.0.0"
                    },
                    "POSTGRES_DB": {
                      "isOptional": false,
                      "description": "Database name",
                      "defaultValue": "postgres"
                    },
                    "LOGFLARE_URL": {
                      "isOptional": false,
                      "description": "Logflare internal URL",
                      "defaultValue": "http://${{analytics.RAILWAY_PRIVATE_DOMAIN}}:4000"
                    },
                    "SUPABASE_URL": {
                      "isOptional": false,
                      "description": "Internal Kong URL",
                      "defaultValue": "http://${{kong.RAILWAY_PRIVATE_DOMAIN}}:8000"
                    },
                    "POSTGRES_HOST": {
                      "isOptional": false,
                      "description": "Postgres hostname",
                      "defaultValue": "${{postgres.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "POSTGRES_PORT": {
                      "isOptional": false,
                      "description": "Postgres port",
                      "defaultValue": "5432"
                    },
                    "AUTH_JWT_SECRET": {
                      "isOptional": false,
                      "description": "JWT validation key",
                      "defaultValue": "${{postgres.JWT_SECRET}}"
                    },
                    "LOGFLARE_API_KEY": {
                      "isOptional": false,
                      "description": "Logflare ingest token",
                      "defaultValue": "${{analytics.LOGFLARE_PUBLIC_ACCESS_TOKEN}}"
                    },
                    "POSTGRES_PASSWORD": {
                      "isOptional": false,
                      "description": "DB password",
                      "defaultValue": "${{postgres.POSTGRES_PASSWORD}}"
                    },
                    "SUPABASE_ANON_KEY": {
                      "isOptional": false,
                      "description": "Anon JWT",
                      "defaultValue": "${{postgres.ANON_KEY}}"
                    },
                    "DASHBOARD_PASSWORD": {
                      "isOptional": false,
                      "description": "Studio basic auth pass",
                      "defaultValue": "${{kong.DASHBOARD_PASSWORD}}"
                    },
                    "DASHBOARD_USERNAME": {
                      "isOptional": false,
                      "description": "Studio basic auth user",
                      "defaultValue": "${{kong.DASHBOARD_USERNAME}}"
                    },
                    "STUDIO_PG_META_URL": {
                      "isOptional": false,
                      "description": "postgres-meta internal URL",
                      "defaultValue": "http://${{meta.RAILWAY_PRIVATE_DOMAIN}}:8080"
                    },
                    "SUPABASE_PUBLIC_URL": {
                      "isOptional": false,
                      "description": "Public Kong URL",
                      "defaultValue": "https://${{kong.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "DEFAULT_PROJECT_NAME": {
                      "isOptional": false,
                      "description": "Initial project",
                      "defaultValue": "Default Project"
                    },
                    "SUPABASE_SERVICE_KEY": {
                      "isOptional": false,
                      "description": "Service role JWT",
                      "defaultValue": "${{postgres.SERVICE_ROLE_KEY}}"
                    },
                    "NEXT_PUBLIC_ENABLE_LOGS": {
                      "isOptional": false,
                      "description": "Enable Logs tab",
                      "defaultValue": "true"
                    },
                    "DEFAULT_ORGANIZATION_NAME": {
                      "isOptional": false,
                      "description": "Initial org",
                      "defaultValue": "Default Organization"
                    },
                    "NEXT_ANALYTICS_BACKEND_PROVIDER": {
                      "isOptional": false,
                      "description": "Analytics backend",
                      "defaultValue": "postgres"
                    }
                  }
                },
                "4c81cb93-564a-4a56-b9e0-c5368756f738": {
                  "icon": "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/supabase.svg",
                  "name": "supavisor",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "repo": "https://github.com/praveen-ks-2001/supabase-supavisor-railway",
                    "rootDirectory": null
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "description": "Listening port",
                      "defaultValue": "4000"
                    },
                    "REGION": {
                      "isOptional": false,
                      "description": "Cluster region tag",
                      "defaultValue": "railway"
                    },
                    "NODE_NAME": {
                      "isOptional": false,
                      "description": "Node identifier",
                      "defaultValue": "supavisor"
                    },
                    "ERL_AFLAGS": {
                      "isOptional": false,
                      "description": "Erlang TCP only",
                      "defaultValue": "-proto_dist inet_tcp"
                    },
                    "POSTGRES_DB": {
                      "isOptional": false,
                      "description": "Supavisor metadata DB name",
                      "defaultValue": "_supabase"
                    },
                    "DATABASE_URL": {
                      "isOptional": false,
                      "description": "Supavisor metadata DB",
                      "defaultValue": "ecto://supabase_admin:${{postgres.POSTGRES_PASSWORD}}@${{postgres.RAILWAY_PRIVATE_DOMAIN}}:5432/_supabase"
                    },
                    "RELEASE_NODE": {
                      "isOptional": false,
                      "description": "Erlang node name",
                      "defaultValue": "supavisor@127.0.0.1"
                    },
                    "POSTGRES_HOST": {
                      "isOptional": false,
                      "description": "Backend Postgres host",
                      "defaultValue": "${{postgres.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "POSTGRES_PORT": {
                      "isOptional": false,
                      "description": "Backend Postgres port",
                      "defaultValue": "5432"
                    },
                    "VAULT_ENC_KEY": {
                      "isOptional": false,
                      "description": "Vault encryption key",
                      "defaultValue": "{{VAULT_ENC_KEY}}"
                    },
                    "API_JWT_SECRET": {
                      "isOptional": false,
                      "description": "API JWT signing key",
                      "defaultValue": "${{postgres.JWT_SECRET}}"
                    },
                    "RELEASE_COOKIE": {
                      "isOptional": false,
                      "description": "Erlang release cookie",
                      "defaultValue": "cookie"
                    },
                    "SECRET_KEY_BASE": {
                      "isOptional": false,
                      "description": "Phoenix session key",
                      "defaultValue": "{{SECRET_KEY_BASE}}"
                    },
                    "CLUSTER_POSTGRES": {
                      "isOptional": false,
                      "description": "Enable Postgres clustering",
                      "defaultValue": "true"
                    },
                    "POOLER_POOL_MODE": {
                      "isOptional": false,
                      "description": "Pooling mode",
                      "defaultValue": "transaction"
                    },
                    "POOLER_TENANT_ID": {
                      "isOptional": false,
                      "description": "Tenant identifier",
                      "defaultValue": "supabase-railway"
                    },
                    "POSTGRES_PASSWORD": {
                      "isOptional": false,
                      "description": "Backend DB password",
                      "defaultValue": "${{postgres.POSTGRES_PASSWORD}}"
                    },
                    "METRICS_JWT_SECRET": {
                      "isOptional": false,
                      "description": "Metrics JWT signing key",
                      "defaultValue": "${{postgres.JWT_SECRET}}"
                    },
                    "POOLER_DB_POOL_SIZE": {
                      "isOptional": false,
                      "description": "DB connections per pool",
                      "defaultValue": "5"
                    },
                    "POOLER_MAX_CLIENT_CONN": {
                      "isOptional": false,
                      "description": "Max client connections",
                      "defaultValue": "200"
                    },
                    "POOLER_DEFAULT_POOL_SIZE": {
                      "isOptional": false,
                      "description": "Default pool size",
                      "defaultValue": "20"
                    },
                    "POOLER_PROXY_PORT_TRANSACTION": {
                      "isOptional": false,
                      "description": "Transaction pool port",
                      "defaultValue": "6543"
                    }
                  }
                },
                "519b935b-35eb-41ee-ab2b-62f5a5eac166": {
                  "icon": "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/supabase.svg",
                  "name": "storage",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "supabase/storage-api:v1.48.26"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "description": "Listening port",
                      "defaultValue": "5000"
                    },
                    "REGION": {
                      "isOptional": false,
                      "description": "S3 region placeholder",
                      "defaultValue": "stub"
                    },
                    "ANON_KEY": {
                      "isOptional": false,
                      "description": "Anon JWT",
                      "defaultValue": "${{postgres.ANON_KEY}}"
                    },
                    "TENANT_ID": {
                      "isOptional": false,
                      "description": "S3 tenant placeholder",
                      "defaultValue": "stub"
                    },
                    "SERVICE_KEY": {
                      "isOptional": false,
                      "description": "Service role JWT",
                      "defaultValue": "${{postgres.SERVICE_ROLE_KEY}}"
                    },
                    "DATABASE_URL": {
                      "isOptional": false,
                      "description": "Storage DB connection",
                      "defaultValue": "postgres://supabase_storage_admin:${{postgres.POSTGRES_PASSWORD}}@${{postgres.RAILWAY_PRIVATE_DOMAIN}}:5432/postgres"
                    },
                    "IMGPROXY_URL": {
                      "isOptional": false,
                      "description": "Imgproxy internal URL",
                      "defaultValue": "http://${{imgproxy.RAILWAY_PRIVATE_DOMAIN}}:5001"
                    },
                    "POSTGREST_URL": {
                      "isOptional": false,
                      "description": "PostgREST internal URL",
                      "defaultValue": "http://${{rest.RAILWAY_PRIVATE_DOMAIN}}:3000"
                    },
                    "AUTH_JWT_SECRET": {
                      "isOptional": false,
                      "description": "Auth JWT validation",
                      "defaultValue": "${{postgres.JWT_SECRET}}"
                    },
                    "FILE_SIZE_LIMIT": {
                      "isOptional": false,
                      "description": "50 MB upload cap",
                      "defaultValue": "52428800"
                    },
                    "RAILWAY_RUN_UID": {
                      "isOptional": false,
                      "description": "Run as root (volume chown)",
                      "defaultValue": "0"
                    },
                    "STORAGE_BACKEND": {
                      "isOptional": false,
                      "description": "Local filesystem backend",
                      "defaultValue": "file"
                    },
                    "GLOBAL_S3_BUCKET": {
                      "isOptional": false,
                      "description": "S3 bucket placeholder",
                      "defaultValue": "stub"
                    },
                    "PGRST_JWT_SECRET": {
                      "isOptional": false,
                      "description": "JWT validation key",
                      "defaultValue": "${{postgres.JWT_SECRET}}"
                    },
                    "STORAGE_PUBLIC_URL": {
                      "isOptional": false,
                      "description": "Public storage URL",
                      "defaultValue": "https://${{kong.RAILWAY_PUBLIC_DOMAIN}}/storage/v1"
                    },
                    "FILE_STORAGE_BACKEND_PATH": {
                      "isOptional": false,
                      "description": "Volume mount path",
                      "defaultValue": "/var/lib/storage"
                    },
                    "ENABLE_IMAGE_TRANSFORMATION": {
                      "isOptional": false,
                      "description": "Enable imgproxy",
                      "defaultValue": "true"
                    }
                  },
                  "volumeMounts": {
                    "519b935b-35eb-41ee-ab2b-62f5a5eac166": {
                      "mountPath": "/var/lib/storage"
                    }
                  }
                },
                "663e7be2-e6da-4b56-9ee4-75b20b3010a4": {
                  "icon": "https://cdn.simpleicons.org/postgresql/4169E1.svg ",
                  "name": "meta",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "supabase/postgres-meta:v0.96.3"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "description": "Railway port var",
                      "defaultValue": "8080"
                    },
                    "CRYPTO_KEY": {
                      "isOptional": false,
                      "description": "Schema encryption key",
                      "defaultValue": "{{CRYPTO_KEY}}"
                    },
                    "PG_META_PORT": {
                      "isOptional": false,
                      "description": "Listening port",
                      "defaultValue": "8080"
                    },
                    "PG_META_DB_HOST": {
                      "isOptional": false,
                      "description": "Postgres hostname",
                      "defaultValue": "${{postgres.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "PG_META_DB_NAME": {
                      "isOptional": false,
                      "description": "Database name",
                      "defaultValue": "postgres"
                    },
                    "PG_META_DB_PORT": {
                      "isOptional": false,
                      "description": "Postgres port",
                      "defaultValue": "5432"
                    },
                    "PG_META_DB_USER": {
                      "isOptional": false,
                      "description": "DB user",
                      "defaultValue": "supabase_admin"
                    },
                    "PG_META_DB_PASSWORD": {
                      "isOptional": false,
                      "description": "DB password",
                      "defaultValue": "${{postgres.POSTGRES_PASSWORD}}"
                    }
                  }
                },
                "6e0def55-595d-43cd-ba19-db1f1c9ce4c5": {
                  "icon": "https://cdn.simpleicons.org/deno/000000.svg ",
                  "name": "functions",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "supabase/edge-runtime:v1.71.2"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "description": "Listening port",
                      "defaultValue": "9000"
                    },
                    "JWT_SECRET": {
                      "isOptional": false,
                      "description": "JWT validation key",
                      "defaultValue": "${{postgres.JWT_SECRET}}"
                    },
                    "VERIFY_JWT": {
                      "isOptional": false,
                      "description": "Skip JWT validation",
                      "defaultValue": "false"
                    },
                    "SUPABASE_URL": {
                      "isOptional": false,
                      "description": "Internal Kong URL",
                      "defaultValue": "http://${{kong.RAILWAY_PRIVATE_DOMAIN}}:8000"
                    },
                    "SUPABASE_DB_URL": {
                      "isOptional": false,
                      "description": "Functions DB connection",
                      "defaultValue": "postgresql://postgres:${{postgres.POSTGRES_PASSWORD}}@${{postgres.RAILWAY_PRIVATE_DOMAIN}}:5432/postgres"
                    },
                    "SUPABASE_ANON_KEY": {
                      "isOptional": false,
                      "description": "Anon JWT",
                      "defaultValue": "${{postgres.ANON_KEY}}"
                    },
                    "SUPABASE_PUBLIC_URL": {
                      "isOptional": false,
                      "description": "Public Kong URL",
                      "defaultValue": "https://${{kong.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "SUPABASE_SERVICE_ROLE_KEY": {
                      "isOptional": false,
                      "description": "Service role JWT",
                      "defaultValue": "${{postgres.SERVICE_ROLE_KEY}}"
                    }
                  }
                },
                "92ba4dd8-2da1-4c8f-91d8-e872528158f3": {
                  "icon": "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/supabase.svg",
                  "name": "realtime",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "supabase/realtime:v2.76.5"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "description": "Listening port",
                      "defaultValue": "4000"
                    },
                    "DB_HOST": {
                      "isOptional": false,
                      "description": "Postgres hostname",
                      "defaultValue": "${{postgres.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "DB_NAME": {
                      "isOptional": false,
                      "description": "Database name",
                      "defaultValue": "postgres"
                    },
                    "DB_PORT": {
                      "isOptional": false,
                      "description": "Postgres port",
                      "defaultValue": "5432"
                    },
                    "DB_USER": {
                      "isOptional": false,
                      "description": "DB user",
                      "defaultValue": "supabase_admin"
                    },
                    "APP_NAME": {
                      "isOptional": false,
                      "description": "App identifier",
                      "defaultValue": "realtime"
                    },
                    "DB_ENC_KEY": {
                      "isOptional": false,
                      "description": "Realtime encryption key",
                      "defaultValue": "supabaserealtime"
                    },
                    "ERL_AFLAGS": {
                      "isOptional": false,
                      "description": "Erlang TCP only",
                      "defaultValue": "-proto_dist inet_tcp"
                    },
                    "DB_PASSWORD": {
                      "isOptional": false,
                      "description": "DB password",
                      "defaultValue": "${{postgres.POSTGRES_PASSWORD}}"
                    },
                    "RUN_JANITOR": {
                      "isOptional": false,
                      "description": "Run cleanup janitor",
                      "defaultValue": "true"
                    },
                    "RLIMIT_NOFILE": {
                      "isOptional": false,
                      "description": "File descriptor limit",
                      "defaultValue": "10000"
                    },
                    "API_JWT_SECRET": {
                      "isOptional": false,
                      "description": "JWT validation key",
                      "defaultValue": "${{postgres.JWT_SECRET}}"
                    },
                    "SEED_SELF_HOST": {
                      "isOptional": false,
                      "description": "Seed default tenant",
                      "defaultValue": "true"
                    },
                    "SECRET_KEY_BASE": {
                      "isOptional": false,
                      "description": "Phoenix session key",
                      "defaultValue": "{{SECRET_KEY_BASE}}"
                    },
                    "DB_AFTER_CONNECT_QUERY": {
                      "isOptional": false,
                      "description": "Schema search path",
                      "defaultValue": "SET search_path TO _realtime"
                    }
                  }
                },
                "a9712f67-5ebf-43ed-a584-f0410a4a6607": {
                  "icon": "https://avatars.githubusercontent.com/u/15115011",
                  "name": "rest",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "postgrest/postgrest:v14.8"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "description": "Railway port var",
                      "defaultValue": "3000"
                    },
                    "PGRST_DB_URI": {
                      "isOptional": false,
                      "description": "PostgREST DB connection",
                      "defaultValue": "postgres://authenticator:${{postgres.POSTGRES_PASSWORD}}@${{postgres.RAILWAY_PRIVATE_DOMAIN}}:5432/postgres"
                    },
                    "PGRST_DB_SCHEMAS": {
                      "isOptional": false,
                      "description": "Exposed schemas",
                      "defaultValue": "public,storage,graphql_public"
                    },
                    "PGRST_JWT_SECRET": {
                      "isOptional": false,
                      "description": "JWT validation key",
                      "defaultValue": "${{postgres.JWT_SECRET}}"
                    },
                    "PGRST_DB_MAX_ROWS": {
                      "isOptional": false,
                      "description": "Max rows per query",
                      "defaultValue": "1000"
                    },
                    "PGRST_SERVER_PORT": {
                      "isOptional": false,
                      "description": "PostgREST port",
                      "defaultValue": "3000"
                    },
                    "PGRST_DB_ANON_ROLE": {
                      "isOptional": false,
                      "description": "Anon DB role",
                      "defaultValue": "anon"
                    },
                    "PGRST_DB_USE_LEGACY_GUCS": {
                      "isOptional": false,
                      "description": "Use modern GUC format",
                      "defaultValue": "false"
                    },
                    "PGRST_APP_SETTINGS_JWT_EXP": {
                      "isOptional": false,
                      "description": "JWT expiry seconds",
                      "defaultValue": "3600"
                    },
                    "PGRST_APP_SETTINGS_JWT_SECRET": {
                      "isOptional": false,
                      "description": "App-level JWT secret",
                      "defaultValue": "${{postgres.JWT_SECRET}}"
                    }
                  }
                },
                "b3d05eda-a3c1-4287-9367-18b742d44c7b": {
                  "icon": "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/supabase.svg",
                  "name": "imgproxy",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "darthsim/imgproxy:v3.30.1"
                  },
                  "variables": {
                    "IMGPROXY_BIND": {
                      "isOptional": false,
                      "description": "Bind address",
                      "defaultValue": ":5001"
                    },
                    "IMGPROXY_USE_ETAG": {
                      "isOptional": false,
                      "description": "Enable ETag headers",
                      "defaultValue": "true"
                    },
                    "IMGPROXY_MAX_SRC_RESOLUTION": {
                      "isOptional": false,
                      "description": "Max source megapixels",
                      "defaultValue": "16.8"
                    },
                    "IMGPROXY_ENABLE_WEBP_DETECTION": {
                      "isOptional": false,
                      "description": "Auto WebP serving",
                      "defaultValue": "true"
                    },
                    "IMGPROXY_LOCAL_FILESYSTEM_ROOT": {
                      "isOptional": false,
                      "description": "Filesystem root",
                      "defaultValue": "/"
                    }
                  }
                },
                "cbb4cac1-7a7b-4241-8e5c-c5649d7fefa3": {
                  "icon": "https://avatars.githubusercontent.com/u/46462712?s=200&v=4",
                  "name": "analytics",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "supabase/logflare:1.36.1"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "description": "Listening port",
                      "defaultValue": "4000"
                    },
                    "DB_PORT": {
                      "isOptional": false,
                      "description": "Postgres port",
                      "defaultValue": "5432"
                    },
                    "DB_SCHEMA": {
                      "isOptional": false,
                      "description": "Analytics schema",
                      "defaultValue": "_analytics"
                    },
                    "DB_DATABASE": {
                      "isOptional": false,
                      "description": "Internal supabase DB",
                      "defaultValue": "_supabase"
                    },
                    "DB_HOSTNAME": {
                      "isOptional": false,
                      "description": "Postgres hostname",
                      "defaultValue": "${{postgres.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "DB_PASSWORD": {
                      "isOptional": false,
                      "description": "DB password",
                      "defaultValue": "${{postgres.POSTGRES_PASSWORD}}"
                    },
                    "DB_USERNAME": {
                      "isOptional": false,
                      "description": "DB user",
                      "defaultValue": "supabase_admin"
                    },
                    "RELEASE_COOKIE": {
                      "isOptional": false,
                      "description": "Erlang release cookie",
                      "defaultValue": "cookie"
                    },
                    "LOGFLARE_NODE_HOST": {
                      "isOptional": false,
                      "description": "Erlang node host",
                      "defaultValue": "127.0.0.1"
                    },
                    "POSTGRES_BACKEND_URL": {
                      "isOptional": false,
                      "description": "Logflare DB connection",
                      "defaultValue": "postgresql://supabase_admin:${{postgres.POSTGRES_PASSWORD}}@${{postgres.RAILWAY_PRIVATE_DOMAIN}}:5432/_supabase"
                    },
                    "LOGFLARE_SINGLE_TENANT": {
                      "isOptional": false,
                      "description": "Single-tenant mode",
                      "defaultValue": "true"
                    },
                    "LOGFLARE_SUPABASE_MODE": {
                      "isOptional": false,
                      "description": "Supabase integration mode",
                      "defaultValue": "true"
                    },
                    "POSTGRES_BACKEND_SCHEMA": {
                      "isOptional": false,
                      "description": "Logflare schema",
                      "defaultValue": "_analytics"
                    },
                    "LOGFLARE_MIN_CLUSTER_SIZE": {
                      "isOptional": false,
                      "description": "Single-node cluster",
                      "defaultValue": "1"
                    },
                    "LOGFLARE_PUBLIC_ACCESS_TOKEN": {
                      "isOptional": false,
                      "description": "Public ingest token",
                      "defaultValue": "{{LOGFLARE_PUBLIC_ACCESS_TOKEN}}"
                    },
                    "LOGFLARE_PRIVATE_ACCESS_TOKEN": {
                      "isOptional": false,
                      "description": "Admin token",
                      "defaultValue": "{{LOGFLARE_PRIVATE_ACCESS_TOKEN}}"
                    },
                    "LOGFLARE_FEATURE_FLAG_OVERRIDE": {
                      "isOptional": false,
                      "description": "Multi-backend support",
                      "defaultValue": "multibackend=true"
                    }
                  }
                },
                "d6ca55cb-7713-40c2-8949-52df6a98a655": {
                  "icon": "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/supabase.svg",
                  "name": "auth",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "supabase/gotrue:v2.186.0"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "description": "Railway port var",
                      "defaultValue": "9999"
                    },
                    "GOTRUE_JWT_AUD": {
                      "isOptional": false,
                      "description": "JWT audience",
                      "defaultValue": "authenticated"
                    },
                    "GOTRUE_JWT_EXP": {
                      "isOptional": false,
                      "description": "JWT expiry",
                      "defaultValue": "3600"
                    },
                    "GOTRUE_API_HOST": {
                      "isOptional": false,
                      "description": "Bind address",
                      "defaultValue": "0.0.0.0"
                    },
                    "GOTRUE_API_PORT": {
                      "isOptional": false,
                      "description": "Listening port",
                      "defaultValue": "9999"
                    },
                    "GOTRUE_SITE_URL": {
                      "isOptional": false,
                      "description": "Public site URL",
                      "defaultValue": "https://${{kong.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "API_EXTERNAL_URL": {
                      "isOptional": false,
                      "description": "External API URL",
                      "defaultValue": "https://${{kong.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "GOTRUE_DB_DRIVER": {
                      "isOptional": false,
                      "description": "DB driver",
                      "defaultValue": "postgres"
                    },
                    "GOTRUE_JWT_SECRET": {
                      "isOptional": false,
                      "description": "JWT signing key",
                      "defaultValue": "${{postgres.JWT_SECRET}}"
                    },
                    "GOTRUE_DISABLE_SIGNUP": {
                      "isOptional": false,
                      "description": "Allow new signups",
                      "defaultValue": "false"
                    },
                    "GOTRUE_URI_ALLOW_LIST": {
                      "isOptional": false,
                      "description": "Allowed redirect URIs",
                      "defaultValue": "*"
                    },
                    "GOTRUE_DB_DATABASE_URL": {
                      "isOptional": false,
                      "description": "Auth DB connection",
                      "defaultValue": "postgres://supabase_auth_admin:${{postgres.POSTGRES_PASSWORD}}@${{postgres.RAILWAY_PRIVATE_DOMAIN}}:5432/postgres"
                    },
                    "GOTRUE_JWT_ADMIN_ROLES": {
                      "isOptional": false,
                      "description": "Admin role names",
                      "defaultValue": "service_role"
                    },
                    "GOTRUE_SMS_AUTOCONFIRM": {
                      "isOptional": false,
                      "description": "SMS verify off",
                      "defaultValue": "false"
                    },
                    "GOTRUE_SMTP_ADMIN_EMAIL": {
                      "isOptional": false,
                      "description": "Admin sender",
                      "defaultValue": "admin@example.com"
                    },
                    "GOTRUE_MAILER_AUTOCONFIRM": {
                      "isOptional": false,
                      "description": "Skip email verify",
                      "defaultValue": "true"
                    },
                    "GOTRUE_EXTERNAL_EMAIL_ENABLED": {
                      "isOptional": false,
                      "description": "Email auth on",
                      "defaultValue": "true"
                    },
                    "GOTRUE_EXTERNAL_PHONE_ENABLED": {
                      "isOptional": false,
                      "description": "Phone auth off",
                      "defaultValue": "false"
                    },
                    "GOTRUE_JWT_DEFAULT_GROUP_NAME": {
                      "isOptional": false,
                      "description": "Default role",
                      "defaultValue": "authenticated"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 12,
    "needs_volume": true
  },
  "generated_at": "2026-09-21T16:15:12.787Z",
  "generator_version": "0.1.0",
  "status": "validated",
  "validated_at": "2026-09-20T12:11:23.685Z",
  "success_rate_30d": 1,
  "validation": {
    "last_run_id": "run_dc681594459a4ab8be13",
    "checks": [
      {
        "name": "workflow_completed",
        "passed": true
      },
      {
        "name": "all_services_deployed",
        "passed": true
      },
      {
        "name": "stays_up",
        "passed": true
      }
    ],
    "typical_ready_seconds": 179,
    "typical_build_seconds": 0,
    "typical_start_seconds": 10,
    "slowest_service": "studio"
  }
}
