{
  "manifest_version": "1.0.0",
  "template": {
    "id": "c044b741-051d-4794-a277-57a3da0b5c64",
    "slug": "oneclicksupabase",
    "name": "OneClickSupabase",
    "description": "A self-hosted Supabase stack built specifically for Railway.",
    "url": "https://railway.com/deploy/oneclicksupabase",
    "upstream": {
      "repo_url": "https://github.com/pagetree/OneClickSupabase"
    }
  },
  "status": "unvalidated",
  "validated_at": null,
  "success_rate_30d": null,
  "services": [
    {
      "name": "DB",
      "source": {
        "repo": "https://github.com/pagetree/OneClickSupabase"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "Auth",
      "source": {
        "repo": "https://github.com/pagetree/OneClickSupabase"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "Studio",
      "source": {
        "repo": "https://github.com/pagetree/OneClickSupabase"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "Kong",
      "source": {
        "repo": "https://github.com/pagetree/OneClickSupabase"
      },
      "needs_volume": false,
      "http": true
    },
    {
      "name": "Storage",
      "source": {
        "repo": "https://github.com/pagetree/OneClickSupabase"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "Init-JWT",
      "source": {
        "repo": "https://github.com/pagetree/OneClickSupabase"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "Rest",
      "source": {
        "repo": "https://github.com/pagetree/OneClickSupabase"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "Realtime",
      "source": {
        "repo": "https://github.com/pagetree/OneClickSupabase"
      },
      "needs_volume": false,
      "http": false
    }
  ],
  "required_inputs": [
    {
      "key": "ANON_KEY",
      "service": "DB",
      "description": "Provide a value for ANON_KEY.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "SITE_URL",
      "service": "DB",
      "description": "Provide a value for SITE_URL.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "JWT_SECRET",
      "service": "DB",
      "description": "Provide a value for JWT_SECRET.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "SERVICE_ROLE_KEY",
      "service": "DB",
      "description": "Provide a value for SERVICE_ROLE_KEY.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "DB",
      "description": "Provide a value for POSTGRES_PASSWORD.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "DASHBOARD_PASSWORD",
      "service": "DB",
      "description": "Provide a value for DASHBOARD_PASSWORD.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "DASHBOARD_USERNAME",
      "service": "DB",
      "description": "Provide a value for DASHBOARD_USERNAME.",
      "secret": false,
      "strategy": "default",
      "default": "supabase"
    },
    {
      "key": "SUPABASE_PUBLIC_URL",
      "service": "DB",
      "description": "Provide a value for SUPABASE_PUBLIC_URL.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "PORT",
      "service": "Auth",
      "description": "Provide a value for PORT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "ANON_KEY",
      "service": "Auth",
      "description": "Provide a value for ANON_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SMTP_HOST",
      "service": "Auth",
      "description": "Provide a value for SMTP_HOST.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "SMTP_PASS",
      "service": "Auth",
      "description": "Provide a value for SMTP_PASS.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "SMTP_PORT",
      "service": "Auth",
      "description": "Provide a value for SMTP_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "587"
    },
    {
      "key": "SMTP_USER",
      "service": "Auth",
      "description": "Provide a value for SMTP_USER.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "JWT_SECRET",
      "service": "Auth",
      "description": "Provide a value for JWT_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "GOTRUE_JWT_AUD",
      "service": "Auth",
      "description": "Provide a value for GOTRUE_JWT_AUD.",
      "secret": false,
      "strategy": "default",
      "default": "authenticated"
    },
    {
      "key": "GOTRUE_JWT_EXP",
      "service": "Auth",
      "description": "Provide a value for GOTRUE_JWT_EXP.",
      "secret": false,
      "strategy": "default",
      "default": "3600"
    },
    {
      "key": "GOTRUE_API_HOST",
      "service": "Auth",
      "description": "Provide a value for GOTRUE_API_HOST.",
      "secret": false,
      "strategy": "default",
      "default": "0.0.0.0"
    },
    {
      "key": "GOTRUE_API_PORT",
      "service": "Auth",
      "description": "Provide a value for GOTRUE_API_PORT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "GOTRUE_SITE_URL",
      "service": "Auth",
      "description": "Provide a value for GOTRUE_SITE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "GOTRUE_DB_DRIVER",
      "service": "Auth",
      "description": "Provide a value for GOTRUE_DB_DRIVER.",
      "secret": false,
      "strategy": "default",
      "default": "postgres"
    },
    {
      "key": "SERVICE_ROLE_KEY",
      "service": "Auth",
      "description": "Provide a value for SERVICE_ROLE_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SMTP_SENDER_NAME",
      "service": "Auth",
      "description": "Provide a value for SMTP_SENDER_NAME.",
      "secret": false,
      "strategy": "default",
      "default": "Supabase"
    },
    {
      "key": "GOTRUE_JWT_SECRET",
      "service": "Auth",
      "description": "Provide a value for GOTRUE_JWT_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "Auth",
      "description": "Provide a value for POSTGRES_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "GOTRUE_DISABLE_SIGNUP",
      "service": "Auth",
      "description": "Provide a value for GOTRUE_DISABLE_SIGNUP.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "GOTRUE_URI_ALLOW_LIST",
      "service": "Auth",
      "description": "Provide a value for GOTRUE_URI_ALLOW_LIST.",
      "secret": false,
      "strategy": "default",
      "default": "*"
    },
    {
      "key": "GOTRUE_DB_DATABASE_URL",
      "service": "Auth",
      "description": "Provide a value for GOTRUE_DB_DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "GOTRUE_JWT_ADMIN_ROLES",
      "service": "Auth",
      "description": "Provide a value for GOTRUE_JWT_ADMIN_ROLES.",
      "secret": false,
      "strategy": "default",
      "default": "service_role"
    },
    {
      "key": "GOTRUE_MAILER_AUTOCONFIRM",
      "service": "Auth",
      "description": "Provide a value for GOTRUE_MAILER_AUTOCONFIRM.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "GOTRUE_EXTERNAL_EMAIL_ENABLED",
      "service": "Auth",
      "description": "Provide a value for GOTRUE_EXTERNAL_EMAIL_ENABLED.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "GOTRUE_JWT_DEFAULT_GROUP_NAME",
      "service": "Auth",
      "description": "Provide a value for GOTRUE_JWT_DEFAULT_GROUP_NAME.",
      "secret": false,
      "strategy": "default",
      "default": "authenticated"
    },
    {
      "key": "PORT",
      "service": "Studio",
      "description": "Provide a value for PORT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "ANON_KEY",
      "service": "Studio",
      "description": "Provide a value for ANON_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "JWT_SECRET",
      "service": "Studio",
      "description": "Provide a value for JWT_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SUPABASE_URL",
      "service": "Studio",
      "description": "Provide a value for SUPABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "SERVICE_ROLE_KEY",
      "service": "Studio",
      "description": "Provide a value for SERVICE_ROLE_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "Studio",
      "description": "Provide a value for POSTGRES_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SUPABASE_ANON_KEY",
      "service": "Studio",
      "description": "Provide a value for SUPABASE_ANON_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "STUDIO_PG_META_URL",
      "service": "Studio",
      "description": "Provide a value for STUDIO_PG_META_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "SUPABASE_PUBLIC_URL",
      "service": "Studio",
      "description": "Provide a value for SUPABASE_PUBLIC_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "DEFAULT_PROJECT_NAME",
      "service": "Studio",
      "description": "Provide a value for DEFAULT_PROJECT_NAME.",
      "secret": false,
      "strategy": "default",
      "default": "My Project"
    },
    {
      "key": "SUPABASE_SERVICE_KEY",
      "service": "Studio",
      "description": "Provide a value for SUPABASE_SERVICE_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "NEXT_PUBLIC_ENABLE_LOGS",
      "service": "Studio",
      "description": "Provide a value for NEXT_PUBLIC_ENABLE_LOGS.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "DEFAULT_ORGANIZATION_NAME",
      "service": "Studio",
      "description": "Provide a value for DEFAULT_ORGANIZATION_NAME.",
      "secret": false,
      "strategy": "default",
      "default": "My Organization"
    },
    {
      "key": "NEXT_ANALYTICS_BACKEND_PROVIDER",
      "service": "Studio",
      "description": "Provide a value for NEXT_ANALYTICS_BACKEND_PROVIDER.",
      "secret": false,
      "strategy": "default",
      "default": "postgres"
    },
    {
      "key": "ANON_KEY",
      "service": "Kong",
      "description": "Provide a value for ANON_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "JWT_SECRET",
      "service": "Kong",
      "description": "Provide a value for JWT_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PGRST_PORT",
      "service": "Kong",
      "description": "Provide a value for PGRST_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "3000"
    },
    {
      "key": "GOTRUE_PORT",
      "service": "Kong",
      "description": "Provide a value for GOTRUE_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "9999"
    },
    {
      "key": "KONG_PLUGINS",
      "service": "Kong",
      "description": "Provide a value for KONG_PLUGINS.",
      "secret": false,
      "strategy": "default",
      "default": "request-transformer,cors,key-auth,acl"
    },
    {
      "key": "STORAGE_PORT",
      "service": "Kong",
      "description": "Provide a value for STORAGE_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "5000"
    },
    {
      "key": "KONG_DATABASE",
      "service": "Kong",
      "description": "Provide a value for KONG_DATABASE.",
      "secret": false,
      "strategy": "default",
      "default": "off"
    },
    {
      "key": "REALTIME_PORT",
      "service": "Kong",
      "description": "Provide a value for REALTIME_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "4000"
    },
    {
      "key": "KONG_DNS_ORDER",
      "service": "Kong",
      "description": "Provide a value for KONG_DNS_ORDER.",
      "secret": false,
      "strategy": "default",
      "default": "LAST,A,CNAME"
    },
    {
      "key": "SERVICE_ROLE_KEY",
      "service": "Kong",
      "description": "Provide a value for SERVICE_ROLE_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "Kong",
      "description": "Provide a value for POSTGRES_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PGRST_PRIVATE_HOST",
      "service": "Kong",
      "description": "Provide a value for PGRST_PRIVATE_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "GOTRUE_PRIVATE_HOST",
      "service": "Kong",
      "description": "Provide a value for GOTRUE_PRIVATE_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "STORAGE_PRIVATE_HOST",
      "service": "Kong",
      "description": "Provide a value for STORAGE_PRIVATE_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "REALTIME_PRIVATE_HOST",
      "service": "Kong",
      "description": "Provide a value for REALTIME_PRIVATE_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "KONG_DECLARATIVE_CONFIG",
      "service": "Kong",
      "description": "Provide a value for KONG_DECLARATIVE_CONFIG.",
      "secret": false,
      "strategy": "default",
      "default": "/home/kong/kong.yml"
    },
    {
      "key": "KONG_NGINX_PROXY_PROXY_BUFFERS",
      "service": "Kong",
      "description": "Provide a value for KONG_NGINX_PROXY_PROXY_BUFFERS.",
      "secret": false,
      "strategy": "default",
      "default": "64 160k"
    },
    {
      "key": "KONG_NGINX_PROXY_PROXY_BUFFER_SIZE",
      "service": "Kong",
      "description": "Provide a value for KONG_NGINX_PROXY_PROXY_BUFFER_SIZE.",
      "secret": false,
      "strategy": "default",
      "default": "160k"
    },
    {
      "key": "PORT",
      "service": "Storage",
      "description": "Provide a value for PORT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "ANON_KEY",
      "service": "Storage",
      "description": "Provide a value for ANON_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "JWT_SECRET",
      "service": "Storage",
      "description": "Provide a value for JWT_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SERVICE_KEY",
      "service": "Storage",
      "description": "Provide a value for SERVICE_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DATABASE_URL",
      "service": "Storage",
      "description": "Provide a value for DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "POSTGREST_URL",
      "service": "Storage",
      "description": "Provide a value for POSTGREST_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "FILE_SIZE_LIMIT",
      "service": "Storage",
      "description": "Provide a value for FILE_SIZE_LIMIT.",
      "secret": false,
      "strategy": "default",
      "default": "52428800"
    },
    {
      "key": "STORAGE_BACKEND",
      "service": "Storage",
      "description": "Provide a value for STORAGE_BACKEND.",
      "secret": false,
      "strategy": "default",
      "default": "file"
    },
    {
      "key": "PGRST_JWT_SECRET",
      "service": "Storage",
      "description": "Provide a value for PGRST_JWT_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SERVICE_ROLE_KEY",
      "service": "Storage",
      "description": "Provide a value for SERVICE_ROLE_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "Storage",
      "description": "Provide a value for POSTGRES_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "FILE_STORAGE_BACKEND_PATH",
      "service": "Storage",
      "description": "Provide a value for FILE_STORAGE_BACKEND_PATH.",
      "secret": false,
      "strategy": "default",
      "default": "/var/lib/storage"
    },
    {
      "key": "ANON_KEY",
      "service": "Init-JWT",
      "description": "Provide a value for ANON_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "JWT_SECRET",
      "service": "Init-JWT",
      "description": "Provide a value for JWT_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SERVICE_ROLE_KEY",
      "service": "Init-JWT",
      "description": "Provide a value for SERVICE_ROLE_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "Init-JWT",
      "description": "Provide a value for POSTGRES_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "ANON_KEY",
      "service": "Rest",
      "description": "Provide a value for ANON_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "JWT_SECRET",
      "service": "Rest",
      "description": "Provide a value for JWT_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PGRST_DB_URI",
      "service": "Rest",
      "description": "Provide a value for PGRST_DB_URI.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "PGRST_DB_SCHEMAS",
      "service": "Rest",
      "description": "Provide a value for PGRST_DB_SCHEMAS.",
      "secret": false,
      "strategy": "default",
      "default": "public,storage,graphql_public"
    },
    {
      "key": "PGRST_JWT_SECRET",
      "service": "Rest",
      "description": "Provide a value for PGRST_JWT_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SERVICE_ROLE_KEY",
      "service": "Rest",
      "description": "Provide a value for SERVICE_ROLE_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PGRST_SERVER_PORT",
      "service": "Rest",
      "description": "Provide a value for PGRST_SERVER_PORT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "Rest",
      "description": "Provide a value for POSTGRES_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PGRST_DB_ANON_ROLE",
      "service": "Rest",
      "description": "Provide a value for PGRST_DB_ANON_ROLE.",
      "secret": false,
      "strategy": "default",
      "default": "anon"
    },
    {
      "key": "PGRST_DB_USE_LEGACY_GUCS",
      "service": "Rest",
      "description": "Provide a value for PGRST_DB_USE_LEGACY_GUCS.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "PGRST_DB_EXTRA_SEARCH_PATH",
      "service": "Rest",
      "description": "Provide a value for PGRST_DB_EXTRA_SEARCH_PATH.",
      "secret": false,
      "strategy": "default",
      "default": "public,extensions"
    },
    {
      "key": "PORT",
      "service": "Realtime",
      "description": "Provide a value for PORT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DB_HOST",
      "service": "Realtime",
      "description": "Provide a value for DB_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "DB_NAME",
      "service": "Realtime",
      "description": "Provide a value for DB_NAME.",
      "secret": false,
      "strategy": "default",
      "default": "postgres"
    },
    {
      "key": "DB_PORT",
      "service": "Realtime",
      "description": "Provide a value for DB_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "5432"
    },
    {
      "key": "DB_USER",
      "service": "Realtime",
      "description": "Provide a value for DB_USER.",
      "secret": false,
      "strategy": "default",
      "default": "supabase_realtime_user"
    },
    {
      "key": "ANON_KEY",
      "service": "Realtime",
      "description": "Provide a value for ANON_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DNS_NODES",
      "service": "Realtime",
      "description": "Provide a value for DNS_NODES.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "DB_ENC_KEY",
      "service": "Realtime",
      "description": "Provide a value for DB_ENC_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "supabaserealtime"
    },
    {
      "key": "ERL_AFLAGS",
      "service": "Realtime",
      "description": "Provide a value for ERL_AFLAGS.",
      "secret": false,
      "strategy": "default",
      "default": "-proto_dist inet_tcp"
    },
    {
      "key": "JWT_SECRET",
      "service": "Realtime",
      "description": "Provide a value for JWT_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DB_PASSWORD",
      "service": "Realtime",
      "description": "Provide a value for DB_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "FLY_ALLOC_ID",
      "service": "Realtime",
      "description": "Provide a value for FLY_ALLOC_ID.",
      "secret": false,
      "strategy": "default",
      "default": "fly123"
    },
    {
      "key": "FLY_APP_NAME",
      "service": "Realtime",
      "description": "Provide a value for FLY_APP_NAME.",
      "secret": false,
      "strategy": "default",
      "default": "realtime"
    },
    {
      "key": "API_JWT_SECRET",
      "service": "Realtime",
      "description": "Provide a value for API_JWT_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SECRET_KEY_BASE",
      "service": "Realtime",
      "description": "Provide a value for SECRET_KEY_BASE.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "ENABLE_TAILSCALE",
      "service": "Realtime",
      "description": "Provide a value for ENABLE_TAILSCALE.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "SERVICE_ROLE_KEY",
      "service": "Realtime",
      "description": "Provide a value for SERVICE_ROLE_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "Realtime",
      "description": "Provide a value for POSTGRES_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DB_AFTER_CONNECT_QUERY",
      "service": "Realtime",
      "description": "Provide a value for DB_AFTER_CONNECT_QUERY.",
      "secret": false,
      "strategy": "default",
      "default": "SET search_path TO _realtime"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "oneclicksupabase"
      }
    },
    "cli": "railway deploy --template oneclicksupabase",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "c044b741-051d-4794-a277-57a3da0b5c64",
            "serializedConfig": {
              "services": {
                "18248cce-7b0c-4db6-8f94-d3c8054486be": {
                  "name": "DB",
                  "source": {
                    "repo": "pagetree/OneClickSupabase",
                    "branch": null,
                    "rootDirectory": "/db"
                  },
                  "variables": {
                    "ANON_KEY": {
                      "defaultValue": "{{ANON_KEY}}"
                    },
                    "SITE_URL": {
                      "defaultValue": "{{SITE_URL}}"
                    },
                    "JWT_SECRET": {
                      "defaultValue": "{{JWT_SECRET}}"
                    },
                    "SERVICE_ROLE_KEY": {
                      "defaultValue": "{{SERVICE_ROLE_KEY}}"
                    },
                    "POSTGRES_PASSWORD": {
                      "defaultValue": "{{POSTGRES_PASSWORD}}"
                    },
                    "DASHBOARD_PASSWORD": {
                      "defaultValue": "{{DASHBOARD_PASSWORD}}"
                    },
                    "DASHBOARD_USERNAME": {
                      "defaultValue": "supabase"
                    },
                    "SUPABASE_PUBLIC_URL": {
                      "defaultValue": "{{SUPABASE_PUBLIC_URL}}"
                    }
                  }
                },
                "23ff4e27-7705-43b0-911d-770b6f07492d": {
                  "name": "Auth",
                  "source": {
                    "repo": "pagetree/OneClickSupabase",
                    "branch": null,
                    "rootDirectory": "/auth"
                  },
                  "variables": {
                    "PORT": {
                      "defaultValue": "${{PORT}}"
                    },
                    "ANON_KEY": {
                      "defaultValue": "${{db.ANON_KEY}}"
                    },
                    "SMTP_HOST": {
                      "defaultValue": "{{SMTP_HOST}}"
                    },
                    "SMTP_PASS": {
                      "defaultValue": "{{SMTP_PASS}}"
                    },
                    "SMTP_PORT": {
                      "defaultValue": "587"
                    },
                    "SMTP_USER": {
                      "defaultValue": "{{SMTP_USER}}"
                    },
                    "JWT_SECRET": {
                      "defaultValue": "${{db.JWT_SECRET}}"
                    },
                    "GOTRUE_JWT_AUD": {
                      "defaultValue": "authenticated"
                    },
                    "GOTRUE_JWT_EXP": {
                      "defaultValue": "3600"
                    },
                    "GOTRUE_API_HOST": {
                      "defaultValue": "0.0.0.0"
                    },
                    "GOTRUE_API_PORT": {
                      "defaultValue": "${{PORT}}"
                    },
                    "GOTRUE_SITE_URL": {
                      "defaultValue": "${{db.SITE_URL}}"
                    },
                    "GOTRUE_DB_DRIVER": {
                      "defaultValue": "postgres"
                    },
                    "SERVICE_ROLE_KEY": {
                      "defaultValue": "${{db.SERVICE_ROLE_KEY}}"
                    },
                    "SMTP_SENDER_NAME": {
                      "defaultValue": "Supabase"
                    },
                    "GOTRUE_JWT_SECRET": {
                      "defaultValue": "${{db.JWT_SECRET}}"
                    },
                    "POSTGRES_PASSWORD": {
                      "defaultValue": "${{db.POSTGRES_PASSWORD}}"
                    },
                    "GOTRUE_DISABLE_SIGNUP": {
                      "defaultValue": "false"
                    },
                    "GOTRUE_URI_ALLOW_LIST": {
                      "defaultValue": "*"
                    },
                    "GOTRUE_DB_DATABASE_URL": {
                      "defaultValue": "postgres://supabase_auth_admin:${{db.POSTGRES_PASSWORD}}@${{db.RAILWAY_PRIVATE_DOMAIN}}:5432/postgres?search_path=auth"
                    },
                    "GOTRUE_JWT_ADMIN_ROLES": {
                      "defaultValue": "service_role"
                    },
                    "GOTRUE_MAILER_AUTOCONFIRM": {
                      "defaultValue": "true"
                    },
                    "GOTRUE_EXTERNAL_EMAIL_ENABLED": {
                      "defaultValue": "true"
                    },
                    "GOTRUE_JWT_DEFAULT_GROUP_NAME": {
                      "defaultValue": "authenticated"
                    }
                  }
                },
                "270a2c81-cec5-4adb-a151-b4a7312f863a": {
                  "name": "Studio",
                  "source": {
                    "repo": "pagetree/OneClickSupabase",
                    "branch": null,
                    "rootDirectory": "/studio"
                  },
                  "variables": {
                    "PORT": {
                      "defaultValue": "${{PORT}}"
                    },
                    "ANON_KEY": {
                      "defaultValue": "${{db.ANON_KEY}}"
                    },
                    "JWT_SECRET": {
                      "defaultValue": "${{db.JWT_SECRET}}"
                    },
                    "SUPABASE_URL": {
                      "defaultValue": "http://${{rest.RAILWAY_PRIVATE_DOMAIN}}:3000"
                    },
                    "SERVICE_ROLE_KEY": {
                      "defaultValue": "${{db.SERVICE_ROLE_KEY}}"
                    },
                    "POSTGRES_PASSWORD": {
                      "defaultValue": "${{db.POSTGRES_PASSWORD}}"
                    },
                    "SUPABASE_ANON_KEY": {
                      "defaultValue": "${{db.ANON_KEY}}"
                    },
                    "STUDIO_PG_META_URL": {
                      "defaultValue": "http://${{db.RAILWAY_PRIVATE_DOMAIN}}:5432"
                    },
                    "SUPABASE_PUBLIC_URL": {
                      "defaultValue": "${{kong.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "DEFAULT_PROJECT_NAME": {
                      "defaultValue": "My Project"
                    },
                    "SUPABASE_SERVICE_KEY": {
                      "defaultValue": "${{db.SERVICE_ROLE_KEY}}"
                    },
                    "NEXT_PUBLIC_ENABLE_LOGS": {
                      "defaultValue": "false"
                    },
                    "DEFAULT_ORGANIZATION_NAME": {
                      "defaultValue": "My Organization"
                    },
                    "NEXT_ANALYTICS_BACKEND_PROVIDER": {
                      "defaultValue": "postgres"
                    }
                  }
                },
                "2ace54f7-fe37-4791-8f35-dfa6abb544b6": {
                  "name": "Kong",
                  "source": {
                    "repo": "pagetree/OneClickSupabase",
                    "branch": null,
                    "rootDirectory": "/kong"
                  },
                  "variables": {
                    "ANON_KEY": {
                      "defaultValue": "${{db.ANON_KEY}}"
                    },
                    "JWT_SECRET": {
                      "defaultValue": "${{db.JWT_SECRET}}"
                    },
                    "PGRST_PORT": {
                      "defaultValue": "3000"
                    },
                    "GOTRUE_PORT": {
                      "defaultValue": "9999"
                    },
                    "KONG_PLUGINS": {
                      "defaultValue": "request-transformer,cors,key-auth,acl"
                    },
                    "STORAGE_PORT": {
                      "defaultValue": "5000"
                    },
                    "KONG_DATABASE": {
                      "defaultValue": "off"
                    },
                    "REALTIME_PORT": {
                      "defaultValue": "4000"
                    },
                    "KONG_DNS_ORDER": {
                      "defaultValue": "LAST,A,CNAME"
                    },
                    "SERVICE_ROLE_KEY": {
                      "defaultValue": "${{db.SERVICE_ROLE_KEY}}"
                    },
                    "POSTGRES_PASSWORD": {
                      "defaultValue": "${{db.POSTGRES_PASSWORD}}"
                    },
                    "PGRST_PRIVATE_HOST": {
                      "defaultValue": "${{rest.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "GOTRUE_PRIVATE_HOST": {
                      "defaultValue": "${{auth.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "STORAGE_PRIVATE_HOST": {
                      "defaultValue": "${{storage.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "REALTIME_PRIVATE_HOST": {
                      "defaultValue": "${{realtime.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "KONG_DECLARATIVE_CONFIG": {
                      "defaultValue": "/home/kong/kong.yml"
                    },
                    "KONG_NGINX_PROXY_PROXY_BUFFERS": {
                      "defaultValue": "64 160k"
                    },
                    "KONG_NGINX_PROXY_PROXY_BUFFER_SIZE": {
                      "defaultValue": "160k"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>:8000": {
                        "port": 8000
                      }
                    }
                  }
                },
                "2f1f64d5-69d0-430b-8d2b-9c4b9d3635ab": {
                  "name": "Storage",
                  "source": {
                    "repo": "pagetree/OneClickSupabase",
                    "branch": null,
                    "rootDirectory": "/storage"
                  },
                  "variables": {
                    "PORT": {
                      "defaultValue": "${{PORT}}"
                    },
                    "ANON_KEY": {
                      "defaultValue": "${{db.ANON_KEY}}"
                    },
                    "JWT_SECRET": {
                      "defaultValue": "${{db.JWT_SECRET}}"
                    },
                    "SERVICE_KEY": {
                      "defaultValue": "${{db.SERVICE_ROLE_KEY}}"
                    },
                    "DATABASE_URL": {
                      "defaultValue": "postgres://supabase_storage_admin:${{db.POSTGRES_PASSWORD}}@${{db.RAILWAY_PRIVATE_DOMAIN}}:5432/postgres"
                    },
                    "POSTGREST_URL": {
                      "defaultValue": "http://${{rest.RAILWAY_PRIVATE_DOMAIN}}:3000"
                    },
                    "FILE_SIZE_LIMIT": {
                      "defaultValue": "52428800"
                    },
                    "STORAGE_BACKEND": {
                      "defaultValue": "file"
                    },
                    "PGRST_JWT_SECRET": {
                      "defaultValue": "${{db.JWT_SECRET}}"
                    },
                    "SERVICE_ROLE_KEY": {
                      "defaultValue": "${{db.SERVICE_ROLE_KEY}}"
                    },
                    "POSTGRES_PASSWORD": {
                      "defaultValue": "${{db.POSTGRES_PASSWORD}}"
                    },
                    "FILE_STORAGE_BACKEND_PATH": {
                      "defaultValue": "/var/lib/storage"
                    }
                  }
                },
                "977f3fb5-23a7-43e2-87f2-3eba67def0ab": {
                  "name": "Init-JWT",
                  "source": {
                    "repo": "pagetree/OneClickSupabase",
                    "branch": null,
                    "rootDirectory": "/init-jwt"
                  },
                  "variables": {
                    "ANON_KEY": {
                      "defaultValue": "${{db.ANON_KEY}}"
                    },
                    "JWT_SECRET": {
                      "defaultValue": "${{db.JWT_SECRET}}"
                    },
                    "SERVICE_ROLE_KEY": {
                      "defaultValue": "${{db.SERVICE_ROLE_KEY}}"
                    },
                    "POSTGRES_PASSWORD": {
                      "defaultValue": "${{db.POSTGRES_PASSWORD}}"
                    }
                  }
                },
                "aa8ac299-fbf7-4b3d-9054-bd331ae4803d": {
                  "name": "Rest",
                  "source": {
                    "repo": "pagetree/OneClickSupabase",
                    "branch": null,
                    "rootDirectory": "/rest"
                  },
                  "variables": {
                    "ANON_KEY": {
                      "defaultValue": "${{db.ANON_KEY}}"
                    },
                    "JWT_SECRET": {
                      "defaultValue": "${{db.JWT_SECRET}}"
                    },
                    "PGRST_DB_URI": {
                      "defaultValue": "postgres://authenticator:${{db.POSTGRES_PASSWORD}}@${{db.RAILWAY_PRIVATE_DOMAIN}}:5432/postgres"
                    },
                    "PGRST_DB_SCHEMAS": {
                      "defaultValue": "public,storage,graphql_public"
                    },
                    "PGRST_JWT_SECRET": {
                      "defaultValue": "${{db.JWT_SECRET}}"
                    },
                    "SERVICE_ROLE_KEY": {
                      "defaultValue": "${{db.SERVICE_ROLE_KEY}}"
                    },
                    "PGRST_SERVER_PORT": {
                      "defaultValue": "${{PORT}}"
                    },
                    "POSTGRES_PASSWORD": {
                      "defaultValue": "${{db.POSTGRES_PASSWORD}}"
                    },
                    "PGRST_DB_ANON_ROLE": {
                      "defaultValue": "anon"
                    },
                    "PGRST_DB_USE_LEGACY_GUCS": {
                      "defaultValue": "false"
                    },
                    "PGRST_DB_EXTRA_SEARCH_PATH": {
                      "defaultValue": "public,extensions"
                    }
                  }
                },
                "d2335027-b3c3-4be1-9fea-c3687136e13b": {
                  "name": "Realtime",
                  "source": {
                    "repo": "pagetree/OneClickSupabase",
                    "branch": null,
                    "rootDirectory": "/realtime"
                  },
                  "variables": {
                    "PORT": {
                      "defaultValue": "${{PORT}}"
                    },
                    "DB_HOST": {
                      "defaultValue": "${{db.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "DB_NAME": {
                      "defaultValue": "postgres"
                    },
                    "DB_PORT": {
                      "defaultValue": "5432"
                    },
                    "DB_USER": {
                      "defaultValue": "supabase_realtime_user"
                    },
                    "ANON_KEY": {
                      "defaultValue": "${{db.ANON_KEY}}"
                    },
                    "DNS_NODES": {
                      "defaultValue": "{{DNS_NODES}}"
                    },
                    "DB_ENC_KEY": {
                      "defaultValue": "supabaserealtime"
                    },
                    "ERL_AFLAGS": {
                      "defaultValue": "-proto_dist inet_tcp"
                    },
                    "JWT_SECRET": {
                      "defaultValue": "${{db.JWT_SECRET}}"
                    },
                    "DB_PASSWORD": {
                      "defaultValue": "${{db.POSTGRES_PASSWORD}}"
                    },
                    "FLY_ALLOC_ID": {
                      "defaultValue": "fly123"
                    },
                    "FLY_APP_NAME": {
                      "defaultValue": "realtime"
                    },
                    "API_JWT_SECRET": {
                      "defaultValue": "${{db.JWT_SECRET}}"
                    },
                    "SECRET_KEY_BASE": {
                      "defaultValue": "{{SECRET_KEY_BASE}}"
                    },
                    "ENABLE_TAILSCALE": {
                      "defaultValue": "false"
                    },
                    "SERVICE_ROLE_KEY": {
                      "defaultValue": "${{db.SERVICE_ROLE_KEY}}"
                    },
                    "POSTGRES_PASSWORD": {
                      "defaultValue": "${{db.POSTGRES_PASSWORD}}"
                    },
                    "DB_AFTER_CONNECT_QUERY": {
                      "defaultValue": "SET search_path TO _realtime"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 8,
    "needs_volume": false
  },
  "generated_at": "2026-09-21T16:15:12.787Z",
  "generator_version": "0.1.0"
}
