{
  "manifest_version": "1.0.0",
  "template": {
    "id": "84c1517f-2834-44f8-b6e8-646ddd270987",
    "slug": "octothorpes-relay",
    "name": "Octothorpes Relay",
    "description": "Hashtags for websites. A community library for the open web.",
    "url": "https://railway.com/deploy/octothorpes-relay"
  },
  "status": "unvalidated",
  "validated_at": null,
  "success_rate_30d": null,
  "services": [
    {
      "name": "oxigraph/oxigraph:latest",
      "source": {
        "image": "ghcr.io/oxigraph/oxigraph:latest"
      },
      "needs_volume": true,
      "volume_mount_path": "/data",
      "http": false
    },
    {
      "name": "octothorp.es",
      "source": {
        "repo": "https://github.com/stucco-software/octothorp.es"
      },
      "needs_volume": false,
      "http": false
    }
  ],
  "required_inputs": [
    {
      "key": "ADAPTER",
      "service": "octothorp.es",
      "description": "Required to run sveltekit on railway",
      "secret": false,
      "strategy": "default",
      "default": "node"
    },
    {
      "key": "instance",
      "service": "octothorp.es",
      "description": "The public facing domain for this instance.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "smtp_host",
      "service": "octothorp.es",
      "description": "How do you send emails?",
      "secret": false,
      "strategy": "default",
      "default": "smtp.fastmail.com"
    },
    {
      "key": "smtp_port",
      "service": "octothorp.es",
      "description": "How do you send emails?",
      "secret": false,
      "strategy": "default",
      "default": "587"
    },
    {
      "key": "smtp_user",
      "service": "octothorp.es",
      "description": "How do you send emails?",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "admin_email",
      "service": "octothorp.es",
      "description": "What email should we send to for registration requests?",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "badge_image",
      "service": "octothorp.es",
      "description": "Where do you host your custom badge image?",
      "secret": false,
      "strategy": "default",
      "default": "badge.png"
    },
    {
      "key": "robot_email",
      "service": "octothorp.es",
      "description": "Who do you send emails as?",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "server_name",
      "service": "octothorp.es",
      "description": "The public facing name of your instance",
      "secret": false,
      "strategy": "default",
      "default": "CHANGEME"
    },
    {
      "key": "smtp_secure",
      "service": "octothorp.es",
      "description": "Just one of those things",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "admin_secret",
      "service": "octothorp.es",
      "description": "Use this as a secret password to perform /admin actions for your instance.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "smtp_password",
      "service": "octothorp.es",
      "description": "you know, for sending emails",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "sparql_endpoint",
      "service": "octothorp.es",
      "description": "Where the triplestore lives. Connected to the other service in this template. ",
      "secret": false,
      "strategy": "default",
      "default": "http://oxigraph.railway.internal:7878"
    },
    {
      "key": "registration_mode",
      "service": "octothorp.es",
      "description": "approval | open | closed ; controls how sites are added to this instance",
      "secret": false,
      "strategy": "default",
      "default": "approval"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "octothorpes-relay"
      }
    },
    "cli": "railway deploy --template octothorpes-relay",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "84c1517f-2834-44f8-b6e8-646ddd270987",
            "serializedConfig": {
              "services": {
                "a84b9215-df37-4c10-8c0c-85c7c2efaa7f": {
                  "name": "oxigraph/oxigraph:latest",
                  "deploy": {
                    "startCommand": "serve --location /data --bind [::]:7878"
                  },
                  "source": {
                    "image": "ghcr.io/oxigraph/oxigraph:latest"
                  },
                  "volumeMounts": {
                    "a84b9215-df37-4c10-8c0c-85c7c2efaa7f": {
                      "mountPath": "/data"
                    }
                  }
                },
                "b58751ea-f7d2-4fe1-9c02-097792a5de06": {
                  "name": "octothorp.es",
                  "source": {
                    "repo": "stucco-software/octothorp.es"
                  },
                  "variables": {
                    "ADAPTER": {
                      "description": "Required to run sveltekit on railway",
                      "defaultValue": "node"
                    },
                    "instance": {
                      "description": "The public facing domain for this instance.",
                      "defaultValue": "https://${{RAILWAY_PUBLIC_DOMAIN}}/"
                    },
                    "smtp_host": {
                      "description": "How do you send emails?",
                      "defaultValue": "smtp.fastmail.com"
                    },
                    "smtp_port": {
                      "description": "How do you send emails?",
                      "defaultValue": "587"
                    },
                    "smtp_user": {
                      "description": "How do you send emails?",
                      "defaultValue": "{{smtp_user}}"
                    },
                    "admin_email": {
                      "description": "What email should we send to for registration requests?",
                      "defaultValue": "{{admin_email}}"
                    },
                    "badge_image": {
                      "description": "Where do you host your custom badge image?",
                      "defaultValue": "badge.png"
                    },
                    "robot_email": {
                      "description": "Who do you send emails as?",
                      "defaultValue": "{{robot_email}}"
                    },
                    "server_name": {
                      "description": "The public facing name of your instance",
                      "defaultValue": "CHANGEME"
                    },
                    "smtp_secure": {
                      "description": "Just one of those things",
                      "defaultValue": "false"
                    },
                    "admin_secret": {
                      "description": "Use this as a secret password to perform /admin actions for your instance.",
                      "defaultValue": "{{admin_secret}}"
                    },
                    "smtp_password": {
                      "description": "you know, for sending emails",
                      "defaultValue": "{{smtp_password}}"
                    },
                    "sparql_endpoint": {
                      "description": "Where the triplestore lives. Connected to the other service in this template. ",
                      "defaultValue": "http://oxigraph.railway.internal:7878"
                    },
                    "registration_mode": {
                      "description": "approval | open | closed ; controls how sites are added to this instance",
                      "defaultValue": "approval"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 2,
    "needs_volume": true
  },
  "generated_at": "2026-10-05T10:14:51.356Z",
  "generator_version": "0.1.0"
}
