{
  "manifest_version": "1.0.0",
  "template": {
    "id": "08d02e8e-d7a1-4866-8566-06c4f7754149",
    "slug": "ztncui",
    "name": "ztncui",
    "description": "ZeroTier with a network controller [based on official image]",
    "url": "https://railway.com/deploy/ztncui",
    "upstream": {
      "image": "keynetworks/ztncui"
    }
  },
  "status": "unvalidated",
  "validated_at": null,
  "success_rate_30d": null,
  "services": [
    {
      "name": "ztncui",
      "source": {
        "image": "keynetworks/ztncui"
      },
      "needs_volume": true,
      "volume_mount_path": "/var/lib/zerotier-one",
      "http": true
    }
  ],
  "required_inputs": [
    {
      "key": "HTTP_PORT",
      "service": "ztncui",
      "description": "Just leave it here.",
      "secret": false,
      "strategy": "default",
      "default": "3443"
    },
    {
      "key": "ZTNCUI_PASSWD",
      "service": "ztncui",
      "description": "You only need to change it here since all users will be reset when the container is redeployed. This is because we do not have another volume to store the panel's data.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "HTTP_ALL_INTERFACES",
      "service": "ztncui",
      "description": "Set it to true or you won't able to access the panel.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "ztncui"
      }
    },
    "cli": "railway deploy --template ztncui",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "08d02e8e-d7a1-4866-8566-06c4f7754149",
            "serializedConfig": {
              "services": {
                "28d2a217-be2b-47e6-b87b-25243c364bbb": {
                  "icon": null,
                  "name": "ztncui",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null
                  },
                  "source": {
                    "image": "keynetworks/ztncui"
                  },
                  "variables": {
                    "HTTP_PORT": {
                      "isOptional": false,
                      "description": "Just leave it here.",
                      "defaultValue": "3443"
                    },
                    "ZTNCUI_PASSWD": {
                      "isOptional": false,
                      "description": "You only need to change it here since all users will be reset when the container is redeployed. This is because we do not have another volume to store the panel's data.",
                      "defaultValue": "{{ZTNCUI_PASSWD}}"
                    },
                    "HTTP_ALL_INTERFACES": {
                      "isOptional": false,
                      "description": "Set it to true or you won't able to access the panel.",
                      "defaultValue": "true"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>": {}
                    }
                  },
                  "volumeMounts": {
                    "28d2a217-be2b-47e6-b87b-25243c364bbb": {
                      "mountPath": "/var/lib/zerotier-one"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 1,
    "needs_volume": true
  },
  "generated_at": "2026-09-20T16:14:49.616Z",
  "generator_version": "0.1.0"
}
