AS
AgSkills.dev
MARKETPLACE

railway-templates

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.

18.3k
1.6k

Preview

SKILL.md
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.
version
1.0.0
author
Railway
license
MIT
tags
[Railway, Templates, Marketplace, Deployment, CMS, Automation, Infrastructure]
dependencies
[railway-cli]
allowed-tools
Bash(railway:*)

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

CategoryTemplateCode
DatabasesPostgreSQLpostgres
Redisredis
MySQLmysql
MongoDBmongodb
CMSGhostghost
Strapistrapi
StorageMiniominio
Automationn8nn8n
MonitoringUptime Kumauptime-kuma

For other templates, use the search query below.

Prerequisites

Get project context:

railway status --json

Extract:

  • id - project ID
  • environments.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 { name code description category } } } }' \ '{"first": 20, "verified": true}' SCRIPT

Arguments

ArgumentTypeDescription
firstIntNumber of results (max ~100)
verifiedBooleanOnly verified templates
recommendedBooleanOnly 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) { id name description serializedConfig } }' \ '{"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) { id serializedConfig } }' \ '{"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) { projectId workflowId } }' \ '{ "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
GitHub Repository
davila7/claude-code-templates
Stars
18,330
Forks
1,668
Open Repository
Install Skill
Download ZIP1 files