{
  "manifest_version": "1.0.0",
  "template": {
    "id": "58af1d25-4a79-44ab-9534-65f862a1dbb6",
    "slug": "citus-or-just-updated-distributed-postgr",
    "name": "Citus | (Just Updated) Distributed Postgres 17, Extension Enabled, Data Survives Redeploys",
    "description": "Citus distributed PostgreSQL 17, extension on, generated password",
    "url": "https://railway.com/deploy/citus-or-just-updated-distributed-postgr",
    "upstream": {
      "image": "citusdata/citus:14.2.0-pg17@sha256:a8e720198e83d9f8bd3884a0aeb32aa1e2b426393fba96882587c9fe607d1417"
    }
  },
  "status": "unvalidated",
  "validated_at": null,
  "success_rate_30d": null,
  "services": [
    {
      "name": "citus",
      "source": {
        "image": "citusdata/citus:14.2.0-pg17@sha256:a8e720198e83d9f8bd3884a0aeb32aa1e2b426393fba96882587c9fe607d1417"
      },
      "needs_volume": true,
      "volume_mount_path": "/var/lib/postgresql",
      "tcp_ports": [
        5432
      ],
      "http": false
    }
  ],
  "required_inputs": [
    {
      "key": "PGHOST",
      "service": "citus",
      "description": "Provide a value for PGHOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "PGPASSWORD",
      "service": "citus",
      "description": "Provide a value for PGPASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DATABASE_URL",
      "service": "citus",
      "description": "Provide a value for DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "citus",
      "description": "Provide a value for POSTGRES_PASSWORD.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "DATABASE_PRIVATE_URL",
      "service": "citus",
      "description": "Provide a value for DATABASE_PRIVATE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "citus-or-just-updated-distributed-postgr"
      }
    },
    "cli": "railway deploy --template citus-or-just-updated-distributed-postgr",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "58af1d25-4a79-44ab-9534-65f862a1dbb6",
            "serializedConfig": {
              "buckets": {},
              "services": {
                "35a0ecbc-71f9-486f-b4b9-c7aa9e3d3e31": {
                  "icon": null,
                  "name": "citus",
                  "deploy": {
                    "startCommand": "/bin/sh -c 'eval \"$(echo IyBDaXR1cyBib290OiBzaXplIFBvc3RncmVzIGZyb20gdGhlIGNvbnRhaW5lciBsaW1pdHMsIHRoZW4gaGFuZCBvdmVyIHRvIHRoZSBzdG9jayBlbnRyeXBvaW50Lgp1bnNldCBQR0hPU1QgUEdQT1JUIFBHVVNFUiBQR1BBU1NXT1JEIFBHREFUQUJBU0UKTT0kKGNhdCAvc3lzL2ZzL2Nncm91cC9tZW1vcnkubWF4IDI+L2Rldi9udWxsKTsgTT0ke006LW1heH0KWyAiJE0iID0gbWF4IF0gJiYgTT0yMTQ3NDgzNjQ4Ck1CPSQoKE0vMTA0ODU3NikpClNCPSQoKE1CLzQpKTsgWyAiJFNCIiAtbHQgMTI4IF0gJiYgU0I9MTI4CkVDPSQoKE1CKjMvNSkpOyBbICIkRUMiIC1sdCAyNTYgXSAmJiBFQz0yNTYKTVc9JCgoTUIvNSkpOyBbICIkTVciIC1sdCA2NCBdICYmIE1XPTY0OyBbICIkTVciIC1ndCAyMDQ4IF0gJiYgTVc9MjA0OApXTT0kKChNQi82NCkpOyBbICIkV00iIC1sdCA0IF0gJiYgV009NDsgWyAiJFdNIiAtZ3QgNjQgXSAmJiBXTT02NApzZXQgLS0gJChjYXQgL3N5cy9mcy9jZ3JvdXAvY3B1Lm1heCAyPi9kZXYvbnVsbCk7IFE9JHsxOi1tYXh9OyBQPSR7MjotMTAwMDAwfQppZiBbICIkUSIgPSBtYXggXTsgdGhlbiBDPTI7IGVsc2UgQz0kKChRL1ApKTsgZmkKWyAiJEMiIC1sdCAxIF0gJiYgQz0xClBNPSQoKEMvMikpOyBbICIkUE0iIC1sdCAxIF0gJiYgUE09MTsgWyAiJFBNIiAtZ3QgNCBdICYmIFBNPTQKZXhwb3J0IFBPU1RHUkVTX1VTRVI9cG9zdGdyZXMgUE9TVEdSRVNfREI9cmFpbHdheQplY2hvICJbcmFpbHdheV0gdWlkPSQoaWQgLXUpIG93bmVyPSQoc3RhdCAtYyAldTolZyAvdmFyL2xpYi9wb3N0Z3Jlc3FsKSBtZW09JHtNQn1NQiBjcHU9JEMgc2hhcmVkX2J1ZmZlcnM9JHtTQn1NQiBlZmZlY3RpdmVfY2FjaGVfc2l6ZT0ke0VDfU1CIG1haW50ZW5hbmNlX3dvcmtfbWVtPSR7TVd9TUIgd29ya19tZW09JHtXTX1NQiBkc209bW1hcCIKZXhlYyBkb2NrZXItZW50cnlwb2ludC5zaCBwb3N0Z3JlcyBcCiAgLWMgZHluYW1pY19zaGFyZWRfbWVtb3J5X3R5cGU9bW1hcCBcCiAgLWMgc2hhcmVkX2J1ZmZlcnM9JHtTQn1NQiAtYyBlZmZlY3RpdmVfY2FjaGVfc2l6ZT0ke0VDfU1CIFwKICAtYyBtYWludGVuYW5jZV93b3JrX21lbT0ke01XfU1CIC1jIHdvcmtfbWVtPSR7V019TUIgXAogIC1jIG1heF93b3JrZXJfcHJvY2Vzc2VzPSQoKEMrOCkpIC1jIG1heF9wYXJhbGxlbF93b3JrZXJzPSRDIFwKICAtYyBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyPSRQTSAtYyBtYXhfcGFyYWxsZWxfbWFpbnRlbmFuY2Vfd29ya2Vycz0kUE0K | base64 -d)\"'",
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "citusdata/citus:14.2.0-pg17@sha256:a8e720198e83d9f8bd3884a0aeb32aa1e2b426393fba96882587c9fe607d1417"
                  },
                  "variables": {
                    "PGHOST": {
                      "isOptional": false,
                      "defaultValue": "${{RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "PGPASSWORD": {
                      "isOptional": false,
                      "defaultValue": "${{POSTGRES_PASSWORD}}"
                    },
                    "DATABASE_URL": {
                      "isOptional": false,
                      "defaultValue": "postgresql://postgres:${{POSTGRES_PASSWORD}}@${{RAILWAY_TCP_PROXY_DOMAIN}}:${{RAILWAY_TCP_PROXY_PORT}}/railway"
                    },
                    "POSTGRES_PASSWORD": {
                      "isOptional": false,
                      "defaultValue": "{{POSTGRES_PASSWORD}}"
                    },
                    "DATABASE_PRIVATE_URL": {
                      "isOptional": false,
                      "defaultValue": "postgresql://postgres:${{POSTGRES_PASSWORD}}@${{RAILWAY_PRIVATE_DOMAIN}}:5432/railway"
                    }
                  },
                  "networking": {
                    "tcpProxies": {
                      "5432": {}
                    }
                  },
                  "volumeMounts": {
                    "35a0ecbc-71f9-486f-b4b9-c7aa9e3d3e31": {
                      "mountPath": "/var/lib/postgresql"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 1,
    "needs_volume": true
  },
  "generated_at": "2026-11-02T16:15:13.542Z",
  "generator_version": "0.1.0"
}
