Skip to content

Development Setup

Prerequisites

  • Go 1.24 or later
  • mise (optional, for version management)

Clone and Build

git clone https://github.com/charliek/prox.git
cd prox
make build

Or without make:

go build -o prox ./cmd/prox

If using mise:

mise install
make build

Project Structure

prox/
├── cmd/
│   └── prox/
│       └── main.go           # CLI entrypoint
├── internal/
│   ├── config/               # YAML parsing, validation
│   ├── supervisor/           # Process orchestration
│   ├── logs/                 # Log buffer, subscriptions
│   ├── api/                  # HTTP server and handlers
│   ├── tui/                  # Bubbletea TUI
│   └── cli/                  # CLI command definitions
├── docs/                     # Documentation
├── prox.yaml                 # Example config
├── go.mod
└── go.sum

Running Tests

make test

Or without make:

go test -v ./...

Linting

Install golangci-lint:

go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest

Run linter:

make lint

Or without make:

golangci-lint run

Documentation

The documentation site uses MkDocs with Material theme.

# Install dependencies
uv sync --group docs

# Local preview (http://127.0.0.1:7070)
uv run mkdocs serve

# Build static site
uv run mkdocs build