@cleocode/cleo 2026.3.2 → 2026.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -3
- package/dist/cli/index.js +7381 -3507
- package/dist/cli/index.js.map +4 -4
- package/dist/mcp/index.js +5792 -2097
- package/dist/mcp/index.js.map +4 -4
- package/package.json +4 -4
- package/packages/ct-skills/index.js +1 -1
- package/packages/ct-skills/package.json +0 -2
- package/packages/ct-skills/profiles/core.json +1 -1
- package/packages/ct-skills/profiles/full.json +4 -5
- package/packages/ct-skills/profiles/minimal.json +3 -3
- package/packages/ct-skills/profiles/recommended.json +2 -2
- package/packages/ct-skills/provider-skills-map.json +97 -0
- package/packages/ct-skills/skills/_shared/skill-chaining-patterns.md +23 -26
- package/packages/ct-skills/skills/_shared/testing-framework-config.md +9 -9
- package/packages/ct-skills/skills/ct-cleo/SKILL.md +21 -1
- package/packages/ct-skills/skills/ct-dev-workflow/SKILL.md +1 -1
- package/packages/ct-skills/skills/ct-documentor/SKILL.md +1 -1
- package/packages/ct-skills/skills/ct-epic-architect/SKILL.md +1 -1
- package/packages/ct-skills/skills/ct-grade/SKILL.md +214 -0
- package/packages/ct-skills/skills/ct-orchestrator/SKILL.md +119 -43
- package/packages/ct-skills/skills/ct-orchestrator/orchestrator-prompt.txt +17 -0
- package/packages/ct-skills/skills/ct-orchestrator/references/orchestrator-patterns.md +1 -1
- package/packages/ct-skills/skills/ct-research-agent/SKILL.md +1 -1
- package/packages/ct-skills/skills/ct-spec-writer/SKILL.md +1 -1
- package/packages/ct-skills/skills/ct-task-executor/SKILL.md +1 -1
- package/packages/ct-skills/skills/ct-validator/SKILL.md +1 -1
- package/packages/ct-skills/skills/manifest.json +217 -947
- package/packages/ct-skills/skills.json +244 -3
- package/templates/CLEO-INJECTION.md +37 -0
- package/templates/README.md +4 -4
- package/templates/cleo-gitignore +3 -11
- package/templates/git-hooks/pre-commit +1 -1
- package/packages/ct-skills/protocols/agent-protocol.md +0 -260
- package/packages/ct-skills/protocols/artifact-publish.md +0 -587
- package/packages/ct-skills/protocols/consensus.md +0 -309
- package/packages/ct-skills/protocols/contribution.md +0 -375
- package/packages/ct-skills/protocols/decomposition.md +0 -352
- package/packages/ct-skills/protocols/implementation.md +0 -344
- package/packages/ct-skills/protocols/provenance.md +0 -600
- package/packages/ct-skills/protocols/release.md +0 -635
- package/packages/ct-skills/protocols/research.md +0 -248
- package/packages/ct-skills/protocols/specification.md +0 -287
- package/packages/ct-skills/protocols/testing.md +0 -346
- package/packages/ct-skills/protocols/validation.md +0 -229
- package/packages/ct-skills/skills/ct-gitbook/SKILL.md +0 -516
- package/packages/ct-skills/skills/ct-gitbook/assets/SUMMARY.md +0 -28
- package/packages/ct-skills/skills/ct-gitbook/assets/gitbook.yaml +0 -14
- package/packages/ct-skills/skills/ct-gitbook/references/api-sdk.md +0 -318
- package/packages/ct-skills/skills/ct-gitbook/references/auth-sso.md +0 -208
- package/packages/ct-skills/skills/ct-gitbook/references/change-requests.md +0 -169
- package/packages/ct-skills/skills/ct-gitbook/references/content-blocks.md +0 -230
- package/packages/ct-skills/skills/ct-gitbook/references/docs-sites.md +0 -202
- package/packages/ct-skills/skills/ct-gitbook/references/git-sync.md +0 -175
- package/packages/ct-skills/skills/ct-gitbook/references/llm-ready.md +0 -178
- package/packages/ct-skills/skills/ct-gitbook/references/migration.md +0 -263
- package/packages/ct-skills/skills/ct-library-implementer-bash/SKILL.md +0 -316
- package/packages/ct-skills/skills/ct-skill-lookup/SKILL.md +0 -179
- package/packages/ct-skills/skills/ct-test-writer-bats/SKILL.md +0 -347
- package/packages/ct-skills/skills/railway-platform/SKILL.md +0 -506
- package/packages/ct-skills/skills/railway-platform/_shared/scripts/railway-api.sh +0 -180
- package/packages/ct-skills/skills/railway-platform/_shared/scripts/railway-common.sh +0 -262
- package/packages/ct-skills/skills/railway-platform/references/01-getting-started.md +0 -149
- package/packages/ct-skills/skills/railway-platform/references/02-projects.md +0 -116
- package/packages/ct-skills/skills/railway-platform/references/03-services.md +0 -147
- package/packages/ct-skills/skills/railway-platform/references/04-deployments.md +0 -210
- package/packages/ct-skills/skills/railway-platform/references/05-databases.md +0 -142
- package/packages/ct-skills/skills/railway-platform/references/06-environments.md +0 -261
- package/packages/ct-skills/skills/railway-platform/references/07-domains.md +0 -139
- package/packages/ct-skills/skills/railway-platform/references/08-volumes.md +0 -533
- package/packages/ct-skills/skills/railway-platform/references/09-networking.md +0 -592
- package/packages/ct-skills/skills/railway-platform/references/10-cron.md +0 -488
- package/packages/ct-skills/skills/railway-platform/references/11-functions.md +0 -170
- package/packages/ct-skills/skills/railway-platform/references/12-monorepo.md +0 -294
- package/packages/ct-skills/skills/railway-platform/references/13-troubleshooting.md +0 -335
- package/packages/ct-skills/skills/railway-platform/references/14-railway-metal.md +0 -197
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
# Deployments
|
|
2
|
-
|
|
3
|
-
Deploy code, manage releases, and debug issues.
|
|
4
|
-
|
|
5
|
-
## Deploy Code
|
|
6
|
-
|
|
7
|
-
### Basic Deploy
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
railway up --detach
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
### With Commit Message
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
railway up --detach -m "Add user authentication"
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Always use commit messages for clarity.
|
|
20
|
-
|
|
21
|
-
### CI Mode (Streaming)
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
railway up --ci -m "Deploy with streaming logs"
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Use for debugging builds. Streams build logs until completion.
|
|
28
|
-
|
|
29
|
-
### Deploy Specific Service
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
railway up --detach --service backend
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### Deploy to Unlinked Project
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
railway up --project <project-id> --environment production --detach
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Deployment Lifecycle
|
|
42
|
-
|
|
43
|
-
### Redeploy
|
|
44
|
-
|
|
45
|
-
Redeploy latest without new code:
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
railway redeploy --service my-service -y
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Use when:
|
|
52
|
-
- Config changed via environment
|
|
53
|
-
- External resources updated
|
|
54
|
-
- Service needs restart
|
|
55
|
-
|
|
56
|
-
### Restart
|
|
57
|
-
|
|
58
|
-
Restart container without rebuild:
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
railway restart --service my-service -y
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
Picks up external changes (S3, config maps).
|
|
65
|
-
|
|
66
|
-
### Remove Deployment
|
|
67
|
-
|
|
68
|
-
Take down service (keeps service):
|
|
69
|
-
|
|
70
|
-
```bash
|
|
71
|
-
railway down -y
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
## View Logs
|
|
75
|
-
|
|
76
|
-
### Deployment Logs
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
railway logs --lines 100
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### Build Logs
|
|
83
|
-
|
|
84
|
-
```bash
|
|
85
|
-
railway logs --build --lines 100
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### Latest Deployment
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
railway logs --latest --lines 100
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
For failed/in-progress deployments.
|
|
95
|
-
|
|
96
|
-
### Filter Logs
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
# Errors only
|
|
100
|
-
railway logs --lines 50 --filter "@level:error"
|
|
101
|
-
|
|
102
|
-
# Text search
|
|
103
|
-
railway logs --lines 50 --filter "connection refused"
|
|
104
|
-
|
|
105
|
-
# Time-based
|
|
106
|
-
railway logs --since 1h --lines 100
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### Time Formats
|
|
110
|
-
|
|
111
|
-
- Relative: `30s`, `5m`, `2h`, `1d`, `1w`
|
|
112
|
-
- ISO 8601: `2024-01-15T10:00:00Z`
|
|
113
|
-
|
|
114
|
-
## List Deployments
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
railway deployment list --limit 10 --json
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
Shows:
|
|
121
|
-
- Deployment IDs
|
|
122
|
-
- Status (SUCCESS, FAILED, DEPLOYING, BUILDING)
|
|
123
|
-
- Timestamps
|
|
124
|
-
|
|
125
|
-
## Deployment Status
|
|
126
|
-
|
|
127
|
-
| Status | Meaning |
|
|
128
|
-
|--------|---------|
|
|
129
|
-
| SUCCESS | Deployed and running |
|
|
130
|
-
| FAILED | Build or deploy failed |
|
|
131
|
-
| DEPLOYING | Currently deploying |
|
|
132
|
-
| BUILDING | Build in progress |
|
|
133
|
-
| CRASHED | Runtime crash |
|
|
134
|
-
| REMOVED | Deployment removed |
|
|
135
|
-
|
|
136
|
-
## Troubleshooting
|
|
137
|
-
|
|
138
|
-
### Build Failures
|
|
139
|
-
|
|
140
|
-
**Symptoms:** Status shows FAILED, CI mode shows errors.
|
|
141
|
-
|
|
142
|
-
**Common causes:**
|
|
143
|
-
- Missing dependencies (package.json, requirements.txt)
|
|
144
|
-
- Incorrect build command
|
|
145
|
-
- Out of memory
|
|
146
|
-
- Dockerfile errors
|
|
147
|
-
|
|
148
|
-
**Fixes:**
|
|
149
|
-
```bash
|
|
150
|
-
# Check build logs
|
|
151
|
-
railway logs --build --lines 200
|
|
152
|
-
|
|
153
|
-
# Increase memory
|
|
154
|
-
# Set variable: NODE_OPTIONS="--max-old-space-size=4096"
|
|
155
|
-
|
|
156
|
-
# Fix build command
|
|
157
|
-
# See 06-environments.md
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
### Service Crashes
|
|
161
|
-
|
|
162
|
-
**Symptoms:** Status shows CRASHED, constant restarts.
|
|
163
|
-
|
|
164
|
-
**Common causes:**
|
|
165
|
-
- Port not using $PORT env var
|
|
166
|
-
- Missing start command
|
|
167
|
-
- Runtime errors
|
|
168
|
-
|
|
169
|
-
**Fixes:**
|
|
170
|
-
```bash
|
|
171
|
-
# Check deploy logs
|
|
172
|
-
railway logs --lines 200
|
|
173
|
-
|
|
174
|
-
# Verify PORT usage
|
|
175
|
-
# Should listen on process.env.PORT || 8080
|
|
176
|
-
|
|
177
|
-
# Check start command
|
|
178
|
-
# See 06-environments.md
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
### SSH Debugging
|
|
182
|
-
|
|
183
|
-
```bash
|
|
184
|
-
railway ssh
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
Access running container for interactive debugging.
|
|
188
|
-
|
|
189
|
-
## Rollback
|
|
190
|
-
|
|
191
|
-
### Via Dashboard
|
|
192
|
-
|
|
193
|
-
1. Go to service → Deployments
|
|
194
|
-
2. Find working deployment
|
|
195
|
-
3. Click "Redeploy"
|
|
196
|
-
|
|
197
|
-
### Via CLI
|
|
198
|
-
|
|
199
|
-
```bash
|
|
200
|
-
# Get deployment ID
|
|
201
|
-
railway deployment list --limit 5
|
|
202
|
-
|
|
203
|
-
# Redeploy specific deployment
|
|
204
|
-
railway redeploy --service my-service -y
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
## Next Steps
|
|
208
|
-
|
|
209
|
-
- [06-environments.md](06-environments.md) - Fix config issues
|
|
210
|
-
- [13-troubleshooting.md](13-troubleshooting.md) - Advanced debugging
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
# Databases
|
|
2
|
-
|
|
3
|
-
Deploy and connect PostgreSQL, Redis, MySQL, and MongoDB.
|
|
4
|
-
|
|
5
|
-
## Available Databases
|
|
6
|
-
|
|
7
|
-
| Database | Template Code | Default Variable |
|
|
8
|
-
|----------|---------------|------------------|
|
|
9
|
-
| PostgreSQL | `postgres` | `DATABASE_URL` |
|
|
10
|
-
| Redis | `redis` | `REDIS_URL` |
|
|
11
|
-
| MySQL | `mysql` | `MYSQL_URL` |
|
|
12
|
-
| MongoDB | `mongodb` | `MONGO_URL` |
|
|
13
|
-
|
|
14
|
-
## Check for Existing Databases
|
|
15
|
-
|
|
16
|
-
Before creating, check if database exists:
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
source _shared/scripts/railway-api.sh
|
|
20
|
-
|
|
21
|
-
ENV_ID=$(get_environment_id)
|
|
22
|
-
|
|
23
|
-
railway_api '
|
|
24
|
-
query environmentConfig($environmentId: String!) {
|
|
25
|
-
environment(id: $environmentId) {
|
|
26
|
-
config(decryptVariables: false)
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
' "{\"environmentId\": \"$ENV_ID\"}" | jq '.data.environment.config.services | to_entries[] | select(.value.source.image | contains("postgres") or contains("redis") or contains("mysql") or contains("mongo"))'
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Deploy Database Template
|
|
33
|
-
|
|
34
|
-
### Step 1: Get Template
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
source _shared/scripts/railway-api.sh
|
|
38
|
-
|
|
39
|
-
railway_api '
|
|
40
|
-
query template($code: String!) {
|
|
41
|
-
template(code: $code) {
|
|
42
|
-
id
|
|
43
|
-
name
|
|
44
|
-
serializedConfig
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
' '{"code": "postgres"}'
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### Step 2: Deploy
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
PROJECT_ID=$(get_project_id)
|
|
54
|
-
ENV_ID=$(get_environment_id)
|
|
55
|
-
|
|
56
|
-
# Get workspace ID
|
|
57
|
-
WORKSPACE_ID=$(railway_api '
|
|
58
|
-
query getWorkspace($projectId: String!) {
|
|
59
|
-
project(id: $projectId) { workspaceId }
|
|
60
|
-
}
|
|
61
|
-
' "{\"projectId\": \"$PROJECT_ID\"}" | jq -r '.data.project.workspaceId')
|
|
62
|
-
|
|
63
|
-
# Deploy template
|
|
64
|
-
railway_api '
|
|
65
|
-
mutation deployTemplate($input: TemplateDeployV2Input!) {
|
|
66
|
-
templateDeployV2(input: $input) {
|
|
67
|
-
projectId
|
|
68
|
-
workflowId
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
' "{\"input\": {\"templateId\": \"TEMPLATE_ID\", \"serializedConfig\": SERIALIZED_CONFIG, \"projectId\": \"$PROJECT_ID\", \"environmentId\": \"$ENV_ID\", \"workspaceId\": \"$WORKSPACE_ID\"}}"
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
## Connect Service to Database
|
|
75
|
-
|
|
76
|
-
### Backend Connection
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
source _shared/scripts/railway-api.sh
|
|
80
|
-
|
|
81
|
-
ENV_ID=$(get_environment_id)
|
|
82
|
-
SERVICE_ID=$(get_service_id)
|
|
83
|
-
|
|
84
|
-
# Stage DATABASE_URL variable
|
|
85
|
-
railway_api '
|
|
86
|
-
mutation stageChanges($environmentId: String!, $input: EnvironmentConfig!) {
|
|
87
|
-
environmentStageChanges(environmentId: $environmentId, input: $input, merge: true) {
|
|
88
|
-
id
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
' "{\"environmentId\": \"$ENV_ID\", \"input\": {\"services\": {\"$SERVICE_ID\": {\"variables\": {\"DATABASE_URL\": {\"value\": \"\\${{Postgres.DATABASE_URL}}\"}}}}}}"
|
|
92
|
-
|
|
93
|
-
# Apply changes
|
|
94
|
-
railway_api '
|
|
95
|
-
mutation commitStaged($environmentId: String!, $message: String) {
|
|
96
|
-
environmentPatchCommitStaged(environmentId: $environmentId, commitMessage: $message)
|
|
97
|
-
}
|
|
98
|
-
' "{\"environmentId\": \"$ENV_ID\", \"message\": \"Add database connection\"}"
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### Connection URLs
|
|
102
|
-
|
|
103
|
-
**PostgreSQL:**
|
|
104
|
-
- Private: `${{Postgres.DATABASE_URL}}`
|
|
105
|
-
- Public: `${{Postgres.DATABASE_PUBLIC_URL}}` (with TCP proxy)
|
|
106
|
-
|
|
107
|
-
**Redis:**
|
|
108
|
-
- Private: `${{Redis.REDIS_URL}}`
|
|
109
|
-
- Public: `${{Redis.REDIS_PUBLIC_URL}}`
|
|
110
|
-
|
|
111
|
-
**MySQL:**
|
|
112
|
-
- Private: `${{MySQL.MYSQL_URL}}`
|
|
113
|
-
- Public: `${{MySQL.MYSQL_PUBLIC_URL}}`
|
|
114
|
-
|
|
115
|
-
**MongoDB:**
|
|
116
|
-
- Private: `${{MongoDB.MONGO_URL}}`
|
|
117
|
-
- Public: `${{MongoDB.MONGO_PUBLIC_URL}}`
|
|
118
|
-
|
|
119
|
-
## Database with Volume
|
|
120
|
-
|
|
121
|
-
Databases created from templates automatically include volumes for persistence.
|
|
122
|
-
|
|
123
|
-
To verify:
|
|
124
|
-
```bash
|
|
125
|
-
railway status --json | jq '.services[] | select(.name | test("postgres|redis|mysql|mongo"; "i")) | .volumes'
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
## Complete Example
|
|
129
|
-
|
|
130
|
-
```bash
|
|
131
|
-
# 1. Check if postgres exists
|
|
132
|
-
# 2. If not, deploy postgres template
|
|
133
|
-
# 3. Get backend service ID
|
|
134
|
-
# 4. Wire DATABASE_URL
|
|
135
|
-
# 5. Apply changes
|
|
136
|
-
# 6. Deploy backend
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
## Next Steps
|
|
140
|
-
|
|
141
|
-
- [08-volumes.md](08-volumes.md) - Persistent storage details
|
|
142
|
-
- [09-networking.md](09-networking.md) - TCP proxy for external access
|
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
# Environment Configuration
|
|
2
|
-
|
|
3
|
-
Manage variables, build settings, deploy settings, and service configuration.
|
|
4
|
-
|
|
5
|
-
## Environment Variables
|
|
6
|
-
|
|
7
|
-
### Set Variable
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
railway variables set KEY=value
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
### Set Multiple Variables
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
railway variables set KEY1=value1 KEY2=value2
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
### List Variables
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
railway variables --json
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
Shows rendered (resolved) values.
|
|
26
|
-
|
|
27
|
-
### Delete Variable
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
railway variables delete KEY
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
### Raw Editor
|
|
34
|
-
|
|
35
|
-
For bulk changes, use dashboard Variables tab → "Raw Editor".
|
|
36
|
-
|
|
37
|
-
## Advanced Configuration
|
|
38
|
-
|
|
39
|
-
### Query Current Config
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
source _shared/scripts/railway-api.sh
|
|
43
|
-
|
|
44
|
-
ENV_ID=$(get_environment_id)
|
|
45
|
-
|
|
46
|
-
railway_api '
|
|
47
|
-
query envConfig($environmentId: String!) {
|
|
48
|
-
environment(id: $environmentId) {
|
|
49
|
-
id
|
|
50
|
-
config(decryptVariables: false)
|
|
51
|
-
}
|
|
52
|
-
environmentStagedChanges(environmentId: $environmentId) {
|
|
53
|
-
id
|
|
54
|
-
patch(decryptVariables: false)
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
' "{\"environmentId\": \"$ENV_ID\"}"
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### Stage Changes
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
SERVICE_ID=$(get_service_id)
|
|
64
|
-
|
|
65
|
-
railway_api '
|
|
66
|
-
mutation stageChanges($environmentId: String!, $input: EnvironmentConfig!) {
|
|
67
|
-
environmentStageChanges(environmentId: $environmentId, input: $input, merge: true) {
|
|
68
|
-
id
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
' "{\"environmentId\": \"$ENV_ID\", \"input\": {\"services\": {\"$SERVICE_ID\": {\"variables\": {\"API_KEY\": {\"value\": \"secret\", \"encrypted\": true}}}}}}"
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### Apply Staged Changes
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
railway_api '
|
|
78
|
-
mutation commitStaged($environmentId: String!, $message: String) {
|
|
79
|
-
environmentPatchCommitStaged(environmentId: $environmentId, commitMessage: $message)
|
|
80
|
-
}
|
|
81
|
-
' "{\"environmentId\": \"$ENV_ID\", \"message\": \"Add API_KEY variable\"}"
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## Build Configuration
|
|
85
|
-
|
|
86
|
-
### Custom Build Command
|
|
87
|
-
|
|
88
|
-
```json
|
|
89
|
-
{
|
|
90
|
-
"services": {
|
|
91
|
-
"my-service": {
|
|
92
|
-
"build": {
|
|
93
|
-
"buildCommand": "npm run build:production"
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
### Custom Start Command
|
|
101
|
-
|
|
102
|
-
```json
|
|
103
|
-
{
|
|
104
|
-
"services": {
|
|
105
|
-
"my-service": {
|
|
106
|
-
"deploy": {
|
|
107
|
-
"startCommand": "node dist/server.js"
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### Root Directory
|
|
115
|
-
|
|
116
|
-
For subdirectory deployment:
|
|
117
|
-
|
|
118
|
-
```json
|
|
119
|
-
{
|
|
120
|
-
"services": {
|
|
121
|
-
"frontend": {
|
|
122
|
-
"rootDirectory": "/frontend"
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
### Watch Paths
|
|
129
|
-
|
|
130
|
-
Control which file changes trigger rebuilds:
|
|
131
|
-
|
|
132
|
-
```json
|
|
133
|
-
{
|
|
134
|
-
"services": {
|
|
135
|
-
"backend": {
|
|
136
|
-
"source": {
|
|
137
|
-
"watchPatterns": [
|
|
138
|
-
"/backend/**",
|
|
139
|
-
"/shared/**"
|
|
140
|
-
]
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
## Deploy Configuration
|
|
148
|
-
|
|
149
|
-
### Health Checks
|
|
150
|
-
|
|
151
|
-
```json
|
|
152
|
-
{
|
|
153
|
-
"services": {
|
|
154
|
-
"api": {
|
|
155
|
-
"deploy": {
|
|
156
|
-
"healthcheck": {
|
|
157
|
-
"enabled": true,
|
|
158
|
-
"path": "/health",
|
|
159
|
-
"port": 8080
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
### Replicas
|
|
168
|
-
|
|
169
|
-
```json
|
|
170
|
-
{
|
|
171
|
-
"services": {
|
|
172
|
-
"api": {
|
|
173
|
-
"deploy": {
|
|
174
|
-
"multiRegionConfig": {
|
|
175
|
-
"us-west1": {
|
|
176
|
-
"numReplicas": 2
|
|
177
|
-
},
|
|
178
|
-
"us-east1": {
|
|
179
|
-
"numReplicas": 2
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
### Restart Policy
|
|
189
|
-
|
|
190
|
-
```json
|
|
191
|
-
{
|
|
192
|
-
"services": {
|
|
193
|
-
"worker": {
|
|
194
|
-
"deploy": {
|
|
195
|
-
"restartPolicy": {
|
|
196
|
-
"type": "ON_FAILURE",
|
|
197
|
-
"maxRetries": 3
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
## Variable References
|
|
206
|
-
|
|
207
|
-
Reference variables from other services:
|
|
208
|
-
|
|
209
|
-
```json
|
|
210
|
-
{
|
|
211
|
-
"services": {
|
|
212
|
-
"backend": {
|
|
213
|
-
"variables": {
|
|
214
|
-
"DATABASE_URL": {
|
|
215
|
-
"value": "${{Postgres.DATABASE_URL}}"
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
See [12-monorepo.md](12-monorepo.md) for variable reference syntax details.
|
|
224
|
-
|
|
225
|
-
## Complete Configuration Example
|
|
226
|
-
|
|
227
|
-
```json
|
|
228
|
-
{
|
|
229
|
-
"services": {
|
|
230
|
-
"api": {
|
|
231
|
-
"build": {
|
|
232
|
-
"buildCommand": "npm run build",
|
|
233
|
-
"builder": "NIXPACKS"
|
|
234
|
-
},
|
|
235
|
-
"deploy": {
|
|
236
|
-
"startCommand": "npm start",
|
|
237
|
-
"healthcheck": {
|
|
238
|
-
"enabled": true,
|
|
239
|
-
"path": "/health"
|
|
240
|
-
},
|
|
241
|
-
"multiRegionConfig": {
|
|
242
|
-
"us-west1": {"numReplicas": 2}
|
|
243
|
-
}
|
|
244
|
-
},
|
|
245
|
-
"variables": {
|
|
246
|
-
"NODE_ENV": {"value": "production"},
|
|
247
|
-
"DATABASE_URL": {"value": "${{Postgres.DATABASE_URL}}"}
|
|
248
|
-
},
|
|
249
|
-
"source": {
|
|
250
|
-
"watchPatterns": ["/api/**", "/shared/**"]
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
## Next Steps
|
|
258
|
-
|
|
259
|
-
- [12-monorepo.md](12-monorepo.md) - Monorepo configuration
|
|
260
|
-
- [08-volumes.md](08-volumes.md) - Persistent storage
|
|
261
|
-
- [07-domains.md](07-domains.md) - Domain configuration
|