
Fat Controller
A CLI for managing Railway projects.
Railway's railway.toml files cover build and deploy settings (Dockerfile
path, watch patterns, healthchecks, restart policy), but a large portion of
project configuration lives only in the dashboard: environment variables,
resource limits, regions, replicas, domains, volumes, and TCP proxies. For
multi-service projects this means:
- No version control or audit trail for env var changes
- No way to review configuration changes in a PR
- Manual, error-prone setup when recreating or cloning a project
- No mechanism to detect configuration drift
Fat Controller treats Railway project configuration as code: pull the live
state, declare the desired state in a TOML file, diff, and apply.
fat-controller config get # pull live config
fat-controller config diff # compare config file against live state
fat-controller config apply # push differences
Installation
Download a release binary
Grab the latest binary from the
Releases page.
Archives are available for Linux, macOS, and Windows on amd64 and arm64.
Build from source
go install github.com/hamishmorgan/fat-controller/cmd/fat-controller@latest
Verify the installation:
fat-controller --version
Getting started
-
Authenticate with your Railway account:
fat-controller auth login
-
Bootstrap a config file from your live project:
fat-controller config init --project my-project --environment production
This creates fat-controller.toml with your current live configuration.
-
Edit the TOML file to declare your desired state, then diff and
apply:
fat-controller config diff
fat-controller config apply
See docs/COMMANDS.md for the full command reference.