Skill v1.0.1
currentAutomated scan100/1004 files
version: "1.0.1" name: railway-templates description: Search and deploy services from Railway's template marketplace. Use when user wants to add a service from a template, find templates for a specific use case, or deploy tools like Ghost, Strapi, n8n, Minio, Uptime Kuma, etc. For databases (Postgres, Redis, MySQL, MongoDB), prefer the railway-database skill. license: MIT allowed-tools: Bash(railway:*) metadata: version: 1.0.0 author: Railway tags: [Railway, Templates, Marketplace, Deployment, CMS, Automation, Infrastructure] dependencies: [railway-cli]
Railway Templates
Search and deploy services from Railway's template marketplace.
When to Use
- User asks to "add Postgres", "add Redis", "add a database"
- User asks to "add Ghost", "add Strapi", "add n8n", or any other service
- User wants to find templates for a use case (e.g., "CMS", "storage", "monitoring")
- User asks "what templates are available?"
- User wants to deploy a pre-configured service
Common Template Codes
| Category | Template | Code | |
|---|---|---|---|
| Databases | PostgreSQL | postgres | |
| Redis | redis | ||
| MySQL | mysql | ||
| MongoDB | mongodb | ||
| CMS | Ghost | ghost | |
| Strapi | strapi | ||
| Storage | Minio | minio | |
| Automation | n8n | n8n | |
| Monitoring | Uptime Kuma | uptime-kuma |
For other templates, use the search query below.
Prerequisites
Get project context:
railway status --json
Extract:
id- project IDenvironments.edges[0].node.id- environment ID
Get workspace ID:
bash <<'SCRIPT'${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh \'query getWorkspace($projectId: String!) {project(id: $projectId) { workspaceId }}' \'{"projectId": "PROJECT_ID"}'SCRIPT
Search Templates
List available templates with optional filters:
bash <<'SCRIPT'${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh \'query templates($first: Int, $verified: Boolean) {templates(first: $first, verified: $verified) {edges {node {namecodedescriptioncategory}}}}' \'{"first": 20, "verified": true}'SCRIPT
Arguments
| Argument | Type | Description | |
|---|---|---|---|
first | Int | Number of results (max ~100) | |
verified | Boolean | Only verified templates | |
recommended | Boolean | Only recommended templates |
Rate Limit
10 requests per minute. Don't spam searches.
Get Template Details
Fetch a specific template by code:
bash <<'SCRIPT'${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh \'query template($code: String!) {template(code: $code) {idnamedescriptionserializedConfig}}' \'{"code": "postgres"}'SCRIPT
Returns:
id- template ID (needed for deployment)serializedConfig- service configuration (needed for deployment)
Deploy Template
Step 1: Fetch Template
bash <<'SCRIPT'${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh \'query template($code: String!) {template(code: $code) {idserializedConfig}}' \'{"code": "postgres"}'SCRIPT
Step 2: Deploy to Project
bash <<'SCRIPT'${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh \'mutation deployTemplate($input: TemplateDeployV2Input!) {templateDeployV2(input: $input) {projectIdworkflowId}}' \'{"input": {"templateId": "TEMPLATE_ID_FROM_STEP_1","serializedConfig": SERIALIZED_CONFIG_FROM_STEP_1,"projectId": "PROJECT_ID","environmentId": "ENVIRONMENT_ID","workspaceId": "WORKSPACE_ID"}}'SCRIPT
Important: serializedConfig is the exact JSON object from the template query, not a string.
Composability
- Connect services: Use railway-environment skill to add variable references
- View deployed service: Use railway-service skill
- Check logs: Use railway-deployment skill
- Add domains: Use railway-domain skill