Install
Every builder path starts from a checkout of the repo and the pal CLI, a Go binary you build once (or install with Homebrew). To look around without installing the CLI, make demo needs only Docker (Try it: the demo). To start the local stack, see Develop locally.
Prerequisites
Section titled “Prerequisites”| Tool | Version | Needed for | Homebrew |
|---|---|---|---|
| Docker Desktop | with docker compose (Compose v2) |
Postgres, Redis, MinIO and the demo | brew install --cask docker |
| Go | 1.26+ | The pal CLI and the control plane on the host |
brew install go |
| Node.js | 22+ | The dashboard and the bridges | brew install node |
| Git | any | Cloning | brew install git |
| Rust | 1.94, pinned in rust-toolchain.toml |
Only make build and make test of the Rust services |
brew install rustup |
Install with Homebrew
Section titled “Install with Homebrew”If you only need the CLI, install it from the project tap. Homebrew builds pal from the latest tagged release, so Go is a build dependency (brew installs it for you).
brew install dshakes/tap/palpal --versionBuild the CLI
Section titled “Build the CLI”-
Clone the repo.
Terminal window git clone https://github.com/dshakes/pal.gitcd pal -
Build
palinto your Go bin directory.Terminal window (cd packages/cli && go build -o "$(go env GOPATH)/bin/pal" ./cmd/pal) -
Check that it runs. If the shell says
pal: command not found, add$(go env GOPATH)/binto yourPATH.Terminal window pal --help
Once the stack is up (see Develop locally), pal doctor checks it and prints a fix for each failing check. make dev-doctor probes every service from the Makefile instead.
Dev credentials
Section titled “Dev credentials”The local stack seeds these on first boot. They are the literal seeded values.
| Service | Value |
|---|---|
| PostgreSQL | postgres://pal:pal@localhost:5432/pal?sslmode=disable |
| Redis | redis://localhost:6379 |
| MinIO | http://localhost:9000, console :9001, pal / palsecret |
| Dashboard | admin@pal.local / pal at http://localhost:3001 |
| Dev tenant | 00000000-0000-0000-0000-000000000001 (slug dev) |
| Dev user | 00000000-0000-0000-0000-000000000002 (role owner) |
Service ports
Section titled “Service ports”pal dev runs the control plane and the dashboard. make dev adds the rest, except the surface-gateway, which you run yourself.
| Service | Port | Protocol |
|---|---|---|
| control plane | :8080 |
REST, health, SSE |
| control plane (gRPC) | :50051 |
gRPC |
| dashboard | :3001 |
HTTP |
| workflow engine | :50052 |
gRPC |
| model router | :50053 |
gRPC |
| runtime manager | :50054 |
gRPC |
| runtime scheduler | :50055 / :8085 |
gRPC / REST |
| gateway | :8443 |
HTTPS |
| surface gateway | :8444 |
HTTP webhooks |
| PostgreSQL, Redis | :5432, :6379 |
postgres, redis |
| MinIO | :9000 / :9001 |
S3 / console |
Make targets
Section titled “Make targets”| Target | What it does |
|---|---|
make dev |
The full docker-compose stack |
make dev-infra |
Postgres and Redis only; pal dev --infra-only adds MinIO |
make run-api |
The control plane on :8080 |
make dashboard-dev |
The dashboard on :3001 |
make dev-doctor |
Health-check every service |
make build / make test / make lint |
Compile, test, lint all languages |
make ci-local |
Lint, test and audit, the same matrix as CI |
make proto |
Regenerate from .proto files |
make clean |
Remove artifacts and docker volumes |
Next: Try it: the demo or Quickstart in 60 seconds.