You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -174,6 +174,7 @@ LOG_LEVEL="info"
174
174
TRUST_PROXY=0
175
175
DOCS_ENABLED=true
176
176
METRICS_ENABLED=false
177
+
METRICS_AUTH_TOKEN=""
177
178
BCRYPT_ROUNDS=10
178
179
```
179
180
@@ -206,6 +207,7 @@ Deployment automation is implemented through [`.github/workflows/deploy.yml`](./
206
207
- manual dispatch for intentional non-production deployments
207
208
- exact-ref verification before any deployment
208
209
- smoke validation for `/health`, `/ready`, and `/docs.json`
210
+
- a pinned Railway CLI version for deterministic release promotion
209
211
210
212
Deployment setup material:
211
213
@@ -229,6 +231,8 @@ Enable metrics locally with `METRICS_ENABLED=true` and expose:
229
231
230
232
-`GET /metrics`
231
233
234
+
If metrics are enabled on any non-local environment, prefer setting `METRICS_AUTH_TOKEN` or keeping the route private at the network layer instead of exposing raw Prometheus output publicly.
Copy file name to clipboardExpand all lines: docs/deployment/railway.md
+5-2Lines changed: 5 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -52,6 +52,7 @@ At minimum, configure:
52
52
On Railway, define `DATABASE_URL` and `REDIS_URL` on the `auth-api` service itself by referencing the backing services, rather than assuming those values are shared automatically across services.
53
53
54
54
`TRUST_PROXY=1` is recommended for Railway because the service sits behind a proxy.
55
+
`METRICS_ENABLED=false` is the safer production default unless the metrics route stays private or is protected with `METRICS_AUTH_TOKEN`.
55
56
56
57
## GitHub Environments and secrets
57
58
@@ -115,6 +116,8 @@ The workflow now has four explicit phases:
115
116
116
117
The workflow clears the default GitHub Actions `CI=true` value for the deploy step so Railway waits for the deployment result instead of switching to build-only CI mode.
117
118
119
+
The Railway CLI version is pinned in the workflow on purpose. Update that version deliberately, in reviewable code, rather than pulling `latest` during a production promotion.
120
+
118
121
Concurrency is grouped by environment, not by a single hardcoded production bucket, so staging and production deploy queues remain isolated.
119
122
120
123
## Railway config as code
@@ -157,6 +160,6 @@ Recommended manual configuration in GitHub:
157
160
158
161
Branch protection should continue to require the `quality` and `integration` jobs from `.github/workflows/ci.yml` for `main`.
159
162
160
-
## Current limitation
163
+
## Current production demo
161
164
162
-
The repository automation is ready for deployment, but an actual public demo URL still depends on the Railway project existing and the required GitHub Environment secrets being configured correctly.
165
+
The public demo is live at `https://auth-api-production-a97b.up.railway.app`.
0 commit comments