{
  "manifest_version": "1.0.0",
  "template": {
    "id": "4659890e-e159-4f34-a392-3d1120712dfc",
    "slug": "UnVh5f",
    "name": "Triplit Server",
    "description": "The official template for self-hosting the Triplit Server",
    "url": "https://railway.com/deploy/UnVh5f",
    "upstream": {
      "image": "aspencloud/triplit-server"
    }
  },
  "services": [
    {
      "name": "Triplit Server",
      "source": {
        "image": "aspencloud/triplit-server"
      },
      "needs_volume": true,
      "volume_mount_path": "/mnt/triplitdb",
      "http": true
    }
  ],
  "required_inputs": [
    {
      "key": "PORT",
      "service": "Triplit Server",
      "description": "Provide a value for PORT.",
      "secret": false,
      "strategy": "default",
      "default": "8080"
    },
    {
      "key": "JWT_SECRET",
      "service": "Triplit Server",
      "description": "Token used to validate incoming requests",
      "secret": true,
      "strategy": "default",
      "default": "-----BEGIN PUBLIC KEY-----MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3/h/YykqVaiyqxDpKqyafdsIiGOi/xZ5CXkwzlG8EHfs9L6eB+/zYQ3Aiqvb2ysTCqS53aD2Ktiv44s9Xs1yHNpZkAIQugKdeERhZAQm20DA3DHj1ONZ9jCduUV5C99y5uM06+6FdfwYjrVWpPjuKwdzU+/f5Q4rsG3K2vSRFQX7UYJhnqSfeqXZZ0n5WGqDzRVsSLDgpBtIba7cGQ8v6NJgdRk95SksOXJ/srnSeogWZ2+V6X6J/fxcYwRQYa+YFBcY8ReOWr79pdAScGF0fA89GctCwdxcpVlGHP9zbQe6wY5/LHm84iQ4WP8w8azpNcm33DX3QbBbY8c3YPzEyt3qcOTrDqwNPEwsARmf3p2SmkVntB7T89Ca33ppRTPKA6BknbESgE6ShKOoaHC15ZexJP7AYNJ5ap8eXFhlKEM9VfytfkshNgmq7SC0M9WKcrtQFAvpoh0ggzIC0yh/A8ndUCo3DA58p5aRjYOgliuzeQCkI6kRK8fnJKX38q91mhma7lf4nYkYxbhorSTRqS3VLyHSTx9AbiWLYl8zdqAWGYVuysXdKKY1kpQzzwqcY5RT/CEDsVIkO2GB4iNzMqkA3hI3673oBEE+/PhkeIqE2WmL15SCR65OIj7L0XBZgVhqpPdICctD5Xktc684kpdqT2jKW0h2O53iZXFiWhMCAwEAAQ==-----END PUBLIC KEY-----"
    },
    {
      "key": "VERBOSE_LOGS",
      "service": "Triplit Server",
      "description": "Whether to use verbose lgos",
      "secret": false,
      "strategy": "default",
      "default": "TRUE"
    },
    {
      "key": "LOCAL_DATABASE_URL",
      "service": "Triplit Server",
      "description": "Location of local SQLite database in the filesystem",
      "secret": false,
      "strategy": "default",
      "default": "/mnt/triplitdb/app.db"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "UnVh5f"
      }
    },
    "cli": "railway deploy --template UnVh5f",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "4659890e-e159-4f34-a392-3d1120712dfc",
            "serializedConfig": {
              "services": {
                "180a2584-b216-4c95-8cfb-0654ca015b6d": {
                  "icon": "https://www.triplit.dev/triplit-logo.svg",
                  "name": "Triplit Server",
                  "source": {
                    "image": "aspencloud/triplit-server"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "8080"
                    },
                    "JWT_SECRET": {
                      "isOptional": false,
                      "description": "Token used to validate incoming requests",
                      "defaultValue": "-----BEGIN PUBLIC KEY-----MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3/h/YykqVaiyqxDpKqyafdsIiGOi/xZ5CXkwzlG8EHfs9L6eB+/zYQ3Aiqvb2ysTCqS53aD2Ktiv44s9Xs1yHNpZkAIQugKdeERhZAQm20DA3DHj1ONZ9jCduUV5C99y5uM06+6FdfwYjrVWpPjuKwdzU+/f5Q4rsG3K2vSRFQX7UYJhnqSfeqXZZ0n5WGqDzRVsSLDgpBtIba7cGQ8v6NJgdRk95SksOXJ/srnSeogWZ2+V6X6J/fxcYwRQYa+YFBcY8ReOWr79pdAScGF0fA89GctCwdxcpVlGHP9zbQe6wY5/LHm84iQ4WP8w8azpNcm33DX3QbBbY8c3YPzEyt3qcOTrDqwNPEwsARmf3p2SmkVntB7T89Ca33ppRTPKA6BknbESgE6ShKOoaHC15ZexJP7AYNJ5ap8eXFhlKEM9VfytfkshNgmq7SC0M9WKcrtQFAvpoh0ggzIC0yh/A8ndUCo3DA58p5aRjYOgliuzeQCkI6kRK8fnJKX38q91mhma7lf4nYkYxbhorSTRqS3VLyHSTx9AbiWLYl8zdqAWGYVuysXdKKY1kpQzzwqcY5RT/CEDsVIkO2GB4iNzMqkA3hI3673oBEE+/PhkeIqE2WmL15SCR65OIj7L0XBZgVhqpPdICctD5Xktc684kpdqT2jKW0h2O53iZXFiWhMCAwEAAQ==-----END PUBLIC KEY-----"
                    },
                    "VERBOSE_LOGS": {
                      "isOptional": true,
                      "description": "Whether to use verbose lgos",
                      "defaultValue": "TRUE"
                    },
                    "LOCAL_DATABASE_URL": {
                      "isOptional": false,
                      "description": "Location of local SQLite database in the filesystem",
                      "defaultValue": "/mnt/triplitdb/app.db"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>": {}
                    }
                  },
                  "volumeMounts": {
                    "180a2584-b216-4c95-8cfb-0654ca015b6d": {
                      "mountPath": "/mnt/triplitdb"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 1,
    "needs_volume": true
  },
  "generated_at": "2026-09-22T22:14:50.114Z",
  "generator_version": "0.1.0",
  "status": "validated",
  "validated_at": "2026-09-21T13:02:24.568Z",
  "success_rate_30d": 1,
  "validation": {
    "last_run_id": "run_2e180ddad0004469be54",
    "checks": [
      {
        "name": "workflow_completed",
        "passed": true
      },
      {
        "name": "all_services_deployed",
        "passed": true
      },
      {
        "name": "stays_up",
        "passed": true
      }
    ],
    "typical_ready_seconds": 51,
    "typical_build_seconds": 0,
    "typical_start_seconds": 0,
    "slowest_service": "Triplit Server"
  }
}
