{
  "manifest_version": "1.0.0",
  "template": {
    "id": "5e532341-eae3-4f23-a606-ec8340f07e32",
    "slug": "kortix-suna-ai",
    "name": "Kortix SUNA AI",
    "description": "Deploy and Host Kortix SUNA AI with Railway",
    "url": "https://railway.com/deploy/kortix-suna-ai",
    "upstream": {
      "repo_url": "https://github.com/kaviarahul123/suna-frontend"
    }
  },
  "status": "unvalidated",
  "validated_at": null,
  "success_rate_30d": null,
  "services": [
    {
      "name": "suna-frontend",
      "source": {
        "repo": "https://github.com/kaviarahul123/suna-frontend"
      },
      "needs_volume": false,
      "http": true
    },
    {
      "name": "suna-backend",
      "source": {
        "repo": "https://github.com/iqbalexperience/suna-backend"
      },
      "needs_volume": false,
      "http": true
    }
  ],
  "required_inputs": [
    {
      "key": "NEXT_PUBLIC_URL",
      "service": "suna-frontend",
      "description": "Provide a value for NEXT_PUBLIC_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "NEXT_PUBLIC_ENV_MODE",
      "service": "suna-frontend",
      "description": "Provide a value for NEXT_PUBLIC_ENV_MODE.",
      "secret": false,
      "strategy": "default",
      "default": "PRODUCTION"
    },
    {
      "key": "NEXT_PUBLIC_BACKEND_URL",
      "service": "suna-frontend",
      "description": "Public url of backend",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "NEXT_PUBLIC_SUPABASE_URL",
      "service": "suna-frontend",
      "description": "RESTful endpoint for querying and managing your supabase database. Project Setting > Data Api",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "NEXT_PUBLIC_SUPABASE_ANON_KEY",
      "service": "suna-frontend",
      "description": "ANON key of supabase. Project Setting > Api Keys",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "ENV_MODE",
      "service": "suna-backend",
      "description": "Provide a value for ENV_MODE.",
      "secret": false,
      "strategy": "default",
      "default": "local"
    },
    {
      "key": "QSTASH_URL",
      "service": "suna-backend",
      "description": "Provide a value for QSTASH_URL.",
      "secret": false,
      "strategy": "default",
      "default": "https://qstash.upstash.io"
    },
    {
      "key": "REDIS_HOST",
      "service": "suna-backend",
      "description": "Provide a value for REDIS_HOST.",
      "secret": false,
      "strategy": "default",
      "default": "redis"
    },
    {
      "key": "REDIS_PORT",
      "service": "suna-backend",
      "description": "Provide a value for REDIS_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "6379"
    },
    {
      "key": "MODEL_TO_USE",
      "service": "suna-backend",
      "description": "Provide a value for MODEL_TO_USE.",
      "secret": false,
      "strategy": "default",
      "default": "openai/gpt-4o"
    },
    {
      "key": "QSTASH_TOKEN",
      "service": "suna-backend",
      "description": "Create an account at Upstash Console and Get your QStash token",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "SUPABASE_URL",
      "service": "suna-backend",
      "description": "RESTful endpoint for querying and managing your supabase database. Project Setting > Data Api",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "RABBITMQ_HOST",
      "service": "suna-backend",
      "description": "Provide a value for RABBITMQ_HOST.",
      "secret": false,
      "strategy": "default",
      "default": "rabbitmq"
    },
    {
      "key": "RABBITMQ_PORT",
      "service": "suna-backend",
      "description": "Provide a value for RABBITMQ_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "5672"
    },
    {
      "key": "RAPID_API_KEY",
      "service": "suna-backend",
      "description": "For accessing additional API services (enables LinkedIn scraping and other tools)",
      "secret": true,
      "strategy": "default",
      "default": "api_key_here"
    },
    {
      "key": "DAYTONA_TARGET",
      "service": "suna-backend",
      "description": "Provide a value for DAYTONA_TARGET.",
      "secret": false,
      "strategy": "default",
      "default": "us"
    },
    {
      "key": "OPENAI_API_KEY",
      "service": "suna-backend",
      "description": "You can get api from https://platform.openai.com/api-keys",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "TAVILY_API_KEY",
      "service": "suna-backend",
      "description": "https://tavily.com/",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "DAYTONA_API_KEY",
      "service": "suna-backend",
      "description": "Create a Daytona account and Generate an API key.  Create a Snapshot: Name: kortix/suna:0.1.3 and Image name: kortix/suna:0.1.3 and Entrypoint: /usr/bin/supervisord -n -c /etc/supervisor/conf.d/supervisord.conf",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "NEXT_PUBLIC_URL",
      "service": "suna-backend",
      "description": "Provide a value for NEXT_PUBLIC_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "WEBHOOK_BASE_URL",
      "service": "suna-backend",
      "description": "Provide a value for WEBHOOK_BASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "ANTHROPIC_API_KEY",
      "service": "suna-backend",
      "description": "https://console.anthropic.com/",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "FIRECRAWL_API_KEY",
      "service": "suna-backend",
      "description": "https://firecrawl.dev/",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "SUPABASE_ANON_KEY",
      "service": "suna-backend",
      "description": "ANON key of supabase. Project Setting > Api Keys",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "DAYTONA_SERVER_URL",
      "service": "suna-backend",
      "description": "Provide a value for DAYTONA_SERVER_URL.",
      "secret": false,
      "strategy": "default",
      "default": "https://app.daytona.io/api"
    },
    {
      "key": "QSTASH_NEXT_SIGNING_KEY",
      "service": "suna-backend",
      "description": "Create an account at Upstash Console and Get your signing keys",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "SUPABASE_SERVICE_ROLE_KEY",
      "service": "suna-backend",
      "description": "Service role key of supabase. Project Setting > Api Keys",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "QSTASH_CURRENT_SIGNING_KEY",
      "service": "suna-backend",
      "description": "Create an account at Upstash Console and Get your signing keys",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "MCP_CREDENTIAL_ENCRYPTION_KEY",
      "service": "suna-backend",
      "description": "Provide a value for MCP_CREDENTIAL_ENCRYPTION_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "bPMwnHIrSKwQ5/yJVWop3aE7dSXsJD7lqnRw8GCfGbg="
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "kortix-suna-ai"
      }
    },
    "cli": "railway deploy --template kortix-suna-ai",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "5e532341-eae3-4f23-a606-ec8340f07e32",
            "serializedConfig": {
              "services": {
                "861df7ea-054f-4d77-a492-5f7bf18323b6": {
                  "name": "suna-frontend",
                  "source": {
                    "repo": "kaviarahul123/suna-frontend",
                    "branch": null,
                    "rootDirectory": null
                  },
                  "variables": {
                    "NEXT_PUBLIC_URL": {
                      "defaultValue": "https://${{suna-frontend.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "NEXT_PUBLIC_ENV_MODE": {
                      "defaultValue": "PRODUCTION"
                    },
                    "NEXT_PUBLIC_BACKEND_URL": {
                      "description": "Public url of backend",
                      "defaultValue": "https://${{suna-backend.RAILWAY_PUBLIC_DOMAIN}}/api"
                    },
                    "NEXT_PUBLIC_SUPABASE_URL": {
                      "description": "RESTful endpoint for querying and managing your supabase database. Project Setting > Data Api",
                      "defaultValue": "{{NEXT_PUBLIC_SUPABASE_URL}}"
                    },
                    "NEXT_PUBLIC_SUPABASE_ANON_KEY": {
                      "description": "ANON key of supabase. Project Setting > Api Keys",
                      "defaultValue": "{{NEXT_PUBLIC_SUPABASE_ANON_KEY}}"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>": {}
                    }
                  }
                },
                "ee3374c8-d174-41ad-82d4-026711103033": {
                  "name": "suna-backend",
                  "source": {
                    "repo": "iqbalexperience/suna-backend",
                    "branch": null,
                    "rootDirectory": null
                  },
                  "variables": {
                    "ENV_MODE": {
                      "defaultValue": "local"
                    },
                    "QSTASH_URL": {
                      "defaultValue": "https://qstash.upstash.io"
                    },
                    "REDIS_HOST": {
                      "defaultValue": "redis"
                    },
                    "REDIS_PORT": {
                      "defaultValue": "6379"
                    },
                    "MODEL_TO_USE": {
                      "defaultValue": "openai/gpt-4o"
                    },
                    "QSTASH_TOKEN": {
                      "description": "Create an account at Upstash Console and Get your QStash token",
                      "defaultValue": "{{QSTASH_TOKEN}}"
                    },
                    "SUPABASE_URL": {
                      "description": "RESTful endpoint for querying and managing your supabase database. Project Setting > Data Api",
                      "defaultValue": "{{SUPABASE_URL}}"
                    },
                    "FIRECRAWL_URL": {
                      "isOptional": true,
                      "description": "Needed only if you self-host firecrawl",
                      "defaultValue": ""
                    },
                    "RABBITMQ_HOST": {
                      "defaultValue": "rabbitmq"
                    },
                    "RABBITMQ_PORT": {
                      "defaultValue": "5672"
                    },
                    "RAPID_API_KEY": {
                      "isOptional": false,
                      "description": "For accessing additional API services (enables LinkedIn scraping and other tools)",
                      "defaultValue": "api_key_here"
                    },
                    "DAYTONA_TARGET": {
                      "defaultValue": "us"
                    },
                    "OPENAI_API_KEY": {
                      "description": "You can get api from https://platform.openai.com/api-keys",
                      "defaultValue": "{{OPENAI_API_KEY}}"
                    },
                    "TAVILY_API_KEY": {
                      "description": "https://tavily.com/",
                      "defaultValue": "{{TAVILY_API_KEY}}"
                    },
                    "DAYTONA_API_KEY": {
                      "description": "Create a Daytona account and Generate an API key.  Create a Snapshot: Name: kortix/suna:0.1.3 and Image name: kortix/suna:0.1.3 and Entrypoint: /usr/bin/supervisord -n -c /etc/supervisor/conf.d/supervisord.conf",
                      "defaultValue": "{{DAYTONA_API_KEY}}"
                    },
                    "NEXT_PUBLIC_URL": {
                      "defaultValue": "https://${{suna-frontend.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "SMITHERY_API_KEY": {
                      "isOptional": true,
                      "description": "For custom agents and workflows. https://smithery.ai/",
                      "defaultValue": ""
                    },
                    "WEBHOOK_BASE_URL": {
                      "defaultValue": "https://${{suna-frontend.NEXT_PUBLIC_URL}}"
                    },
                    "ANTHROPIC_API_KEY": {
                      "description": "https://console.anthropic.com/",
                      "defaultValue": "{{ANTHROPIC_API_KEY}}"
                    },
                    "FIRECRAWL_API_KEY": {
                      "description": "https://firecrawl.dev/",
                      "defaultValue": "{{FIRECRAWL_API_KEY}}"
                    },
                    "SUPABASE_ANON_KEY": {
                      "description": "ANON key of supabase. Project Setting > Api Keys",
                      "defaultValue": "{{SUPABASE_ANON_KEY}}"
                    },
                    "DAYTONA_SERVER_URL": {
                      "defaultValue": "https://app.daytona.io/api"
                    },
                    "OPENROUTER_API_KEY": {
                      "isOptional": true,
                      "description": "https://openrouter.ai/",
                      "defaultValue": ""
                    },
                    "QSTASH_NEXT_SIGNING_KEY": {
                      "description": "Create an account at Upstash Console and Get your signing keys",
                      "defaultValue": "{{QSTASH_NEXT_SIGNING_KEY}}"
                    },
                    "SUPABASE_SERVICE_ROLE_KEY": {
                      "description": "Service role key of supabase. Project Setting > Api Keys",
                      "defaultValue": "{{SUPABASE_SERVICE_ROLE_KEY}}"
                    },
                    "QSTASH_CURRENT_SIGNING_KEY": {
                      "description": "Create an account at Upstash Console and Get your signing keys",
                      "defaultValue": "{{QSTASH_CURRENT_SIGNING_KEY}}"
                    },
                    "MCP_CREDENTIAL_ENCRYPTION_KEY": {
                      "defaultValue": "bPMwnHIrSKwQ5/yJVWop3aE7dSXsJD7lqnRw8GCfGbg="
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>": {}
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 2,
    "needs_volume": false
  },
  "generated_at": "2026-09-10T22:14:43.398Z",
  "generator_version": "0.1.0"
}
