Small HTTP/HTTPS reverse proxy for local development — route by Host, YAML config, optional WebSockets, TLS helpers.
Requires Go 1.22+.
go install github.com/fgrzl/buick/cmd/buick@latestPut Go’s bin on your PATH (for example $HOME/go/bin on Linux/macOS, %USERPROFILE%\go\bin on Windows).
Add a Buick YAML with certs.path (where buick init writes) and proxy.certs_path (where buickd reads); both use fixed localhost.pem / localhost-key.pem names (see Configuration). buick init creates missing parent directories, writes the leaf and local CA, and installs trust where the OS supports it.
Example buick.yml:
certs:
path: "./dev/buick/certs"
proxy:
certs_path: "./dev/buick/certs"
services:
api.localhost:
target: "http://127.0.0.1:8080"
app.localhost:
target: "http://127.0.0.1:8081"buick initIf buick.yml is in the current directory, buick init alone uses it; otherwise use buick init --config ./path/to/buick.yml. Use buick init -h for --skip-trust, --uninstall, and other flags.
The image runs buickd with the default --config /etc/buick/buick.yml. Mount your config and a certs directory (PEMs from buick init on the host):
services:
buick:
image: ghcr.io/fgrzl/buick:latest
restart: unless-stopped
ports:
- "80:8080"
- "443:8443"
volumes:
- ./dev/buick.yml:/etc/buick/buick.yml:ro
- ./dev/buick/certs:/etc/buick/certsdocker compose up -dImage tags, extra_hosts, and a fuller dev/buick.yml example: Docker and Compose. Running buickd on the host without containers: Standalone daemon.