Railway
Deploy an example project
https://github.com/joshstevens19/rrelayer/tree/master/providers/railway
- Clone the relevant directory
# this will clone the railway directory
mkdir rrelayer-railway && cd rrelayer-railway
git clone \
--depth=1 \
--no-checkout \
--filter=tree:0 \
https://github.com/joshstevens19/rrelayer .
git sparse-checkout set --no-cone providers/railway .
git checkout && cp -r providers/railway/* . && rm -rf providers- Initialize a new Railway project
Install Railway CLI if not already installed.
railway loginrailway init --name rrelayer-example- Create a service and link it to the project
railway up --detach
railway link
? Select a project
> rrelayer-example
? Select an environment
> production
? Select a service
> rrelayer-example- Create a Postgres database
railway add --database postgres- Configure environment variables
railway open-
Open the service "Variables" tab:
-
Select "Add Variable Reference" and add a reference for
DATABASE_URLand append ?sslmode=disable to the end of the value. The result should look like${{Postgres.DATABASE_URL}}?sslmode=disable. -
Select "Add Variable Reference" and add a reference for
POSTGRES_PASSWORD. -
Select "New Variable" with name
RRELAYER_AUTH_USERNAMEand valueadmin(or your chosen username). -
Select "New Variable" with name
RRELAYER_AUTH_PASSWORDand set a strong password. -
Select "New Variable" with name
RAW_DANGEROUS_MNEMONICand paste a development mnemonic (use a secure signing provider in production). -
Select "New Variable" with name
PORTand value3000(this matches the port exposed inrrelayer.yaml).
-
-
Hit "Deploy" or press Shift+Enter.
- Create a domain to access the API
railway domain- Redeploy the service
railway upHealth Monitoring
rrelayer exposes a lightweight health endpoint that mirrors the service readiness status. The endpoint runs on the same port as the API.
Accessing the Health Endpoint
GET /health— Returns JSON describing the service status.
Example response:
{
"status": "healthy"
}Health Status Types
healthy— rrelayer is serving requests normallyunhealthy— rrelayer returns a non-200 status when it cannot start or has stopped responding
Monitoring in Production
- Use Railway's built-in health checks configured in
railway.toml:healthcheckPath = "/health" healthcheckTimeout = 100 - Create alerts for non-200 responses from
/health - Expose the endpoint via your Railway domain, e.g.
https://your-app.railway.app/health
Custom Health Port
The health endpoint listens on the port defined in rrelayer.yaml:
api_config:
port: 3000