fat-controller

module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 8, 2026 License: MIT

README

Fat Controller Logo

CI Release Go License

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

  1. Authenticate with your Railway account:

    fat-controller auth login
    
  2. 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.

  3. 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.

Directories

Path Synopsis
cmd
fat-controller command
internal
app
Package app provides application-level orchestration between the CLI interface layer and the domain packages (config, diff, apply).
Package app provides application-level orchestration between the CLI interface layer and the domain packages (config, diff, apply).
cli
logger
Package logger provides context-based slog helpers for the CLI.
Package logger provides context-based slog helpers for the CLI.
tools/docgen command
Command docgen generates Markdown CLI reference documentation from the Kong command model.
Command docgen generates Markdown CLI reference documentation from the Kong command model.
version
Package version holds build-time version information.
Package version holds build-time version information.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL