{
  "manifest_version": "1.0.0",
  "template": {
    "id": "e5ed3d37-7d0a-4da4-a548-303437c0a3f1",
    "slug": "n8n-enterprise-ready-stack-ollama",
    "name": "n8n Enterprise-Ready Stack + Ollama",
    "description": "🚀 Infinite Scaling n8n + worker + PostgreSQL HA + Redis + Runer + Ollama",
    "url": "https://railway.com/deploy/n8n-enterprise-ready-stack-ollama",
    "upstream": {
      "repo_url": "https://github.com/icueth/n8n-PostgresHA-RedisHA"
    }
  },
  "services": [
    {
      "name": "postgres-18-proxy",
      "source": {
        "repo": "https://github.com/icueth/n8n-PostgresHA-RedisHA"
      },
      "needs_volume": false,
      "tcp_ports": [
        5432
      ],
      "http": false
    },
    {
      "name": "n8n-task-runner",
      "source": {
        "repo": "https://github.com/icueth/n8n-PostgresHA-RedisHA"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "n8n-worker",
      "source": {
        "repo": "https://github.com/icueth/n8n-PostgresHA-RedisHA"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "Redis-n8n",
      "source": {
        "repo": "https://github.com/icueth/n8n-PostgresHA-RedisHA"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "ollama",
      "source": {
        "repo": "https://github.com/icueth/n8n-PostgresHA-RedisHA"
      },
      "needs_volume": true,
      "volume_mount_path": "/root/.ollama",
      "http": false
    },
    {
      "name": "postgres-18-replica",
      "source": {
        "repo": "https://github.com/icueth/n8n-PostgresHA-RedisHA"
      },
      "needs_volume": true,
      "volume_mount_path": "/var/lib/postgresql/data",
      "http": false
    },
    {
      "name": "postgres-18-primary",
      "source": {
        "repo": "https://github.com/icueth/n8n-PostgresHA-RedisHA"
      },
      "needs_volume": true,
      "volume_mount_path": "/var/lib/postgresql/data",
      "http": false
    },
    {
      "name": "n8n",
      "source": {
        "repo": "https://github.com/icueth/n8n-PostgresHA-RedisHA"
      },
      "needs_volume": false,
      "http": true
    }
  ],
  "required_inputs": [
    {
      "key": "TZ",
      "service": "postgres-18-proxy",
      "description": "Provide a value for TZ.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "NODE_ROLE",
      "service": "postgres-18-proxy",
      "description": "Provide a value for NODE_ROLE.",
      "secret": false,
      "strategy": "default",
      "default": "PROXY"
    },
    {
      "key": "POSTGRES_DB",
      "service": "postgres-18-proxy",
      "description": "Provide a value for POSTGRES_DB.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PRIMARY_HOST",
      "service": "postgres-18-proxy",
      "description": "Provide a value for PRIMARY_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "REPLICA_HOST",
      "service": "postgres-18-proxy",
      "description": "Provide a value for REPLICA_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "POSTGRES_USER",
      "service": "postgres-18-proxy",
      "description": "Provide a value for POSTGRES_USER.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "postgres-18-proxy",
      "description": "Provide a value for POSTGRES_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PUBLIC_CONNECTION_URL",
      "service": "postgres-18-proxy",
      "description": "Provide a value for PUBLIC_CONNECTION_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PRIVATE_CONNECTION_URL",
      "service": "postgres-18-proxy",
      "description": "Provide a value for PRIVATE_CONNECTION_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "N8N_RUNNERS_AUTH_TOKEN",
      "service": "n8n-task-runner",
      "description": "Provide a value for N8N_RUNNERS_AUTH_TOKEN.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "N8N_RUNNERS_TASK_BROKER_URI",
      "service": "n8n-task-runner",
      "description": "Provide a value for N8N_RUNNERS_TASK_BROKER_URI.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "TZ",
      "service": "n8n-worker",
      "description": "Provide a value for TZ.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DB_TYPE",
      "service": "n8n-worker",
      "description": "Provide a value for DB_TYPE.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "N8N_LOG_LEVEL",
      "service": "n8n-worker",
      "description": "--- Task Runners ---",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "EXECUTIONS_MODE",
      "service": "n8n-worker",
      "description": "Provide a value for EXECUTIONS_MODE.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "GENERIC_TIMEZONE",
      "service": "n8n-worker",
      "description": "--- Database Configuration ---",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "N8N_RUNNERS_MODE",
      "service": "n8n-worker",
      "description": "Provide a value for N8N_RUNNERS_MODE.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DB_POSTGRESDB_HOST",
      "service": "n8n-worker",
      "description": "Provide a value for DB_POSTGRESDB_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DB_POSTGRESDB_PORT",
      "service": "n8n-worker",
      "description": "Provide a value for DB_POSTGRESDB_PORT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DB_POSTGRESDB_USER",
      "service": "n8n-worker",
      "description": "Provide a value for DB_POSTGRESDB_USER.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "N8N_ENCRYPTION_KEY",
      "service": "n8n-worker",
      "description": "--- Logging ---",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "N8N_RUNNERS_ENABLED",
      "service": "n8n-worker",
      "description": "Provide a value for N8N_RUNNERS_ENABLED.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "QUEUE_BULL_REDIS_HOST",
      "service": "n8n-worker",
      "description": "Provide a value for QUEUE_BULL_REDIS_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "QUEUE_BULL_REDIS_PORT",
      "service": "n8n-worker",
      "description": "Provide a value for QUEUE_BULL_REDIS_PORT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DB_POSTGRESDB_DATABASE",
      "service": "n8n-worker",
      "description": "Provide a value for DB_POSTGRESDB_DATABASE.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DB_POSTGRESDB_PASSWORD",
      "service": "n8n-worker",
      "description": "Provide a value for DB_POSTGRESDB_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "N8N_RUNNERS_AUTH_TOKEN",
      "service": "n8n-worker",
      "description": "Provide a value for N8N_RUNNERS_AUTH_TOKEN.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "N8N_NATIVE_PYTHON_RUNNER",
      "service": "n8n-worker",
      "description": "--- Worker Configuration ---",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DB_POSTGRESDB_SSL_ENABLED",
      "service": "n8n-worker",
      "description": "--- Queue Configuration (Redis) ---",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "QUEUE_BULL_REDIS_PASSWORD",
      "service": "n8n-worker",
      "description": "--- Security ---",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "N8N_CONCURRENCY_PRODUCTION_LIMIT",
      "service": "n8n-worker",
      "description": "Provide a value for N8N_CONCURRENCY_PRODUCTION_LIMIT.",
      "secret": false,
      "strategy": "default",
      "default": "10"
    },
    {
      "key": "N8N_RUNNERS_BROKER_LISTEN_ADDRESS",
      "service": "n8n-worker",
      "description": "Provide a value for N8N_RUNNERS_BROKER_LISTEN_ADDRESS.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS",
      "service": "n8n-worker",
      "description": "Provide a value for OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "REDIS_PASSWORD",
      "service": "Redis-n8n",
      "description": "Provide a value for REDIS_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "OLLAMA_HOST",
      "service": "ollama",
      "description": "Provide a value for OLLAMA_HOST.",
      "secret": false,
      "strategy": "default",
      "default": "0.0.0.0"
    },
    {
      "key": "OLLAMA_MODEL",
      "service": "ollama",
      "description": "Provide a value for OLLAMA_MODEL.",
      "secret": false,
      "strategy": "default",
      "default": "qwen2.5:3b"
    },
    {
      "key": "OLLAMA_KEEP_ALIVE",
      "service": "ollama",
      "description": "Provide a value for OLLAMA_KEEP_ALIVE.",
      "secret": false,
      "strategy": "default",
      "default": "24h"
    },
    {
      "key": "TZ",
      "service": "postgres-18-replica",
      "description": "Provide a value for TZ.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PGDATA",
      "service": "postgres-18-replica",
      "description": "Provide a value for PGDATA.",
      "secret": false,
      "strategy": "default",
      "default": "/var/lib/postgresql/data/pgdata"
    },
    {
      "key": "NODE_ROLE",
      "service": "postgres-18-replica",
      "description": "Provide a value for NODE_ROLE.",
      "secret": false,
      "strategy": "default",
      "default": "REPLICA"
    },
    {
      "key": "POSTGRES_DB",
      "service": "postgres-18-replica",
      "description": "Provide a value for POSTGRES_DB.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PRIMARY_HOST",
      "service": "postgres-18-replica",
      "description": "Provide a value for PRIMARY_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "POSTGRES_USER",
      "service": "postgres-18-replica",
      "description": "Provide a value for POSTGRES_USER.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "postgres-18-replica",
      "description": "Provide a value for POSTGRES_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "TZ",
      "service": "postgres-18-primary",
      "description": "Provide a value for TZ.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PGDATA",
      "service": "postgres-18-primary",
      "description": "Provide a value for PGDATA.",
      "secret": false,
      "strategy": "default",
      "default": "/var/lib/postgresql/data/pgdata"
    },
    {
      "key": "NODE_ROLE",
      "service": "postgres-18-primary",
      "description": "Provide a value for NODE_ROLE.",
      "secret": false,
      "strategy": "default",
      "default": "PRIMARY"
    },
    {
      "key": "POSTGRES_DB",
      "service": "postgres-18-primary",
      "description": "Provide a value for POSTGRES_DB.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_USER",
      "service": "postgres-18-primary",
      "description": "Provide a value for POSTGRES_USER.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "postgres-18-primary",
      "description": "Provide a value for POSTGRES_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "TZ",
      "service": "n8n",
      "description": "Provide a value for TZ.",
      "secret": false,
      "strategy": "default",
      "default": "Asia/Bangkok"
    },
    {
      "key": "DB_TYPE",
      "service": "n8n",
      "description": "Provide a value for DB_TYPE.",
      "secret": false,
      "strategy": "default",
      "default": "postgresdb"
    },
    {
      "key": "N8N_HOST",
      "service": "n8n",
      "description": "Provide a value for N8N_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "N8N_METRICS",
      "service": "n8n",
      "description": "Provide a value for N8N_METRICS.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "WEBHOOK_URL",
      "service": "n8n",
      "description": "--- Logging & Monitoring ---",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "N8N_PROTOCOL",
      "service": "n8n",
      "description": "Provide a value for N8N_PROTOCOL.",
      "secret": false,
      "strategy": "default",
      "default": "https"
    },
    {
      "key": "N8N_LOG_LEVEL",
      "service": "n8n",
      "description": "Provide a value for N8N_LOG_LEVEL.",
      "secret": false,
      "strategy": "default",
      "default": "info"
    },
    {
      "key": "EXECUTIONS_MODE",
      "service": "n8n",
      "description": "Provide a value for EXECUTIONS_MODE.",
      "secret": false,
      "strategy": "default",
      "default": "queue"
    },
    {
      "key": "GENERIC_TIMEZONE",
      "service": "n8n",
      "description": "--- Database Configuration ---",
      "secret": false,
      "strategy": "default",
      "default": "Asia/Bangkok"
    },
    {
      "key": "N8N_RUNNERS_MODE",
      "service": "n8n",
      "description": "Provide a value for N8N_RUNNERS_MODE.",
      "secret": false,
      "strategy": "default",
      "default": "external"
    },
    {
      "key": "N8N_SECURE_COOKIE",
      "service": "n8n",
      "description": "--- Host & Protocol ---",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "DB_POSTGRESDB_HOST",
      "service": "n8n",
      "description": "Provide a value for DB_POSTGRESDB_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "DB_POSTGRESDB_PORT",
      "service": "n8n",
      "description": "Provide a value for DB_POSTGRESDB_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "5432"
    },
    {
      "key": "DB_POSTGRESDB_USER",
      "service": "n8n",
      "description": "Provide a value for DB_POSTGRESDB_USER.",
      "secret": false,
      "strategy": "default",
      "default": "postgres"
    },
    {
      "key": "N8N_ENCRYPTION_KEY",
      "service": "n8n",
      "description": "Provide a value for N8N_ENCRYPTION_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "16a372354ccce4f012d70c17f1a1085b"
    },
    {
      "key": "N8N_RUNNERS_ENABLED",
      "service": "n8n",
      "description": "Provide a value for N8N_RUNNERS_ENABLED.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "EXECUTIONS_DATA_PRUNE",
      "service": "n8n",
      "description": "Provide a value for EXECUTIONS_DATA_PRUNE.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "N8N_TEMPLATES_ENABLED",
      "service": "n8n",
      "description": "--- Execution Data Management ---",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "QUEUE_BULL_REDIS_HOST",
      "service": "n8n",
      "description": "Provide a value for QUEUE_BULL_REDIS_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "QUEUE_BULL_REDIS_PORT",
      "service": "n8n",
      "description": "Provide a value for QUEUE_BULL_REDIS_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "6379"
    },
    {
      "key": "DB_POSTGRESDB_DATABASE",
      "service": "n8n",
      "description": "Provide a value for DB_POSTGRESDB_DATABASE.",
      "secret": false,
      "strategy": "default",
      "default": "n8n"
    },
    {
      "key": "DB_POSTGRESDB_PASSWORD",
      "service": "n8n",
      "description": "Provide a value for DB_POSTGRESDB_PASSWORD.",
      "secret": true,
      "strategy": "default",
      "default": "wqMIlXGy5DBmWaQ6"
    },
    {
      "key": "N8N_RUNNERS_AUTH_TOKEN",
      "service": "n8n",
      "description": "Provide a value for N8N_RUNNERS_AUTH_TOKEN.",
      "secret": true,
      "strategy": "default",
      "default": "93a4def7da750e2f414e0266ed9e31f7e281a7ba4a12242cd1617688697b14f1"
    },
    {
      "key": "EXECUTIONS_DATA_MAX_AGE",
      "service": "n8n",
      "description": "Provide a value for EXECUTIONS_DATA_MAX_AGE.",
      "secret": false,
      "strategy": "default",
      "default": "168"
    },
    {
      "key": "N8N_DIAGNOSTICS_ENABLED",
      "service": "n8n",
      "description": "Provide a value for N8N_DIAGNOSTICS_ENABLED.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "N8N_NATIVE_PYTHON_RUNNER",
      "service": "n8n",
      "description": "--- Worker Configuration ---",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "DB_POSTGRESDB_SSL_ENABLED",
      "service": "n8n",
      "description": "--- Queue Configuration (Redis) ---",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "N8N_HIRING_BANNER_ENABLED",
      "service": "n8n",
      "description": "--- Templates ---",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "QUEUE_BULL_REDIS_PASSWORD",
      "service": "n8n",
      "description": "Provide a value for QUEUE_BULL_REDIS_PASSWORD.",
      "secret": true,
      "strategy": "default",
      "default": "O5XlhzXSp4hChfji"
    },
    {
      "key": "QUEUE_HEALTH_CHECK_ACTIVE",
      "service": "n8n",
      "description": "--- Security & Authentication ---",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "EXECUTIONS_DATA_SAVE_ON_ERROR",
      "service": "n8n",
      "description": "Provide a value for EXECUTIONS_DATA_SAVE_ON_ERROR.",
      "secret": false,
      "strategy": "default",
      "default": "all"
    },
    {
      "key": "N8N_USER_MANAGEMENT_JWT_SECRET",
      "service": "n8n",
      "description": "Provide a value for N8N_USER_MANAGEMENT_JWT_SECRET.",
      "secret": true,
      "strategy": "default",
      "default": "f04b4bb2fb524bc7a5141f1d545a71c22caa28ddc8c863a784bf5a15858460f4"
    },
    {
      "key": "EXECUTIONS_DATA_SAVE_ON_SUCCESS",
      "service": "n8n",
      "description": "Provide a value for EXECUTIONS_DATA_SAVE_ON_SUCCESS.",
      "secret": false,
      "strategy": "default",
      "default": "all"
    },
    {
      "key": "N8N_RUNNERS_BROKER_LISTEN_ADDRESS",
      "service": "n8n",
      "description": "Provide a value for N8N_RUNNERS_BROKER_LISTEN_ADDRESS.",
      "secret": false,
      "strategy": "default",
      "default": "0.0.0.0"
    },
    {
      "key": "N8N_VERSION_NOTIFICATIONS_ENABLED",
      "service": "n8n",
      "description": "Provide a value for N8N_VERSION_NOTIFICATIONS_ENABLED.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS",
      "service": "n8n",
      "description": "Provide a value for OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS",
      "service": "n8n",
      "description": "--- Task Runners ---",
      "secret": false,
      "strategy": "default",
      "default": "true"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "n8n-enterprise-ready-stack-ollama"
      }
    },
    "cli": "railway deploy --template n8n-enterprise-ready-stack-ollama",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "e5ed3d37-7d0a-4da4-a548-303437c0a3f1",
            "serializedConfig": {
              "services": {
                "33eff91c-36cd-44f5-b87d-43f3483beb0c": {
                  "icon": "https://devicons.railway.app/pos",
                  "name": "postgres-18-proxy",
                  "source": {
                    "repo": "icueth/n8n-PostgresHA-RedisHA",
                    "branch": null,
                    "rootDirectory": "/postgresql-18-ha"
                  },
                  "variables": {
                    "TZ": {
                      "defaultValue": "${{postgres-18-primary.TZ}}"
                    },
                    "NODE_ROLE": {
                      "defaultValue": "PROXY"
                    },
                    "POSTGRES_DB": {
                      "defaultValue": "${{postgres-18-primary.POSTGRES_DB}}"
                    },
                    "PRIMARY_HOST": {
                      "defaultValue": "${{postgres-18-primary.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "REPLICA_HOST": {
                      "defaultValue": "${{postgres-18-replica.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "POSTGRES_USER": {
                      "defaultValue": "${{postgres-18-primary.POSTGRES_USER}}"
                    },
                    "POSTGRES_PASSWORD": {
                      "defaultValue": "${{postgres-18-primary.POSTGRES_PASSWORD}}"
                    },
                    "PUBLIC_CONNECTION_URL": {
                      "defaultValue": "postgresql://${{postgres-18-primary.POSTGRES_USER}}:${{postgres-18-primary.POSTGRES_PASSWORD}}@${{RAILWAY_TCP_PROXY_DOMAIN}}:${{RAILWAY_TCP_PROXY_PORT}}/${{postgres-18-primary.POSTGRES_DB}}"
                    },
                    "PRIVATE_CONNECTION_URL": {
                      "defaultValue": "postgresql://${{postgres-18-primary.POSTGRES_USER}}:${{postgres-18-primary.POSTGRES_PASSWORD}}@${{postgres-18-primary.RAILWAY_PRIVATE_DOMAIN}}:5432/${{postgres-18-primary.POSTGRES_DB}}"
                    }
                  },
                  "networking": {
                    "tcpProxies": {
                      "5432": {}
                    }
                  }
                },
                "5f2c2d9a-01ba-4fd6-a050-36bd690c97f9": {
                  "icon": "https://devicons.railway.app/n",
                  "name": "n8n-task-runner",
                  "source": {
                    "repo": "icueth/n8n-PostgresHA-RedisHA",
                    "branch": null,
                    "rootDirectory": "/n8n-task-runner"
                  },
                  "variables": {
                    "N8N_RUNNERS_AUTH_TOKEN": {
                      "defaultValue": "${{n8n.N8N_RUNNERS_AUTH_TOKEN}}"
                    },
                    "N8N_RUNNERS_TASK_BROKER_URI": {
                      "defaultValue": "http://${{n8n.RAILWAY_PRIVATE_DOMAIN}}:5679"
                    }
                  }
                },
                "71e1812f-b881-42ea-8e60-640c8e051320": {
                  "icon": "https://devicons.railway.app/n",
                  "name": "n8n-worker",
                  "source": {
                    "repo": "icueth/n8n-PostgresHA-RedisHA",
                    "branch": null,
                    "rootDirectory": "/n8n-worker"
                  },
                  "variables": {
                    "TZ": {
                      "defaultValue": "${{n8n.TZ}}"
                    },
                    "DB_TYPE": {
                      "defaultValue": "${{n8n.DB_TYPE}}"
                    },
                    "N8N_LOG_LEVEL": {
                      "description": "--- Task Runners ---",
                      "defaultValue": "${{n8n.N8N_LOG_LEVEL}}"
                    },
                    "EXECUTIONS_MODE": {
                      "defaultValue": "${{n8n.EXECUTIONS_MODE}}"
                    },
                    "GENERIC_TIMEZONE": {
                      "description": "--- Database Configuration ---",
                      "defaultValue": "${{n8n.GENERIC_TIMEZONE}}"
                    },
                    "N8N_RUNNERS_MODE": {
                      "defaultValue": "${{n8n.N8N_RUNNERS_MODE}}"
                    },
                    "DB_POSTGRESDB_HOST": {
                      "defaultValue": "${{n8n.DB_POSTGRESDB_HOST}}"
                    },
                    "DB_POSTGRESDB_PORT": {
                      "defaultValue": "${{n8n.DB_POSTGRESDB_PORT}}"
                    },
                    "DB_POSTGRESDB_USER": {
                      "defaultValue": "${{n8n.DB_POSTGRESDB_USER}}"
                    },
                    "N8N_ENCRYPTION_KEY": {
                      "description": "--- Logging ---",
                      "defaultValue": "${{n8n.N8N_ENCRYPTION_KEY}}"
                    },
                    "N8N_RUNNERS_ENABLED": {
                      "defaultValue": "${{n8n.N8N_RUNNERS_ENABLED}}"
                    },
                    "QUEUE_BULL_REDIS_HOST": {
                      "defaultValue": "${{n8n.QUEUE_BULL_REDIS_HOST}}"
                    },
                    "QUEUE_BULL_REDIS_PORT": {
                      "defaultValue": "${{n8n.QUEUE_BULL_REDIS_PORT}}"
                    },
                    "DB_POSTGRESDB_DATABASE": {
                      "defaultValue": "${{n8n.DB_POSTGRESDB_DATABASE}}"
                    },
                    "DB_POSTGRESDB_PASSWORD": {
                      "defaultValue": "${{n8n.DB_POSTGRESDB_PASSWORD}}"
                    },
                    "N8N_RUNNERS_AUTH_TOKEN": {
                      "defaultValue": "${{n8n.N8N_RUNNERS_AUTH_TOKEN}}"
                    },
                    "N8N_NATIVE_PYTHON_RUNNER": {
                      "description": "--- Worker Configuration ---",
                      "defaultValue": "${{n8n.N8N_NATIVE_PYTHON_RUNNER}}"
                    },
                    "DB_POSTGRESDB_SSL_ENABLED": {
                      "description": "--- Queue Configuration (Redis) ---",
                      "defaultValue": "${{n8n.DB_POSTGRESDB_SSL_ENABLED}}"
                    },
                    "QUEUE_BULL_REDIS_PASSWORD": {
                      "description": "--- Security ---",
                      "defaultValue": "${{n8n.QUEUE_BULL_REDIS_PASSWORD}}"
                    },
                    "N8N_CONCURRENCY_PRODUCTION_LIMIT": {
                      "defaultValue": "10"
                    },
                    "N8N_RUNNERS_BROKER_LISTEN_ADDRESS": {
                      "defaultValue": "${{n8n.N8N_RUNNERS_BROKER_LISTEN_ADDRESS}}"
                    },
                    "OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS": {
                      "defaultValue": "${{n8n.OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS}}"
                    }
                  }
                },
                "9b6a71c5-19fe-4f43-ad33-01666547f738": {
                  "icon": "https://devicons.railway.app/Redis",
                  "name": "Redis-n8n",
                  "source": {
                    "repo": "icueth/n8n-PostgresHA-RedisHA",
                    "branch": null,
                    "rootDirectory": "/redis"
                  },
                  "variables": {
                    "REDIS_PASSWORD": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "${{n8n.QUEUE_BULL_REDIS_PASSWORD}}"
                    }
                  }
                },
                "acc6b6c7-3248-4c06-83a1-bed2e284a686": {
                  "icon": "https://devicons.railway.app/i/Ollama.svg",
                  "name": "ollama",
                  "source": {
                    "repo": "icueth/n8n-PostgresHA-RedisHA",
                    "branch": null,
                    "rootDirectory": "/ollama"
                  },
                  "variables": {
                    "OLLAMA_HOST": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "0.0.0.0"
                    },
                    "OLLAMA_MODEL": {
                      "defaultValue": "qwen2.5:3b"
                    },
                    "OLLAMA_KEEP_ALIVE": {
                      "defaultValue": "24h"
                    }
                  },
                  "volumeMounts": {
                    "acc6b6c7-3248-4c06-83a1-bed2e284a686": {
                      "mountPath": "/root/.ollama"
                    }
                  }
                },
                "cded257b-ce63-4725-99c5-eaadc3c04f38": {
                  "icon": "https://devicons.railway.app/pos",
                  "name": "postgres-18-replica",
                  "source": {
                    "repo": "icueth/n8n-PostgresHA-RedisHA",
                    "branch": null,
                    "rootDirectory": "/postgresql-18-ha"
                  },
                  "variables": {
                    "TZ": {
                      "defaultValue": "${{postgres-18-primary.TZ}}"
                    },
                    "PGDATA": {
                      "defaultValue": "/var/lib/postgresql/data/pgdata"
                    },
                    "NODE_ROLE": {
                      "defaultValue": "REPLICA"
                    },
                    "POSTGRES_DB": {
                      "defaultValue": "${{postgres-18-primary.POSTGRES_DB}}"
                    },
                    "PRIMARY_HOST": {
                      "defaultValue": "${{postgres-18-primary.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "POSTGRES_USER": {
                      "defaultValue": "${{postgres-18-primary.POSTGRES_USER}}"
                    },
                    "POSTGRES_PASSWORD": {
                      "defaultValue": "${{postgres-18-primary.POSTGRES_PASSWORD}}"
                    }
                  },
                  "volumeMounts": {
                    "cded257b-ce63-4725-99c5-eaadc3c04f38": {
                      "mountPath": "/var/lib/postgresql/data"
                    }
                  }
                },
                "d1117155-dd4c-4100-8832-7a0e24113cc1": {
                  "icon": "https://devicons.railway.app/pos",
                  "name": "postgres-18-primary",
                  "source": {
                    "repo": "icueth/n8n-PostgresHA-RedisHA",
                    "branch": null,
                    "rootDirectory": "/postgresql-18-ha"
                  },
                  "variables": {
                    "TZ": {
                      "description": "",
                      "defaultValue": "${{n8n.TZ}}"
                    },
                    "PGDATA": {
                      "defaultValue": "/var/lib/postgresql/data/pgdata"
                    },
                    "NODE_ROLE": {
                      "defaultValue": "PRIMARY"
                    },
                    "POSTGRES_DB": {
                      "description": "",
                      "defaultValue": "${{n8n.DB_POSTGRESDB_DATABASE}}"
                    },
                    "POSTGRES_USER": {
                      "description": "",
                      "defaultValue": "${{n8n-worker.DB_POSTGRESDB_USER}}"
                    },
                    "POSTGRES_PASSWORD": {
                      "description": "",
                      "defaultValue": "${{n8n.DB_POSTGRESDB_PASSWORD}}"
                    }
                  },
                  "volumeMounts": {
                    "d1117155-dd4c-4100-8832-7a0e24113cc1": {
                      "mountPath": "/var/lib/postgresql/data"
                    }
                  }
                },
                "dd9763ba-144c-4d7d-b291-32898d0766d8": {
                  "icon": "https://devicons.railway.app/n",
                  "name": "n8n",
                  "source": {
                    "repo": "icueth/n8n-PostgresHA-RedisHA",
                    "branch": null,
                    "rootDirectory": "/n8n"
                  },
                  "variables": {
                    "TZ": {
                      "defaultValue": "Asia/Bangkok"
                    },
                    "DB_TYPE": {
                      "defaultValue": "postgresdb"
                    },
                    "N8N_HOST": {
                      "defaultValue": "${{RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "N8N_METRICS": {
                      "defaultValue": "true"
                    },
                    "WEBHOOK_URL": {
                      "description": "--- Logging & Monitoring ---",
                      "defaultValue": "https://${{RAILWAY_PUBLIC_DOMAIN}}/"
                    },
                    "N8N_PROTOCOL": {
                      "defaultValue": "https"
                    },
                    "N8N_LOG_LEVEL": {
                      "defaultValue": "info"
                    },
                    "EXECUTIONS_MODE": {
                      "defaultValue": "queue"
                    },
                    "GENERIC_TIMEZONE": {
                      "description": "--- Database Configuration ---",
                      "defaultValue": "Asia/Bangkok"
                    },
                    "N8N_RUNNERS_MODE": {
                      "defaultValue": "external"
                    },
                    "N8N_SECURE_COOKIE": {
                      "description": "--- Host & Protocol ---",
                      "defaultValue": "true"
                    },
                    "DB_POSTGRESDB_HOST": {
                      "defaultValue": "${{postgres-18-proxy.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "DB_POSTGRESDB_PORT": {
                      "defaultValue": "5432"
                    },
                    "DB_POSTGRESDB_USER": {
                      "defaultValue": "postgres"
                    },
                    "N8N_ENCRYPTION_KEY": {
                      "defaultValue": "16a372354ccce4f012d70c17f1a1085b"
                    },
                    "N8N_RUNNERS_ENABLED": {
                      "defaultValue": "true"
                    },
                    "EXECUTIONS_DATA_PRUNE": {
                      "defaultValue": "true"
                    },
                    "N8N_TEMPLATES_ENABLED": {
                      "description": "--- Execution Data Management ---",
                      "defaultValue": "true"
                    },
                    "QUEUE_BULL_REDIS_HOST": {
                      "defaultValue": "${{Redis-n8n.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "QUEUE_BULL_REDIS_PORT": {
                      "defaultValue": "6379"
                    },
                    "DB_POSTGRESDB_DATABASE": {
                      "defaultValue": "n8n"
                    },
                    "DB_POSTGRESDB_PASSWORD": {
                      "defaultValue": "wqMIlXGy5DBmWaQ6"
                    },
                    "N8N_RUNNERS_AUTH_TOKEN": {
                      "defaultValue": "93a4def7da750e2f414e0266ed9e31f7e281a7ba4a12242cd1617688697b14f1"
                    },
                    "EXECUTIONS_DATA_MAX_AGE": {
                      "defaultValue": "168"
                    },
                    "N8N_DIAGNOSTICS_ENABLED": {
                      "defaultValue": "false"
                    },
                    "N8N_NATIVE_PYTHON_RUNNER": {
                      "description": "--- Worker Configuration ---",
                      "defaultValue": "true"
                    },
                    "DB_POSTGRESDB_SSL_ENABLED": {
                      "description": "--- Queue Configuration (Redis) ---",
                      "defaultValue": "false"
                    },
                    "N8N_HIRING_BANNER_ENABLED": {
                      "description": "--- Templates ---",
                      "defaultValue": "false"
                    },
                    "QUEUE_BULL_REDIS_PASSWORD": {
                      "defaultValue": "O5XlhzXSp4hChfji"
                    },
                    "QUEUE_HEALTH_CHECK_ACTIVE": {
                      "description": "--- Security & Authentication ---",
                      "defaultValue": "true"
                    },
                    "EXECUTIONS_DATA_SAVE_ON_ERROR": {
                      "defaultValue": "all"
                    },
                    "N8N_USER_MANAGEMENT_JWT_SECRET": {
                      "defaultValue": "f04b4bb2fb524bc7a5141f1d545a71c22caa28ddc8c863a784bf5a15858460f4"
                    },
                    "EXECUTIONS_DATA_SAVE_ON_SUCCESS": {
                      "defaultValue": "all"
                    },
                    "N8N_RUNNERS_BROKER_LISTEN_ADDRESS": {
                      "defaultValue": "0.0.0.0"
                    },
                    "N8N_VERSION_NOTIFICATIONS_ENABLED": {
                      "defaultValue": "false"
                    },
                    "OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS": {
                      "defaultValue": "true"
                    },
                    "EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS": {
                      "description": "--- Task Runners ---",
                      "defaultValue": "true"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>:5678": {
                        "port": 5678
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 8,
    "needs_volume": true
  },
  "generated_at": "2026-09-15T16:14:47.755Z",
  "generator_version": "0.1.0",
  "status": "validated",
  "validated_at": "2026-09-13T22:39:32.912Z",
  "success_rate_30d": 1,
  "validation": {
    "last_run_id": "run_648e3cfb7bfe4669ab62",
    "checks": [
      {
        "name": "workflow_completed",
        "passed": true
      },
      {
        "name": "all_services_deployed",
        "passed": true
      },
      {
        "name": "stays_up",
        "passed": true
      }
    ],
    "typical_ready_seconds": 277,
    "typical_build_seconds": 134,
    "typical_start_seconds": 81,
    "slowest_service": "ollama"
  }
}
