{
  "manifest_version": "1.0.0",
  "template": {
    "id": "16a4a5b1-0ec8-4cc9-bfe0-f2989b46f978",
    "slug": "NG6XMi",
    "name": "Etherpad",
    "description": "A modern really-real-time collaborative document editor",
    "url": "https://railway.com/deploy/NG6XMi",
    "upstream": {
      "image": "etherpad/etherpad"
    }
  },
  "status": "unvalidated",
  "validated_at": null,
  "success_rate_30d": null,
  "services": [
    {
      "name": "Etherpad",
      "source": {
        "image": "etherpad/etherpad"
      },
      "needs_volume": false,
      "http": true
    },
    {
      "name": "MongoDB",
      "source": {
        "image": "mongo"
      },
      "needs_volume": true,
      "volume_mount_path": "/data/db",
      "tcp_ports": [
        27017
      ],
      "http": false
    }
  ],
  "required_inputs": [
    {
      "key": "IP",
      "service": "Etherpad",
      "description": "Provide a value for IP.",
      "secret": false,
      "strategy": "default",
      "default": "0.0.0.0"
    },
    {
      "key": "PORT",
      "service": "Etherpad",
      "description": "Provide a value for PORT.",
      "secret": false,
      "strategy": "default",
      "default": "9001"
    },
    {
      "key": "TITLE",
      "service": "Etherpad",
      "description": "Provide a value for TITLE.",
      "secret": false,
      "strategy": "default",
      "default": "Etherpad"
    },
    {
      "key": "DB_URL",
      "service": "Etherpad",
      "description": "Provide a value for DB_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DB_TYPE",
      "service": "Etherpad",
      "description": "Provide a value for DB_TYPE.",
      "secret": false,
      "strategy": "default",
      "default": "mongodb"
    },
    {
      "key": "FAVICON",
      "service": "Etherpad",
      "description": "Provide a value for FAVICON.",
      "secret": false,
      "strategy": "default",
      "default": "favicon.ico"
    },
    {
      "key": "USER_PASSWORD",
      "service": "Etherpad",
      "description": "Provide a value for USER_PASSWORD.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "ADMIN_PASSWORD",
      "service": "Etherpad",
      "description": "Provide a value for ADMIN_PASSWORD.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "DEFAULT_PAD_TEXT",
      "service": "Etherpad",
      "description": "Provide a value for DEFAULT_PAD_TEXT.",
      "secret": false,
      "strategy": "default",
      "default": "Welcome to Etherpad! This pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents! Get involved with Etherpad at https://etherpad.org"
    },
    {
      "key": "MONGOHOST",
      "service": "MongoDB",
      "description": "Railway TCP Proxy Domain.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MONGOPORT",
      "service": "MongoDB",
      "description": "Mongodb TCP Proxy port.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MONGOUSER",
      "service": "MongoDB",
      "description": "Mongodb user, used for the Data panel.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MONGO_URL",
      "service": "MongoDB",
      "description": "URL to connect to MongoDB, used for Data panel.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MONGOPASSWORD",
      "service": "MongoDB",
      "description": "Root password, used for Data panel.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MONGO_PRIVATE_URL",
      "service": "MongoDB",
      "description": "URL to connect to MongoDB, used for Data panel.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "MONGO_INITDB_ROOT_PASSWORD",
      "service": "MongoDB",
      "description": "Root user password, set during initialization.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "MONGO_INITDB_ROOT_USERNAME",
      "service": "MongoDB",
      "description": "User created during initialization, given the root role.",
      "secret": false,
      "strategy": "default",
      "default": "mongo"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "NG6XMi"
      }
    },
    "cli": "railway deploy --template NG6XMi",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "16a4a5b1-0ec8-4cc9-bfe0-f2989b46f978",
            "serializedConfig": {
              "services": {
                "cda4410f-8fe2-4336-b892-1da23233b0d1": {
                  "name": "Etherpad",
                  "source": {
                    "image": "etherpad/etherpad"
                  },
                  "variables": {
                    "IP": {
                      "defaultValue": "0.0.0.0"
                    },
                    "PORT": {
                      "defaultValue": "9001"
                    },
                    "TITLE": {
                      "defaultValue": "Etherpad"
                    },
                    "DB_URL": {
                      "defaultValue": "${{MongoDB.MONGO_PRIVATE_URL}}"
                    },
                    "DB_TYPE": {
                      "defaultValue": "mongodb"
                    },
                    "FAVICON": {
                      "defaultValue": "favicon.ico"
                    },
                    "USER_PASSWORD": {
                      "defaultValue": "{{USER_PASSWORD}}"
                    },
                    "ADMIN_PASSWORD": {
                      "defaultValue": "{{ADMIN_PASSWORD}}"
                    },
                    "DEFAULT_PAD_TEXT": {
                      "defaultValue": "Welcome to Etherpad! This pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents! Get involved with Etherpad at https://etherpad.org"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>": {}
                    }
                  }
                },
                "e1203fb8-db0d-4a90-958a-0c2890c6ca29": {
                  "name": "MongoDB",
                  "build": {},
                  "deploy": {
                    "startCommand": "docker-entrypoint.sh mongod --ipv6 --bind_ip ::,0.0.0.0"
                  },
                  "source": {
                    "image": "mongo"
                  },
                  "variables": {
                    "MONGOHOST": {
                      "isOptional": false,
                      "description": "Railway TCP Proxy Domain.",
                      "defaultValue": "${{ RAILWAY_TCP_PROXY_DOMAIN }}"
                    },
                    "MONGOPORT": {
                      "isOptional": false,
                      "description": "Mongodb TCP Proxy port.",
                      "defaultValue": "${{ RAILWAY_TCP_PROXY_PORT }}"
                    },
                    "MONGOUSER": {
                      "isOptional": false,
                      "description": "Mongodb user, used for the Data panel.",
                      "defaultValue": "${{ MONGO_INITDB_ROOT_USERNAME }}"
                    },
                    "MONGO_URL": {
                      "isOptional": false,
                      "description": "URL to connect to MongoDB, used for Data panel.",
                      "defaultValue": "mongodb://${{MONGO_INITDB_ROOT_USERNAME}}:${{MONGO_INITDB_ROOT_PASSWORD}}@${{RAILWAY_TCP_PROXY_DOMAIN}}:${{RAILWAY_TCP_PROXY_PORT}}"
                    },
                    "MONGOPASSWORD": {
                      "isOptional": false,
                      "description": "Root password, used for Data panel.",
                      "defaultValue": "${{ MONGO_INITDB_ROOT_PASSWORD }}"
                    },
                    "MONGO_PRIVATE_URL": {
                      "isOptional": false,
                      "description": "URL to connect to MongoDB, used for Data panel.",
                      "defaultValue": "mongodb://${{MONGO_INITDB_ROOT_USERNAME}}:${{MONGO_INITDB_ROOT_PASSWORD}}@${{RAILWAY_PRIVATE_DOMAIN}}:27017"
                    },
                    "MONGO_INITDB_ROOT_PASSWORD": {
                      "isOptional": false,
                      "description": "Root user password, set during initialization.",
                      "defaultValue": "{{MONGO_INITDB_ROOT_PASSWORD}}"
                    },
                    "MONGO_INITDB_ROOT_USERNAME": {
                      "isOptional": false,
                      "description": "User created during initialization, given the root role.",
                      "defaultValue": "mongo"
                    }
                  },
                  "networking": {
                    "tcpProxies": {
                      "27017": {}
                    }
                  },
                  "volumeMounts": {
                    "e1203fb8-db0d-4a90-958a-0c2890c6ca29": {
                      "mountPath": "/data/db"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 2,
    "needs_volume": true
  },
  "generated_at": "2026-09-08T11:54:27.954Z",
  "generator_version": "0.1.0"
}
