This is the command line interface for Railway. Use it to connect your code to Railway's infrastructure without needing to worry about environment variables or configuration.
The Railway command line interface (CLI) connects your code to your Railway project from the command line.
The Railway CLI allows you to
- Create new Railway projects from the terminal
- Link to an existing Railway project
- Pull down environment variables for your project locally to run
- Create services and databases right from the comfort of your fingertips
Currently pre-release. We are looking for feedback and suggestions. Please join our Discord to provide feedback.
cargo install railwayapp --locked
brew install railway
npm install -g @railway/cli
# Install
bash <(curl -fsSL cli.new)
# Uninstall
bash <(curl -fsSL cli.new) -r
scoop install railway
Install using Paru
paru -S railwayapp-cli
Install using Yay
yay -S railwayapp-cli
Before using the CLI in a non-interactive environment, ensure you have created an access token (only project-tokens are supported as of now) and set it as the RAILWAY_TOKEN
environment variable. CI environments are automatically detected by the presence of CI=true
variable. In these environments, only build logs will be streamed, and the CLI will exit with an appropriate code indicating success or failure.
Install from the command line
docker pull ghcr.io/railwayapp/cli:latest
Use in GitHub Actions
deploy-job:
runs-on: ubuntu-latest
container: ghcr.io/railwayapp/cli:latest
env:
SVC_ID: my-service
RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
steps:
- uses: actions/checkout@v3
- run: railway up --service=${{ env.SVC_ID }}
Use in GitLab CICD
deploy-job:
image: ghcr.io/railwayapp/cli:latest
variables:
SVC_ID: my-service
script:
- railway up --service=$SVC_ID
Tip
GitLab can access a protected (secret) variable directly, all you need to do is to add it in CI/CD settings.
See CONTRIBUTING.md for information on setting up this repo locally.
We would love to hear your feedback or suggestions. The best way to reach us is on Discord.
We also welcome pull requests into this repo. See CONTRIBUTING.md for information on setting up this repo locally.