{
  "manifest_version": "1.0.0",
  "template": {
    "id": "49da6c89-94b0-4f4b-9c4d-85dcf15fc746",
    "slug": "kodus-selfhosted",
    "name": "kodus-selfhosted",
    "description": "Kodus AI self-hosted on Railway with API, Web, Worker, and webhooks.",
    "url": "https://railway.com/deploy/kodus-selfhosted",
    "upstream": {
      "image": "ghcr.io/kodustech/kodus-ai-web"
    }
  },
  "status": "unvalidated",
  "validated_at": null,
  "success_rate_30d": null,
  "services": [
    {
      "name": "kodus-web",
      "source": {
        "image": "ghcr.io/kodustech/kodus-ai-web"
      },
      "needs_volume": false,
      "http": true
    },
    {
      "name": "kodus-ai-webhook",
      "source": {
        "image": "ghcr.io/kodustech/kodus-ai-webhook"
      },
      "needs_volume": false,
      "http": true
    },
    {
      "name": "MongoDB",
      "source": {
        "image": "mongo:8.0"
      },
      "needs_volume": true,
      "volume_mount_path": "/data/db",
      "http": false
    },
    {
      "name": "kodus-mcp-manager",
      "source": {
        "image": "ghcr.io/kodustech/kodus-mcp-manager"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "kodus-ai-api",
      "source": {
        "image": "ghcr.io/kodustech/kodus-ai-api"
      },
      "needs_volume": false,
      "http": true
    },
    {
      "name": "kodus-rabbitmq",
      "source": {
        "image": "ghcr.io/kodustech/kodus-rabbitmq"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "pgvector",
      "source": {
        "repo": "https://github.com/kodustech/kodus-installer"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "kodus-ai-worker",
      "source": {
        "image": "ghcr.io/kodustech/kodus-ai-worker"
      },
      "needs_volume": false,
      "http": false
    }
  ],
  "required_inputs": [
    {
      "key": "NEXTAUTH_URL",
      "service": "kodus-web",
      "description": "Provide a value for NEXTAUTH_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "WEB_NODE_ENV",
      "service": "kodus-web",
      "description": "Provide a value for WEB_NODE_ENV.",
      "secret": false,
      "strategy": "default",
      "default": "self-hosted"
    },
    {
      "key": "WEB_PORT_API",
      "service": "kodus-web",
      "description": "Provide a value for WEB_PORT_API.",
      "secret": false,
      "strategy": "default",
      "default": "443"
    },
    {
      "key": "NEXTAUTH_SECRET",
      "service": "kodus-web",
      "description": "Provide a value for NEXTAUTH_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "WEB_HOSTNAME_API",
      "service": "kodus-web",
      "description": "Provide a value for WEB_HOSTNAME_API.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "WEB_NEXTAUTH_SECRET",
      "service": "kodus-web",
      "description": "Provide a value for WEB_NEXTAUTH_SECRET.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "WEB_SUPPORT_DOCS_URL",
      "service": "kodus-web",
      "description": "Provide a value for WEB_SUPPORT_DOCS_URL.",
      "secret": false,
      "strategy": "default",
      "default": "https://docs.kodus.io/"
    },
    {
      "key": "WEB_SUPPORT_DISCORD_INVITE_URL",
      "service": "kodus-web",
      "description": "Provide a value for WEB_SUPPORT_DISCORD_INVITE_URL.",
      "secret": false,
      "strategy": "default",
      "default": "https://discord.gg/TFZBRk9fT6"
    },
    {
      "key": "WEB_SUPPORT_TALK_TO_FOUNDER_URL",
      "service": "kodus-web",
      "description": "Provide a value for WEB_SUPPORT_TALK_TO_FOUNDER_URL.",
      "secret": false,
      "strategy": "default",
      "default": "https://cal.com/gabrielmalinosqui/30min"
    },
    {
      "key": "PORT",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for PORT.",
      "secret": false,
      "strategy": "default",
      "default": "3332"
    },
    {
      "key": "API_HOST",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_PORT",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_PORT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "NODE_ENV",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for NODE_ENV.",
      "secret": false,
      "strategy": "default",
      "default": "production"
    },
    {
      "key": "RUN_SEEDS",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for RUN_SEEDS.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "API_E2B_KEY",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_E2B_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_EXA_KEY",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_EXA_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_NODE_ENV",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_NODE_ENV.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_LOG_LEVEL",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_LOG_LEVEL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_CLOUD_MODE",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_CLOUD_MODE.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_CRYPTO_KEY",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_CRYPTO_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_JWT_SECRET",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_JWT_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_LOG_PRETTY",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_LOG_PRETTY.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MG_DB_HOST",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_MG_DB_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MG_DB_PORT",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_MG_DB_PORT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_PG_DB_HOST",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_PG_DB_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_PG_DB_PORT",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_PG_DB_PORT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "RUN_MIGRATIONS",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for RUN_MIGRATIONS.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "NEXTAUTH_SECRET",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for NEXTAUTH_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_DATABASE_ENV",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_DATABASE_ENV.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_RABBITMQ_URI",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_RABBITMQ_URI.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "LANGFUSE_TRACING",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for LANGFUSE_TRACING.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SANDBOX_PROVIDER",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for SANDBOX_PROVIDER.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_RATE_INTERVAL",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_RATE_INTERVAL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_WEBHOOKS_PORT",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_WEBHOOKS_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "3332"
    },
    {
      "key": "LANGFUSE_BASE_URL",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for LANGFUSE_BASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_JWT_EXPIRES_IN",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_JWT_EXPIRES_IN.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MG_DB_DATABASE",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_MG_DB_DATABASE.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MG_DB_PASSWORD",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_MG_DB_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MG_DB_USERNAME",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_MG_DB_USERNAME.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_PG_DB_DATABASE",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_PG_DB_DATABASE.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_PG_DB_PASSWORD",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_PG_DB_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_PG_DB_USERNAME",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_PG_DB_USERNAME.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_OPEN_AI_API_KEY",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_OPEN_AI_API_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_SERVICE_AST_URL",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_SERVICE_AST_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "LANGFUSE_PUBLIC_KEY",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for LANGFUSE_PUBLIC_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "LANGFUSE_SECRET_KEY",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for LANGFUSE_SECRET_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "WEB_NEXTAUTH_SECRET",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for WEB_NEXTAUTH_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MORPHLLM_API_KEY",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_MORPHLLM_API_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_RABBITMQ_ENABLED",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_RABBITMQ_ENABLED.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_RATE_MAX_REQUEST",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_RATE_MAX_REQUEST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "LANGFUSE_ENVIRONMENT",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for LANGFUSE_ENVIRONMENT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_JWT_REFRESH_SECRET",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_JWT_REFRESH_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_LLM_PROVIDER_MODEL",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_LLM_PROVIDER_MODEL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MCP_SERVER_ENABLED",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_MCP_SERVER_ENABLED.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "CODE_MANAGEMENT_SECRET",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for CODE_MANAGEMENT_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_AGENT_REVIEW_ENABLED",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_AGENT_REVIEW_ENABLED.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_DATABASE_DISABLE_SSL",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_DATABASE_DISABLE_SSL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_KODUS_MCP_SERVER_URL",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_KODUS_MCP_SERVER_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "KODUS_TELEMETRY_DISABLED",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for KODUS_TELEMETRY_DISABLED.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_OPENAI_FORCE_BASE_URL",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_OPENAI_FORCE_BASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_ENABLE_CODE_REVIEW_AST",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_ENABLE_CODE_REVIEW_AST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_JWT_REFRESH_EXPIRES_IN",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_JWT_REFRESH_EXPIRES_IN.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MG_DB_PRODUCTION_CONFIG",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_MG_DB_PRODUCTION_CONFIG.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_KODUS_SERVICE_MCP_MANAGER",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for API_KODUS_SERVICE_MCP_MANAGER.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "CODE_MANAGEMENT_WEBHOOK_TOKEN",
      "service": "kodus-ai-webhook",
      "description": "Provide a value for CODE_MANAGEMENT_WEBHOOK_TOKEN.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MONGOHOST",
      "service": "MongoDB",
      "description": "Provide a value for MONGOHOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "MONGOPORT",
      "service": "MongoDB",
      "description": "Provide a value for MONGOPORT.",
      "secret": false,
      "strategy": "default",
      "default": "27017"
    },
    {
      "key": "MONGOUSER",
      "service": "MongoDB",
      "description": "Provide a value for MONGOUSER.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MONGO_URL",
      "service": "MongoDB",
      "description": "Provide a value for MONGO_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "MONGOPASSWORD",
      "service": "MongoDB",
      "description": "Provide a value for MONGOPASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MONGO_PUBLIC_URL",
      "service": "MongoDB",
      "description": "Provide a value for MONGO_PUBLIC_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MONGO_INITDB_ROOT_PASSWORD",
      "service": "MongoDB",
      "description": "Provide a value for MONGO_INITDB_ROOT_PASSWORD.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "MONGO_INITDB_ROOT_USERNAME",
      "service": "MongoDB",
      "description": "Provide a value for MONGO_INITDB_ROOT_USERNAME.",
      "secret": false,
      "strategy": "default",
      "default": "kodus"
    },
    {
      "key": "API_PG_DB_HOST",
      "service": "kodus-mcp-manager",
      "description": "Provide a value for API_PG_DB_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "API_PG_DB_PORT",
      "service": "kodus-mcp-manager",
      "description": "Provide a value for API_PG_DB_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "5432"
    },
    {
      "key": "CONTAINER_NAME",
      "service": "kodus-mcp-manager",
      "description": "Provide a value for CONTAINER_NAME.",
      "secret": false,
      "strategy": "default",
      "default": "kodus-service-mcp-manager"
    },
    {
      "key": "API_PG_DB_DATABASE",
      "service": "kodus-mcp-manager",
      "description": "Provide a value for API_PG_DB_DATABASE.",
      "secret": false,
      "strategy": "default",
      "default": "kodus_db"
    },
    {
      "key": "API_PG_DB_PASSWORD",
      "service": "kodus-mcp-manager",
      "description": "Provide a value for API_PG_DB_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_PG_DB_USERNAME",
      "service": "kodus-mcp-manager",
      "description": "Provide a value for API_PG_DB_USERNAME.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MCP_MANAGER_PORT",
      "service": "kodus-mcp-manager",
      "description": "Provide a value for API_MCP_MANAGER_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "3101"
    },
    {
      "key": "API_MCP_MANAGER_NODE_ENV",
      "service": "kodus-mcp-manager",
      "description": "Provide a value for API_MCP_MANAGER_NODE_ENV.",
      "secret": false,
      "strategy": "default",
      "default": "production"
    },
    {
      "key": "API_MCP_MANAGER_LOG_LEVEL",
      "service": "kodus-mcp-manager",
      "description": "Provide a value for API_MCP_MANAGER_LOG_LEVEL.",
      "secret": false,
      "strategy": "default",
      "default": "info"
    },
    {
      "key": "API_MCP_MANAGER_JWT_SECRET",
      "service": "kodus-mcp-manager",
      "description": "Provide a value for API_MCP_MANAGER_JWT_SECRET.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "API_MCP_MANAGER_CORS_ORIGINS",
      "service": "kodus-mcp-manager",
      "description": "Provide a value for API_MCP_MANAGER_CORS_ORIGINS.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "API_MCP_MANAGER_DATABASE_ENV",
      "service": "kodus-mcp-manager",
      "description": "Provide a value for API_MCP_MANAGER_DATABASE_ENV.",
      "secret": false,
      "strategy": "default",
      "default": "development"
    },
    {
      "key": "API_MCP_MANAGER_PG_DB_SCHEMA",
      "service": "kodus-mcp-manager",
      "description": "Provide a value for API_MCP_MANAGER_PG_DB_SCHEMA.",
      "secret": false,
      "strategy": "default",
      "default": "mcp_manager"
    },
    {
      "key": "API_MCP_MANAGER_REDIRECT_URI",
      "service": "kodus-mcp-manager",
      "description": "Provide a value for API_MCP_MANAGER_REDIRECT_URI.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "API_MCP_MANAGER_MCP_PROVIDERS",
      "service": "kodus-mcp-manager",
      "description": "Provide a value for API_MCP_MANAGER_MCP_PROVIDERS.",
      "secret": false,
      "strategy": "default",
      "default": "composio,kodusmcp,custom"
    },
    {
      "key": "API_MCP_MANAGER_COMPOSIO_BASE_URL",
      "service": "kodus-mcp-manager",
      "description": "Provide a value for API_MCP_MANAGER_COMPOSIO_BASE_URL.",
      "secret": false,
      "strategy": "default",
      "default": "https://backend.composio.dev/api/v3"
    },
    {
      "key": "API_MCP_MANAGER_ENCRYPTION_SECRET",
      "service": "kodus-mcp-manager",
      "description": "Provide a value for API_MCP_MANAGER_ENCRYPTION_SECRET.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "PORT",
      "service": "kodus-ai-api",
      "description": "Provide a value for PORT.",
      "secret": false,
      "strategy": "default",
      "default": "3001"
    },
    {
      "key": "API_URL",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "API_HOST",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_HOST.",
      "secret": false,
      "strategy": "default",
      "default": "0.0.0.0"
    },
    {
      "key": "API_PORT",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "3001"
    },
    {
      "key": "RUN_SEEDS",
      "service": "kodus-ai-api",
      "description": "Provide a value for RUN_SEEDS.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "API_NODE_ENV",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_NODE_ENV.",
      "secret": false,
      "strategy": "default",
      "default": "production"
    },
    {
      "key": "USE_LOCAL_DB",
      "service": "kodus-ai-api",
      "description": "Provide a value for USE_LOCAL_DB.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "API_LOG_LEVEL",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_LOG_LEVEL.",
      "secret": false,
      "strategy": "default",
      "default": "error"
    },
    {
      "key": "API_CLOUD_MODE",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_CLOUD_MODE.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "API_CRYPTO_KEY",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_CRYPTO_KEY.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "API_JWT_SECRET",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_JWT_SECRET.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "API_LOG_PRETTY",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_LOG_PRETTY.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "API_MG_DB_HOST",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_MG_DB_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MG_DB_PORT",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_MG_DB_PORT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_PG_DB_HOST",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_PG_DB_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "API_PG_DB_PORT",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_PG_DB_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "5432"
    },
    {
      "key": "RUN_MIGRATIONS",
      "service": "kodus-ai-api",
      "description": "Provide a value for RUN_MIGRATIONS.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "NEXTAUTH_SECRET",
      "service": "kodus-ai-api",
      "description": "Provide a value for NEXTAUTH_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_DATABASE_ENV",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_DATABASE_ENV.",
      "secret": false,
      "strategy": "default",
      "default": "development"
    },
    {
      "key": "API_FRONTEND_URL",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_FRONTEND_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "API_RABBITMQ_URI",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_RABBITMQ_URI.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "LANGFUSE_TRACING",
      "service": "kodus-ai-api",
      "description": "Provide a value for LANGFUSE_TRACING.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "SANDBOX_PROVIDER",
      "service": "kodus-ai-api",
      "description": "Provide a value for SANDBOX_PROVIDER.",
      "secret": false,
      "strategy": "default",
      "default": "auto"
    },
    {
      "key": "API_RATE_INTERVAL",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_RATE_INTERVAL.",
      "secret": false,
      "strategy": "default",
      "default": "1000"
    },
    {
      "key": "API_WEBHOOKS_PORT",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_WEBHOOKS_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "3332"
    },
    {
      "key": "LANGFUSE_BASE_URL",
      "service": "kodus-ai-api",
      "description": "Provide a value for LANGFUSE_BASE_URL.",
      "secret": false,
      "strategy": "default",
      "default": "https://cloud.langfuse.com"
    },
    {
      "key": "API_JWT_EXPIRES_IN",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_JWT_EXPIRES_IN.",
      "secret": false,
      "strategy": "default",
      "default": "365d"
    },
    {
      "key": "API_MG_DB_DATABASE",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_MG_DB_DATABASE.",
      "secret": false,
      "strategy": "default",
      "default": "kodus_db"
    },
    {
      "key": "API_MG_DB_PASSWORD",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_MG_DB_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MG_DB_USERNAME",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_MG_DB_USERNAME.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_PG_DB_DATABASE",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_PG_DB_DATABASE.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_PG_DB_PASSWORD",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_PG_DB_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_PG_DB_USERNAME",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_PG_DB_USERNAME.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "USE_LOCAL_RABBITMQ",
      "service": "kodus-ai-api",
      "description": "Provide a value for USE_LOCAL_RABBITMQ.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "API_OPEN_AI_API_KEY",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_OPEN_AI_API_KEY.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "API_SERVICE_AST_URL",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_SERVICE_AST_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "WEB_NEXTAUTH_SECRET",
      "service": "kodus-ai-api",
      "description": "Provide a value for WEB_NEXTAUTH_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_RABBITMQ_ENABLED",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_RABBITMQ_ENABLED.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "API_RATE_MAX_REQUEST",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_RATE_MAX_REQUEST.",
      "secret": false,
      "strategy": "default",
      "default": "1000"
    },
    {
      "key": "LANGFUSE_ENVIRONMENT",
      "service": "kodus-ai-api",
      "description": "Provide a value for LANGFUSE_ENVIRONMENT.",
      "secret": false,
      "strategy": "default",
      "default": "production"
    },
    {
      "key": "API_CRON_KODY_LEARNING",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_CRON_KODY_LEARNING.",
      "secret": false,
      "strategy": "default",
      "default": "0 0 * * 6"
    },
    {
      "key": "API_JWT_REFRESH_SECRET",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_JWT_REFRESH_SECRET.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "API_LLM_PROVIDER_MODEL",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_LLM_PROVIDER_MODEL.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "API_MCP_SERVER_ENABLED",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_MCP_SERVER_ENABLED.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "CODE_MANAGEMENT_SECRET",
      "service": "kodus-ai-api",
      "description": "Provide a value for CODE_MANAGEMENT_SECRET.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "API_AGENT_REVIEW_ENABLED",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_AGENT_REVIEW_ENABLED.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "API_DATABASE_DISABLE_SSL",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_DATABASE_DISABLE_SSL.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "API_KODUS_MCP_SERVER_URL",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_KODUS_MCP_SERVER_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "KODUS_TELEMETRY_DISABLED",
      "service": "kodus-ai-api",
      "description": "Provide a value for KODUS_TELEMETRY_DISABLED.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "API_OPENAI_FORCE_BASE_URL",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_OPENAI_FORCE_BASE_URL.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "GLOBAL_API_CONTAINER_NAME",
      "service": "kodus-ai-api",
      "description": "Provide a value for GLOBAL_API_CONTAINER_NAME.",
      "secret": false,
      "strategy": "default",
      "default": "kodus-api"
    },
    {
      "key": "API_ENABLE_CODE_REVIEW_AST",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_ENABLE_CODE_REVIEW_AST.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "API_JWT_REFRESH_EXPIRES_IN",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_JWT_REFRESH_EXPIRES_IN.",
      "secret": false,
      "strategy": "default",
      "default": "365d"
    },
    {
      "key": "API_KODUS_SERVICE_MCP_MANAGER",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_KODUS_SERVICE_MCP_MANAGER.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "CODE_MANAGEMENT_WEBHOOK_TOKEN",
      "service": "kodus-ai-api",
      "description": "Provide a value for CODE_MANAGEMENT_WEBHOOK_TOKEN.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "API_GITHUB_CODE_MANAGEMENT_WEBHOOK",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_GITHUB_CODE_MANAGEMENT_WEBHOOK.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "API_GITLAB_CODE_MANAGEMENT_WEBHOOK",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_GITLAB_CODE_MANAGEMENT_WEBHOOK.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "API_CRON_SYNC_CODE_REVIEW_REACTIONS",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_CRON_SYNC_CODE_REVIEW_REACTIONS.",
      "secret": false,
      "strategy": "default",
      "default": "0 0 * * *"
    },
    {
      "key": "API_FORGEJO_CODE_MANAGEMENT_WEBHOOK",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_FORGEJO_CODE_MANAGEMENT_WEBHOOK.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "API_CRON_CHECK_IF_PR_SHOULD_BE_APPROVED",
      "service": "kodus-ai-api",
      "description": "Provide a value for API_CRON_CHECK_IF_PR_SHOULD_BE_APPROVED.",
      "secret": false,
      "strategy": "default",
      "default": "*/2 * * * *"
    },
    {
      "key": "GLOBAL_BITBUCKET_CODE_MANAGEMENT_WEBHOOK",
      "service": "kodus-ai-api",
      "description": "Provide a value for GLOBAL_BITBUCKET_CODE_MANAGEMENT_WEBHOOK.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "GLOBAL_AZURE_REPOS_CODE_MANAGEMENT_WEBHOOK",
      "service": "kodus-ai-api",
      "description": "Provide a value for GLOBAL_AZURE_REPOS_CODE_MANAGEMENT_WEBHOOK.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "RABBITMQ_DEFAULT_PASS",
      "service": "kodus-rabbitmq",
      "description": "Provide a value for RABBITMQ_DEFAULT_PASS.",
      "secret": false,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "RABBITMQ_DEFAULT_USER",
      "service": "kodus-rabbitmq",
      "description": "Provide a value for RABBITMQ_DEFAULT_USER.",
      "secret": false,
      "strategy": "default",
      "default": "kodus"
    },
    {
      "key": "POSTGRES_DB",
      "service": "pgvector",
      "description": "Provide a value for POSTGRES_DB.",
      "secret": false,
      "strategy": "default",
      "default": "kodus_db"
    },
    {
      "key": "POSTGRES_USER",
      "service": "pgvector",
      "description": "Provide a value for POSTGRES_USER.",
      "secret": false,
      "strategy": "default",
      "default": "kodus"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "pgvector",
      "description": "Provide a value for POSTGRES_PASSWORD.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "API_HOST",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_PORT",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_PORT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "NODE_ENV",
      "service": "kodus-ai-worker",
      "description": "Provide a value for NODE_ENV.",
      "secret": false,
      "strategy": "default",
      "default": "production"
    },
    {
      "key": "RUN_SEEDS",
      "service": "kodus-ai-worker",
      "description": "Provide a value for RUN_SEEDS.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "API_E2B_KEY",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_E2B_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_EXA_KEY",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_EXA_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_NODE_ENV",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_NODE_ENV.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_LOG_LEVEL",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_LOG_LEVEL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_CLOUD_MODE",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_CLOUD_MODE.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_CRYPTO_KEY",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_CRYPTO_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_JWT_SECRET",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_JWT_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_LOG_PRETTY",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_LOG_PRETTY.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MG_DB_HOST",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_MG_DB_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MG_DB_PORT",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_MG_DB_PORT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_PG_DB_HOST",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_PG_DB_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_PG_DB_PORT",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_PG_DB_PORT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "RUN_MIGRATIONS",
      "service": "kodus-ai-worker",
      "description": "Provide a value for RUN_MIGRATIONS.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "NEXTAUTH_SECRET",
      "service": "kodus-ai-worker",
      "description": "Provide a value for NEXTAUTH_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_DATABASE_ENV",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_DATABASE_ENV.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_RABBITMQ_URI",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_RABBITMQ_URI.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "LANGFUSE_TRACING",
      "service": "kodus-ai-worker",
      "description": "Provide a value for LANGFUSE_TRACING.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "SANDBOX_PROVIDER",
      "service": "kodus-ai-worker",
      "description": "Provide a value for SANDBOX_PROVIDER.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_RATE_INTERVAL",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_RATE_INTERVAL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_WEBHOOKS_PORT",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_WEBHOOKS_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "3332"
    },
    {
      "key": "LANGFUSE_BASE_URL",
      "service": "kodus-ai-worker",
      "description": "Provide a value for LANGFUSE_BASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_JWT_EXPIRES_IN",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_JWT_EXPIRES_IN.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MG_DB_DATABASE",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_MG_DB_DATABASE.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MG_DB_PASSWORD",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_MG_DB_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MG_DB_USERNAME",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_MG_DB_USERNAME.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_PG_DB_DATABASE",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_PG_DB_DATABASE.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_PG_DB_PASSWORD",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_PG_DB_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_PG_DB_USERNAME",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_PG_DB_USERNAME.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_OPEN_AI_API_KEY",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_OPEN_AI_API_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_SERVICE_AST_URL",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_SERVICE_AST_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "LANGFUSE_PUBLIC_KEY",
      "service": "kodus-ai-worker",
      "description": "Provide a value for LANGFUSE_PUBLIC_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "LANGFUSE_SECRET_KEY",
      "service": "kodus-ai-worker",
      "description": "Provide a value for LANGFUSE_SECRET_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "WEB_NEXTAUTH_SECRET",
      "service": "kodus-ai-worker",
      "description": "Provide a value for WEB_NEXTAUTH_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MORPHLLM_API_KEY",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_MORPHLLM_API_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_RABBITMQ_ENABLED",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_RABBITMQ_ENABLED.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_RATE_MAX_REQUEST",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_RATE_MAX_REQUEST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "LANGFUSE_ENVIRONMENT",
      "service": "kodus-ai-worker",
      "description": "Provide a value for LANGFUSE_ENVIRONMENT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_JWT_REFRESH_SECRET",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_JWT_REFRESH_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_LLM_PROVIDER_MODEL",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_LLM_PROVIDER_MODEL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MCP_SERVER_ENABLED",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_MCP_SERVER_ENABLED.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "CODE_MANAGEMENT_SECRET",
      "service": "kodus-ai-worker",
      "description": "Provide a value for CODE_MANAGEMENT_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_AGENT_REVIEW_ENABLED",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_AGENT_REVIEW_ENABLED.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_DATABASE_DISABLE_SSL",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_DATABASE_DISABLE_SSL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_KODUS_MCP_SERVER_URL",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_KODUS_MCP_SERVER_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "KODUS_TELEMETRY_DISABLED",
      "service": "kodus-ai-worker",
      "description": "Provide a value for KODUS_TELEMETRY_DISABLED.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_OPENAI_FORCE_BASE_URL",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_OPENAI_FORCE_BASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_ENABLE_CODE_REVIEW_AST",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_ENABLE_CODE_REVIEW_AST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_JWT_REFRESH_EXPIRES_IN",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_JWT_REFRESH_EXPIRES_IN.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_MG_DB_PRODUCTION_CONFIG",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_MG_DB_PRODUCTION_CONFIG.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "API_KODUS_SERVICE_MCP_MANAGER",
      "service": "kodus-ai-worker",
      "description": "Provide a value for API_KODUS_SERVICE_MCP_MANAGER.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "CODE_MANAGEMENT_WEBHOOK_TOKEN",
      "service": "kodus-ai-worker",
      "description": "Provide a value for CODE_MANAGEMENT_WEBHOOK_TOKEN.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "kodus-selfhosted"
      }
    },
    "cli": "railway deploy --template kodus-selfhosted",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "49da6c89-94b0-4f4b-9c4d-85dcf15fc746",
            "serializedConfig": {
              "buckets": {},
              "services": {
                "22af794a-d6c9-4c28-b4c3-a10925bd177e": {
                  "icon": null,
                  "name": "kodus-web",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "ghcr.io/kodustech/kodus-ai-web"
                  },
                  "variables": {
                    "NEXTAUTH_URL": {
                      "isOptional": false,
                      "defaultValue": "https://${{RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "WEB_NODE_ENV": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "self-hosted"
                    },
                    "WEB_PORT_API": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "443"
                    },
                    "NEXTAUTH_SECRET": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "${{kodus-ai-web.WEB_NEXTAUTH_SECRET}}"
                    },
                    "WEB_HOSTNAME_API": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "WEB_NEXTAUTH_SECRET": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "{{WEB_NEXTAUTH_SECRET}}"
                    },
                    "WEB_SUPPORT_DOCS_URL": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "https://docs.kodus.io/"
                    },
                    "WEB_SUPPORT_DISCORD_INVITE_URL": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "https://discord.gg/TFZBRk9fT6"
                    },
                    "WEB_SUPPORT_TALK_TO_FOUNDER_URL": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "https://cal.com/gabrielmalinosqui/30min"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>": {}
                    }
                  }
                },
                "422df6b3-a8e2-41b5-855b-c4f27a300a7d": {
                  "icon": null,
                  "name": "kodus-ai-webhook",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "ghcr.io/kodustech/kodus-ai-webhook"
                  },
                  "variables": {
                    "PORT": {
                      "defaultValue": "3332"
                    },
                    "API_HOST": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_HOST}}"
                    },
                    "API_PORT": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_PORT}}"
                    },
                    "NODE_ENV": {
                      "defaultValue": "production"
                    },
                    "RUN_SEEDS": {
                      "isOptional": false,
                      "defaultValue": "false"
                    },
                    "API_E2B_KEY": {
                      "defaultValue": "${{kodus-ai-api.API_E2B_KEY}}"
                    },
                    "API_EXA_KEY": {
                      "defaultValue": "${{kodus-ai-api.API_EXA_KEY}}"
                    },
                    "API_NODE_ENV": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_NODE_ENV}}"
                    },
                    "API_LOG_LEVEL": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_LOG_LEVEL}}"
                    },
                    "API_CLOUD_MODE": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_CLOUD_MODE}}"
                    },
                    "API_CRYPTO_KEY": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_CRYPTO_KEY}}"
                    },
                    "API_JWT_SECRET": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_JWT_SECRET}}"
                    },
                    "API_LOG_PRETTY": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_LOG_PRETTY}}"
                    },
                    "API_MG_DB_HOST": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_MG_DB_HOST}}"
                    },
                    "API_MG_DB_PORT": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_MG_DB_PORT}}"
                    },
                    "API_PG_DB_HOST": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_PG_DB_HOST}}"
                    },
                    "API_PG_DB_PORT": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_PG_DB_PORT}}"
                    },
                    "RUN_MIGRATIONS": {
                      "isOptional": false,
                      "defaultValue": "false"
                    },
                    "NEXTAUTH_SECRET": {
                      "defaultValue": "${{kodus-ai-api.NEXTAUTH_SECRET}}"
                    },
                    "API_DATABASE_ENV": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_DATABASE_ENV}}"
                    },
                    "API_RABBITMQ_URI": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_RABBITMQ_URI}}"
                    },
                    "LANGFUSE_TRACING": {
                      "defaultValue": "${{kodus-ai-api.LANGFUSE_TRACING}}"
                    },
                    "SANDBOX_PROVIDER": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.SANDBOX_PROVIDER}}"
                    },
                    "API_RATE_INTERVAL": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_RATE_INTERVAL}}"
                    },
                    "API_WEBHOOKS_PORT": {
                      "isOptional": false,
                      "defaultValue": "3332"
                    },
                    "LANGFUSE_BASE_URL": {
                      "defaultValue": "${{kodus-ai-api.LANGFUSE_BASE_URL}}"
                    },
                    "API_JWT_EXPIRES_IN": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_JWT_EXPIRES_IN}}"
                    },
                    "API_MG_DB_DATABASE": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_MG_DB_DATABASE}}"
                    },
                    "API_MG_DB_PASSWORD": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_MG_DB_PASSWORD}}"
                    },
                    "API_MG_DB_USERNAME": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_MG_DB_USERNAME}}"
                    },
                    "API_PG_DB_DATABASE": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_PG_DB_DATABASE}}"
                    },
                    "API_PG_DB_PASSWORD": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_PG_DB_PASSWORD}}"
                    },
                    "API_PG_DB_USERNAME": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_PG_DB_USERNAME}}"
                    },
                    "API_OPEN_AI_API_KEY": {
                      "defaultValue": "${{kodus-ai-api.API_OPEN_AI_API_KEY}}"
                    },
                    "API_SERVICE_AST_URL": {
                      "defaultValue": "${{kodus-ai-api.API_SERVICE_AST_URL}}"
                    },
                    "LANGFUSE_PUBLIC_KEY": {
                      "defaultValue": "${{kodus-ai-api.LANGFUSE_PUBLIC_KEY}}"
                    },
                    "LANGFUSE_SECRET_KEY": {
                      "defaultValue": "${{kodus-ai-api.LANGFUSE_SECRET_KEY}}"
                    },
                    "WEB_NEXTAUTH_SECRET": {
                      "defaultValue": "${{kodus-ai-api.WEB_NEXTAUTH_SECRET}}"
                    },
                    "API_MORPHLLM_API_KEY": {
                      "defaultValue": "${{kodus-ai-api.API_MORPHLLM_API_KEY}}"
                    },
                    "API_RABBITMQ_ENABLED": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_RABBITMQ_ENABLED}}"
                    },
                    "API_RATE_MAX_REQUEST": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_RATE_MAX_REQUEST}}"
                    },
                    "LANGFUSE_ENVIRONMENT": {
                      "defaultValue": "${{kodus-ai-api.LANGFUSE_ENVIRONMENT}}"
                    },
                    "API_JWT_REFRESH_SECRET": {
                      "defaultValue": "${{kodus-ai-api.API_JWT_REFRESH_SECRET}}"
                    },
                    "API_LLM_PROVIDER_MODEL": {
                      "defaultValue": "${{kodus-ai-api.API_LLM_PROVIDER_MODEL}}"
                    },
                    "API_MCP_SERVER_ENABLED": {
                      "defaultValue": "${{kodus-ai-api.API_MCP_SERVER_ENABLED}}"
                    },
                    "CODE_MANAGEMENT_SECRET": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.CODE_MANAGEMENT_SECRET}}"
                    },
                    "API_AGENT_REVIEW_ENABLED": {
                      "defaultValue": "${{kodus-ai-api.API_AGENT_REVIEW_ENABLED}}"
                    },
                    "API_DATABASE_DISABLE_SSL": {
                      "defaultValue": "${{kodus-ai-api.API_DATABASE_DISABLE_SSL}}"
                    },
                    "API_KODUS_MCP_SERVER_URL": {
                      "defaultValue": "${{kodus-ai-api.API_KODUS_MCP_SERVER_URL}}"
                    },
                    "KODUS_TELEMETRY_DISABLED": {
                      "defaultValue": "${{kodus-ai-api.KODUS_TELEMETRY_DISABLED}}"
                    },
                    "API_OPENAI_FORCE_BASE_URL": {
                      "defaultValue": "${{kodus-ai-api.API_OPENAI_FORCE_BASE_URL}}"
                    },
                    "API_ENABLE_CODE_REVIEW_AST": {
                      "defaultValue": "${{kodus-ai-api.API_ENABLE_CODE_REVIEW_AST}}"
                    },
                    "API_JWT_REFRESH_EXPIRES_IN": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_JWT_REFRESH_EXPIRES_IN}}"
                    },
                    "API_MG_DB_PRODUCTION_CONFIG": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_MG_DB_PRODUCTION_CONFIG}}"
                    },
                    "API_KODUS_SERVICE_MCP_MANAGER": {
                      "defaultValue": "${{kodus-ai-api.API_KODUS_SERVICE_MCP_MANAGER}}"
                    },
                    "CODE_MANAGEMENT_WEBHOOK_TOKEN": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.CODE_MANAGEMENT_WEBHOOK_TOKEN}}"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>": {}
                    }
                  }
                },
                "65d2e85d-29ed-40fb-a03f-25b4aeb34773": {
                  "icon": "https://devicons.railway.app/i/mongodb.svg",
                  "name": "MongoDB",
                  "deploy": {
                    "startCommand": "docker-entrypoint.sh mongod --ipv6 --bind_ip ::,0.0.0.0 --setParameter diagnosticDataCollectionEnabled=false",
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "mongo:8.0"
                  },
                  "variables": {
                    "MONGOHOST": {
                      "isOptional": false,
                      "defaultValue": "${{RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "MONGOPORT": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "27017"
                    },
                    "MONGOUSER": {
                      "isOptional": false,
                      "defaultValue": "${{MONGO_INITDB_ROOT_USERNAME}}"
                    },
                    "MONGO_URL": {
                      "isOptional": false,
                      "defaultValue": "mongodb://${{MONGO_INITDB_ROOT_USERNAME}}:${{MONGO_INITDB_ROOT_PASSWORD}}@${{RAILWAY_PRIVATE_DOMAIN}}:27017"
                    },
                    "MONGOPASSWORD": {
                      "isOptional": false,
                      "defaultValue": "${{MONGO_INITDB_ROOT_PASSWORD}}"
                    },
                    "MONGO_PUBLIC_URL": {
                      "isOptional": false,
                      "defaultValue": "mongodb://${{MONGO_INITDB_ROOT_USERNAME}}:${{MONGO_INITDB_ROOT_PASSWORD}}@${{RAILWAY_TCP_PROXY_DOMAIN}}:${{RAILWAY_TCP_PROXY_PORT}}"
                    },
                    "MONGO_INITDB_ROOT_PASSWORD": {
                      "isOptional": false,
                      "defaultValue": "{{MONGO_INITDB_ROOT_PASSWORD}}"
                    },
                    "MONGO_INITDB_ROOT_USERNAME": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "kodus"
                    }
                  },
                  "volumeMounts": {
                    "65d2e85d-29ed-40fb-a03f-25b4aeb34773": {
                      "mountPath": "/data/db"
                    }
                  }
                },
                "78a33a30-0f5c-4a26-b0a0-c1fb88e99a38": {
                  "name": "kodus-mcp-manager",
                  "source": {
                    "image": "ghcr.io/kodustech/kodus-mcp-manager"
                  },
                  "variables": {
                    "API_PG_DB_HOST": {
                      "defaultValue": "${{pgvector.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "API_PG_DB_PORT": {
                      "defaultValue": "5432"
                    },
                    "CONTAINER_NAME": {
                      "defaultValue": "kodus-service-mcp-manager"
                    },
                    "API_PG_DB_DATABASE": {
                      "defaultValue": "kodus_db"
                    },
                    "API_PG_DB_PASSWORD": {
                      "defaultValue": "${{pgvector.POSTGRES_PASSWORD}}"
                    },
                    "API_PG_DB_USERNAME": {
                      "defaultValue": "${{pgvector.POSTGRES_USER}}"
                    },
                    "API_MCP_MANAGER_PORT": {
                      "defaultValue": "3101"
                    },
                    "API_MCP_MANAGER_NODE_ENV": {
                      "defaultValue": "production"
                    },
                    "API_MCP_MANAGER_LOG_LEVEL": {
                      "defaultValue": "info"
                    },
                    "API_MCP_MANAGER_JWT_SECRET": {
                      "defaultValue": "{{API_MCP_MANAGER_JWT_SECRET}}"
                    },
                    "API_MCP_MANAGER_CORS_ORIGINS": {
                      "defaultValue": "https://${{kodus-ai-web.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "API_MCP_MANAGER_DATABASE_ENV": {
                      "defaultValue": "development"
                    },
                    "API_MCP_MANAGER_PG_DB_SCHEMA": {
                      "defaultValue": "mcp_manager"
                    },
                    "API_MCP_MANAGER_REDIRECT_URI": {
                      "defaultValue": "https://${{kodus-ai-web.RAILWAY_PUBLIC_DOMAIN}}/setup/mcp/oauth"
                    },
                    "API_MCP_MANAGER_MCP_PROVIDERS": {
                      "defaultValue": "composio,kodusmcp,custom"
                    },
                    "API_MCP_MANAGER_COMPOSIO_API_KEY": {
                      "isOptional": true,
                      "description": "",
                      "defaultValue": ""
                    },
                    "API_MCP_MANAGER_COMPOSIO_BASE_URL": {
                      "defaultValue": "https://backend.composio.dev/api/v3"
                    },
                    "API_MCP_MANAGER_ENCRYPTION_SECRET": {
                      "defaultValue": "{{API_MCP_MANAGER_ENCRYPTION_SECRET}}"
                    }
                  }
                },
                "82342a18-65a6-4b6b-93b7-cdc973c9d3e7": {
                  "icon": null,
                  "name": "kodus-ai-api",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "ghcr.io/kodustech/kodus-ai-api"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "defaultValue": "3001"
                    },
                    "API_URL": {
                      "isOptional": false,
                      "defaultValue": "https://${{kodus-ai-api.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "API_HOST": {
                      "isOptional": false,
                      "defaultValue": "0.0.0.0"
                    },
                    "API_PORT": {
                      "isOptional": false,
                      "defaultValue": "3001"
                    },
                    "RUN_SEEDS": {
                      "isOptional": false,
                      "defaultValue": "true"
                    },
                    "API_E2B_KEY": {
                      "isOptional": true,
                      "description": "",
                      "defaultValue": ""
                    },
                    "API_EXA_KEY": {
                      "isOptional": true,
                      "description": "",
                      "defaultValue": ""
                    },
                    "API_NODE_ENV": {
                      "isOptional": false,
                      "defaultValue": "production"
                    },
                    "USE_LOCAL_DB": {
                      "isOptional": false,
                      "defaultValue": "true"
                    },
                    "API_LOG_LEVEL": {
                      "isOptional": false,
                      "defaultValue": "error"
                    },
                    "API_CLOUD_MODE": {
                      "isOptional": false,
                      "defaultValue": "false"
                    },
                    "API_CRYPTO_KEY": {
                      "isOptional": false,
                      "defaultValue": "{{API_CRYPTO_KEY}}"
                    },
                    "API_JWT_SECRET": {
                      "isOptional": false,
                      "defaultValue": "{{API_JWT_SECRET}}"
                    },
                    "API_LOG_PRETTY": {
                      "isOptional": false,
                      "defaultValue": "false"
                    },
                    "API_MG_DB_HOST": {
                      "isOptional": false,
                      "defaultValue": "${{MongoDB.MONGOHOST}}"
                    },
                    "API_MG_DB_PORT": {
                      "isOptional": false,
                      "defaultValue": "${{MongoDB.MONGOPORT}}"
                    },
                    "API_PG_DB_HOST": {
                      "isOptional": false,
                      "defaultValue": "${{pgvector.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "API_PG_DB_PORT": {
                      "isOptional": false,
                      "defaultValue": "5432"
                    },
                    "RUN_MIGRATIONS": {
                      "isOptional": false,
                      "defaultValue": "true"
                    },
                    "NEXTAUTH_SECRET": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-web.WEB_NEXTAUTH_SECRET}}"
                    },
                    "API_DATABASE_ENV": {
                      "isOptional": false,
                      "defaultValue": "development"
                    },
                    "API_FRONTEND_URL": {
                      "isOptional": false,
                      "defaultValue": "https://${{kodus-ai-web.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "API_RABBITMQ_URI": {
                      "isOptional": false,
                      "defaultValue": "amqp://${{kodus-rabbitmq.RABBITMQ_DEFAULT_USER}}:${{kodus-rabbitmq.RABBITMQ_DEFAULT_PASS}}@${{kodus-rabbitmq.RAILWAY_PRIVATE_DOMAIN}}:5672/kodus-ai?heartbeat=60"
                    },
                    "LANGFUSE_TRACING": {
                      "isOptional": true,
                      "description": "",
                      "defaultValue": "false"
                    },
                    "SANDBOX_PROVIDER": {
                      "isOptional": false,
                      "defaultValue": "auto"
                    },
                    "API_RATE_INTERVAL": {
                      "isOptional": false,
                      "defaultValue": "1000"
                    },
                    "API_WEBHOOKS_PORT": {
                      "isOptional": false,
                      "defaultValue": "3332"
                    },
                    "LANGFUSE_BASE_URL": {
                      "isOptional": true,
                      "description": "",
                      "defaultValue": "https://cloud.langfuse.com"
                    },
                    "API_JWT_EXPIRES_IN": {
                      "isOptional": false,
                      "defaultValue": "365d"
                    },
                    "API_MG_DB_DATABASE": {
                      "isOptional": false,
                      "defaultValue": "kodus_db"
                    },
                    "API_MG_DB_PASSWORD": {
                      "isOptional": false,
                      "defaultValue": "${{MongoDB.MONGOPASSWORD}}"
                    },
                    "API_MG_DB_USERNAME": {
                      "isOptional": false,
                      "defaultValue": "${{MongoDB.MONGOUSER}}"
                    },
                    "API_PG_DB_DATABASE": {
                      "isOptional": false,
                      "defaultValue": "${{pgvector.POSTGRES_DB}}"
                    },
                    "API_PG_DB_PASSWORD": {
                      "isOptional": false,
                      "defaultValue": "${{pgvector.POSTGRES_PASSWORD}}"
                    },
                    "API_PG_DB_USERNAME": {
                      "isOptional": false,
                      "defaultValue": "${{pgvector.POSTGRES_USER}}"
                    },
                    "USE_LOCAL_RABBITMQ": {
                      "isOptional": false,
                      "defaultValue": "true"
                    },
                    "API_OPEN_AI_API_KEY": {
                      "isOptional": false,
                      "defaultValue": "{{API_OPEN_AI_API_KEY}}"
                    },
                    "API_SERVICE_AST_URL": {
                      "defaultValue": "http://${{kodus-service-ast.RAILWAY_PRIVATE_DOMAIN}}:3002"
                    },
                    "LANGFUSE_PUBLIC_KEY": {
                      "isOptional": true,
                      "description": "",
                      "defaultValue": ""
                    },
                    "LANGFUSE_SECRET_KEY": {
                      "isOptional": true,
                      "description": "",
                      "defaultValue": ""
                    },
                    "WEB_NEXTAUTH_SECRET": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-web.WEB_NEXTAUTH_SECRET}}"
                    },
                    "API_MORPHLLM_API_KEY": {
                      "isOptional": true,
                      "description": "",
                      "defaultValue": ""
                    },
                    "API_RABBITMQ_ENABLED": {
                      "isOptional": false,
                      "defaultValue": "true"
                    },
                    "API_RATE_MAX_REQUEST": {
                      "isOptional": false,
                      "defaultValue": "1000"
                    },
                    "LANGFUSE_ENVIRONMENT": {
                      "isOptional": true,
                      "description": "",
                      "defaultValue": "production"
                    },
                    "API_CRON_KODY_LEARNING": {
                      "isOptional": false,
                      "defaultValue": "0 0 * * 6"
                    },
                    "API_JWT_REFRESH_SECRET": {
                      "isOptional": false,
                      "defaultValue": "{{API_JWT_REFRESH_SECRET}}"
                    },
                    "API_LLM_PROVIDER_MODEL": {
                      "isOptional": false,
                      "defaultValue": "{{API_LLM_PROVIDER_MODEL}}"
                    },
                    "API_MCP_SERVER_ENABLED": {
                      "defaultValue": "true"
                    },
                    "CODE_MANAGEMENT_SECRET": {
                      "isOptional": false,
                      "defaultValue": "{{CODE_MANAGEMENT_SECRET}}"
                    },
                    "API_AGENT_REVIEW_ENABLED": {
                      "defaultValue": "true"
                    },
                    "API_DATABASE_DISABLE_SSL": {
                      "isOptional": false,
                      "defaultValue": "true"
                    },
                    "API_KODUS_MCP_SERVER_URL": {
                      "defaultValue": "http://${{kodus-ai-api.RAILWAY_PRIVATE_DOMAIN}}:3001/mcp"
                    },
                    "KODUS_TELEMETRY_DISABLED": {
                      "defaultValue": "false"
                    },
                    "API_OPENAI_FORCE_BASE_URL": {
                      "isOptional": false,
                      "defaultValue": "{{API_OPENAI_FORCE_BASE_URL}}"
                    },
                    "GLOBAL_API_CONTAINER_NAME": {
                      "isOptional": false,
                      "defaultValue": "kodus-api"
                    },
                    "API_ENABLE_CODE_REVIEW_AST": {
                      "defaultValue": "true"
                    },
                    "API_JWT_REFRESH_EXPIRES_IN": {
                      "isOptional": false,
                      "defaultValue": "365d"
                    },
                    "API_KODUS_SERVICE_MCP_MANAGER": {
                      "defaultValue": "http://${{kodus-mcp-manager.RAILWAY_PRIVATE_DOMAIN}}:3101"
                    },
                    "CODE_MANAGEMENT_WEBHOOK_TOKEN": {
                      "isOptional": false,
                      "defaultValue": "{{CODE_MANAGEMENT_WEBHOOK_TOKEN}}"
                    },
                    "API_GITHUB_CODE_MANAGEMENT_WEBHOOK": {
                      "isOptional": false,
                      "defaultValue": "https://${{kodus-ai-webhook.RAILWAY_PUBLIC_DOMAIN}}/github/webhook"
                    },
                    "API_GITLAB_CODE_MANAGEMENT_WEBHOOK": {
                      "isOptional": false,
                      "defaultValue": "https://${{kodus-ai-webhook.RAILWAY_PUBLIC_DOMAIN}}/gitlab/webhook"
                    },
                    "API_CRON_SYNC_CODE_REVIEW_REACTIONS": {
                      "isOptional": false,
                      "defaultValue": "0 0 * * *"
                    },
                    "API_FORGEJO_CODE_MANAGEMENT_WEBHOOK": {
                      "isOptional": false,
                      "defaultValue": "https://${{kodus-ai-webhook.RAILWAY_PUBLIC_DOMAIN}}/forgejo/webhook"
                    },
                    "API_CRON_CHECK_IF_PR_SHOULD_BE_APPROVED": {
                      "isOptional": false,
                      "defaultValue": "*/2 * * * *"
                    },
                    "GLOBAL_BITBUCKET_CODE_MANAGEMENT_WEBHOOK": {
                      "isOptional": false,
                      "defaultValue": "https://${{kodus-ai-webhook.RAILWAY_PUBLIC_DOMAIN}}/bitbucket/webhook"
                    },
                    "GLOBAL_AZURE_REPOS_CODE_MANAGEMENT_WEBHOOK": {
                      "isOptional": false,
                      "defaultValue": "https://${{kodus-ai-webhook.RAILWAY_PUBLIC_DOMAIN}}/azure-repos/webhook"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>": {}
                    }
                  }
                },
                "85c8cefb-2e8b-42a7-b819-ab5707264392": {
                  "icon": null,
                  "name": "kodus-rabbitmq",
                  "deploy": {
                    "startCommand": "/usr/local/bin/init-definitions.sh",
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "ghcr.io/kodustech/kodus-rabbitmq"
                  },
                  "variables": {
                    "RABBITMQ_DEFAULT_PASS": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "{{RABBITMQ_DEFAULT_PASS}}"
                    },
                    "RABBITMQ_DEFAULT_USER": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "kodus"
                    }
                  }
                },
                "cccb0d1a-bc91-4ff0-9ddc-3b659a341836": {
                  "icon": null,
                  "name": "pgvector",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "repo": "https://github.com/kodustech/kodus-installer",
                    "rootDirectory": "/docker/pgvector"
                  },
                  "variables": {
                    "POSTGRES_DB": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "kodus_db"
                    },
                    "POSTGRES_USER": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "kodus"
                    },
                    "POSTGRES_PASSWORD": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "{{POSTGRES_PASSWORD}}"
                    }
                  }
                },
                "e62d9259-966e-49f3-a0de-ddf5d1ce5366": {
                  "icon": null,
                  "name": "kodus-ai-worker",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "ghcr.io/kodustech/kodus-ai-worker"
                  },
                  "variables": {
                    "API_HOST": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_HOST}}"
                    },
                    "API_PORT": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_PORT}}"
                    },
                    "NODE_ENV": {
                      "defaultValue": "production"
                    },
                    "RUN_SEEDS": {
                      "isOptional": false,
                      "defaultValue": "false"
                    },
                    "API_E2B_KEY": {
                      "defaultValue": "${{kodus-ai-api.API_E2B_KEY}}"
                    },
                    "API_EXA_KEY": {
                      "defaultValue": "${{kodus-ai-api.API_EXA_KEY}}"
                    },
                    "API_NODE_ENV": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_NODE_ENV}}"
                    },
                    "API_LOG_LEVEL": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_LOG_LEVEL}}"
                    },
                    "API_CLOUD_MODE": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_CLOUD_MODE}}"
                    },
                    "API_CRYPTO_KEY": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_CRYPTO_KEY}}"
                    },
                    "API_JWT_SECRET": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_JWT_SECRET}}"
                    },
                    "API_LOG_PRETTY": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_LOG_PRETTY}}"
                    },
                    "API_MG_DB_HOST": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_MG_DB_HOST}}"
                    },
                    "API_MG_DB_PORT": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_MG_DB_PORT}}"
                    },
                    "API_PG_DB_HOST": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_PG_DB_HOST}}"
                    },
                    "API_PG_DB_PORT": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_PG_DB_PORT}}"
                    },
                    "RUN_MIGRATIONS": {
                      "isOptional": false,
                      "defaultValue": "false"
                    },
                    "NEXTAUTH_SECRET": {
                      "defaultValue": "${{kodus-ai-api.NEXTAUTH_SECRET}}"
                    },
                    "API_DATABASE_ENV": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_DATABASE_ENV}}"
                    },
                    "API_RABBITMQ_URI": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_RABBITMQ_URI}}"
                    },
                    "LANGFUSE_TRACING": {
                      "defaultValue": "${{kodus-ai-api.LANGFUSE_TRACING}}"
                    },
                    "SANDBOX_PROVIDER": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.SANDBOX_PROVIDER}}"
                    },
                    "API_RATE_INTERVAL": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_RATE_INTERVAL}}"
                    },
                    "API_WEBHOOKS_PORT": {
                      "isOptional": false,
                      "defaultValue": "3332"
                    },
                    "LANGFUSE_BASE_URL": {
                      "defaultValue": "${{kodus-ai-api.LANGFUSE_BASE_URL}}"
                    },
                    "API_JWT_EXPIRES_IN": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_JWT_EXPIRES_IN}}"
                    },
                    "API_MG_DB_DATABASE": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_MG_DB_DATABASE}}"
                    },
                    "API_MG_DB_PASSWORD": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_MG_DB_PASSWORD}}"
                    },
                    "API_MG_DB_USERNAME": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_MG_DB_USERNAME}}"
                    },
                    "API_PG_DB_DATABASE": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_PG_DB_DATABASE}}"
                    },
                    "API_PG_DB_PASSWORD": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_PG_DB_PASSWORD}}"
                    },
                    "API_PG_DB_USERNAME": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_PG_DB_USERNAME}}"
                    },
                    "API_OPEN_AI_API_KEY": {
                      "defaultValue": "${{kodus-ai-api.API_OPEN_AI_API_KEY}}"
                    },
                    "API_SERVICE_AST_URL": {
                      "defaultValue": "${{kodus-ai-api.API_SERVICE_AST_URL}}"
                    },
                    "LANGFUSE_PUBLIC_KEY": {
                      "defaultValue": "${{kodus-ai-api.LANGFUSE_PUBLIC_KEY}}"
                    },
                    "LANGFUSE_SECRET_KEY": {
                      "defaultValue": "${{kodus-ai-api.LANGFUSE_SECRET_KEY}}"
                    },
                    "WEB_NEXTAUTH_SECRET": {
                      "defaultValue": "${{kodus-ai-api.WEB_NEXTAUTH_SECRET}}"
                    },
                    "API_MORPHLLM_API_KEY": {
                      "defaultValue": "${{kodus-ai-api.API_MORPHLLM_API_KEY}}"
                    },
                    "API_RABBITMQ_ENABLED": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_RABBITMQ_ENABLED}}"
                    },
                    "API_RATE_MAX_REQUEST": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_RATE_MAX_REQUEST}}"
                    },
                    "LANGFUSE_ENVIRONMENT": {
                      "defaultValue": "${{kodus-ai-api.LANGFUSE_ENVIRONMENT}}"
                    },
                    "API_JWT_REFRESH_SECRET": {
                      "defaultValue": "${{kodus-ai-api.API_JWT_REFRESH_SECRET}}"
                    },
                    "API_LLM_PROVIDER_MODEL": {
                      "defaultValue": "${{kodus-ai-api.API_LLM_PROVIDER_MODEL}}"
                    },
                    "API_MCP_SERVER_ENABLED": {
                      "defaultValue": "${{kodus-ai-api.API_MCP_SERVER_ENABLED}}"
                    },
                    "CODE_MANAGEMENT_SECRET": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.CODE_MANAGEMENT_SECRET}}"
                    },
                    "API_AGENT_REVIEW_ENABLED": {
                      "defaultValue": "${{kodus-ai-api.API_AGENT_REVIEW_ENABLED}}"
                    },
                    "API_DATABASE_DISABLE_SSL": {
                      "defaultValue": "${{kodus-ai-api.API_DATABASE_DISABLE_SSL}}"
                    },
                    "API_KODUS_MCP_SERVER_URL": {
                      "defaultValue": "${{kodus-ai-api.API_KODUS_MCP_SERVER_URL}}"
                    },
                    "KODUS_TELEMETRY_DISABLED": {
                      "defaultValue": "${{kodus-ai-api.KODUS_TELEMETRY_DISABLED}}"
                    },
                    "API_OPENAI_FORCE_BASE_URL": {
                      "defaultValue": "${{kodus-ai-api.API_OPENAI_FORCE_BASE_URL}}"
                    },
                    "API_ENABLE_CODE_REVIEW_AST": {
                      "defaultValue": "${{kodus-ai-api.API_ENABLE_CODE_REVIEW_AST}}"
                    },
                    "API_JWT_REFRESH_EXPIRES_IN": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_JWT_REFRESH_EXPIRES_IN}}"
                    },
                    "API_MG_DB_PRODUCTION_CONFIG": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.API_MG_DB_PRODUCTION_CONFIG}}"
                    },
                    "API_KODUS_SERVICE_MCP_MANAGER": {
                      "defaultValue": "${{kodus-ai-api.API_KODUS_SERVICE_MCP_MANAGER}}"
                    },
                    "CODE_MANAGEMENT_WEBHOOK_TOKEN": {
                      "isOptional": false,
                      "defaultValue": "${{kodus-ai-api.CODE_MANAGEMENT_WEBHOOK_TOKEN}}"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 8,
    "needs_volume": true
  },
  "generated_at": "2026-09-20T10:14:37.339Z",
  "generator_version": "0.1.0"
}
