Railway CLI: Deploy và quản lý infra từ terminal như một pro
Railway CLI giúp bạn deploy, quản lý project và tích hợp AI coding tools ngay từ command line - không cần click lòng vòng trên dashboard.
Nguyễn Nhật Long
@nguyennhatlong1303
Nếu bạn đang dùng Railway để host các project side project hay production app, mà vẫn đang phải vào dashboard web để deploy mỗi lần push code - thì mình nghĩ bạn đang bỏ qua một thứ khá tiện lợi.
Railway CLI là công cụ command-line chính thức của Railway, viết bằng Rust (nên khá nhanh), cho phép bạn làm hầu hết mọi thứ trực tiếp từ terminal: deploy app, xem logs, quản lý environment variables, và gần đây còn có thêm tích hợp với các AI coding agent như Claude Code, Cursor, Codex.
Cài đặt - một lệnh là xong
Cách nhanh nhất, đặc biệt nếu bạn muốn cả phần agent setup:
1bash <( curl -fsSL railway.com/install.sh ) --agents -y
Lệnh này sẽ cài CLI vào ~/.railway/bin và tự động chạy railway setup agent để config các AI tool mà nó detect được trên máy bạn. Nếu bạn không cần phần agent, bỏ flag --agents đi:
1bash <( curl -fsSL railway.com/install.sh ) -y
Ngoài ra còn có các cách cài khác tùy môi trường:
Theo kinh nghiệm của mình, cách dùng curl script là ổn nhất vì nó luôn lấy version mới nhất và handle PATH tự động. Dùng npm thì đôi khi bị conflict với Node version, còn Homebrew thì lag một chút so với bản release chính thức.
| Phương thức | Lệnh | Phù hợp cho |
|---|---|---|
| curl install script | `bash <(curl -fsSL railway.com/install.sh)` | macOS, Linux, WSL |
| Homebrew | `brew install railway` | macOS |
| npm | `npm i -g @railway/cli` | Node.js environment |
| Scoop | `scoop install railway` | Windows native |
| Pre-built binary | Download từ GitHub Releases | Air-gapped environments |
| Build from source | `cargo build --release` | Muốn tự build |
Login và setup token
Sau khi cài xong, bước đầu tiên:
1railway login
Nó sẽ mở browser để bạn authenticate qua Railway account. Nếu đang ở môi trường SSH hoặc không có browser (ví dụ đang remote vào server):
1railway login --browserless
Nó sẽ in ra một URL và code để bạn copy vào browser từ máy khác. Cái này mình hay dùng khi setup trên VPS.
CI/CD thì dùng token
Interactive login không phải lúc nào cũng dùng được, đặc biệt trong GitHub Actions hay pipeline tự động. Railway có hai loại token:
Ví dụ deploy trong CI:
| Token type | Environment variable | Dùng khi |
|---|---|---|
| Project token | `RAILWAY_TOKEN` | Deploy một project cụ thể |
| Account/Workspace token | `RAILWAY_API_TOKEN` | Quản lý nhiều project, workspace-level actions |
1RAILWAY_TOKEN=your_token_here railway up
Hoặc set trong GitHub Actions secrets và dùng như biến môi trường bình thường. Anh em lưu ý là RAILWAY_TOKEN chỉ có quyền ở project scope, còn RAILWAY_API_TOKEN thì rộng hơn - nên cẩn thận khi cấp token cho pipeline.
Workflow thực tế khi dùng Railway CLI
Mình sẽ walk through một flow deploy thực tế để bạn hình dung:
1# Link project hiện tại với Railway project2railway link34# Xem status các service5railway status67# Deploy code hiện tại lên8railway up910# Xem logs realtime11railway logs1213# Mở shell vào container đang chạy14railway shell1516# Xem và set environment variables17railway variables18railway variables set MY_KEY=my_value
Cái railway shell này mình thấy khá hay - bạn có thể SSH thẳng vào container đang chạy để debug mà không cần setup thêm gì. Với các app Node.js hay Python, đây là cách nhanh nhất để kiểm tra xem environment có đúng không.
Một pattern mình hay dùng khi dev local:
1# Chạy app local nhưng dùng environment variables từ Railway2railway run npm start3# hoặc4railway run python manage.py runserver
railway run sẽ inject tất cả env vars từ Railway environment vào process local của bạn. Cực kỳ tiện khi bạn cần connect đến database production (hoặc staging) mà không muốn copy paste connection string.
Phần thú vị: tích hợp AI coding agents
Đây là feature mới mà Railway đang push khá mạnh. Lệnh:
1railway setup agent -y
Sẽ tự động detect các AI tool bạn đang dùng và config Railway MCP server cho chúng. Hiện tại support:
- Claude Code
- Cursor
- Codex (OpenAI)
- OpenCode
- GitHub Copilot
- Factory Droid
Nếu bạn chỉ muốn setup cho một tool cụ thể:
1# Chỉ config MCP cho Cursor2railway mcp install --agent cursor34# Chỉ install Railway skills cho Claude Code5railway skills --agent claude-code
Mình chưa có cơ hội test kỹ phần này trong production workflow, nhưng concept thì khá hấp dẫn - về cơ bản bạn đang cho AI agent khả năng interact với Railway infrastructure trực tiếp: deploy, xem logs, manage services mà không cần bạn copy paste lệnh thủ công.
MCP (Model Context Protocol) ở đây đóng vai trò bridge giữa AI agent và Railway API. Nếu bạn đang dùng Claude Code hay Cursor thì đây là thứ đáng thử.
Uninstall nếu cần
Không phải ai cũng nghĩ đến điều này khi đọc docs, nhưng mình thấy việc có lệnh uninstall rõ ràng là một dấu hiệu tốt của một CLI tool:
1bash <( curl -fsSL cli.new ) -r
Flag -r là remove. Sạch sẽ, không để lại rác.
Một vài điểm đáng chú ý
CLI được viết bằng Rust, repo hiện có khoảng 898 commits và đang ở version v5.0.0 (release tháng 6/2026). Tốc độ khá ổn, startup time nhanh hơn nhiều so với các CLI viết bằng Node.js mà mình từng dùng.
Nếu bạn muốn contribute hoặc build từ source, repo có CONTRIBUTING.md và dùng Cargo nên setup khá straightforward:
1git clone https://github.com/railwayapp/cli2cd cli3cargo build --release
Có cả flake.nix cho anh em dùng Nix, và Dockerfile để build trong container.
Mình thấy Railway CLI là một trong những CLI tool được design khá tốt - lệnh intuitive, docs rõ ràng, và việc họ tích hợp thẳng MCP server cho AI agents ngay trong CLI thay vì bắt người dùng tự config thủ công là một UX decision khá thông minh. Nếu team bạn đang dùng Railway, đây là thứ nên có trong toolchain ngay từ đầu thay vì chỉ dùng dashboard web.
Nguyễn Nhật Long
@nguyennhatlong1303Nguyễn Nhật Long is a Senior Frontend Engineer and Frontend Team Leader with 7 years of experience building real-time fintech platforms. Specializing in React, Next.js, TypeScript, and React Native, shipping 10+ products across Web, Mobile, Telegram Mini-Apps, and Web3.
Thấy hay? Chia sẻ cho bạn bè!