Quick start

Quick start · Step 1

Set up the runtime

Start Postgres and phrony-runtime locally, then install the phrony operator CLI.

Everything in this quick start runs on your machine. First you bring up the runtime—a long-lived daemon (phrony-runtime) backed by Postgres—and install the phrony CLI to talk to it on port 7777.

Prerequisites

Docker Desktop or Docker Engine, and Go 1.25+ to install the operator CLI. The runtime itself is pulled from the official image ghcr.io/phrony-platform/phrony-runtime:latest.

Start the stack

Create a working directory, download the Compose file, and start Postgres plus the runtime:

terminal
$ mkdir phrony-runtime && cd phrony-runtime
$ curl -fsSLO https://phrony.com/runtime/docker-compose.yml
$ docker compose up -d --wait

Compose waits for Postgres to become healthy, pulls ghcr.io/phrony-platform/phrony-runtime:latest, applies migrations, and listens on 127.0.0.1:7777. Stop the stack with docker compose down.

Compose file

The same file is available at /runtime/docker-compose.yml and in the runtime repository docs.

docker-compose.yml
services:
  postgres:
    image: postgres:16
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: phrony_runtime
      POSTGRES_PASSWORD: phrony_runtime
      POSTGRES_DB: phrony_runtime
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U phrony_runtime -d phrony_runtime"]
      interval: 5s
      timeout: 5s
      retries: 5

  runtime:
    image: ghcr.io/phrony-platform/phrony-runtime:latest
    ports:
      - "7777:7777"
    environment:
      RUNTIME_DATABASE_URL: postgres://phrony_runtime:phrony_runtime@postgres:5432/phrony_runtime?sslmode=disable
      RUNTIME_GRPC_ADDR: 0.0.0.0:7777
      # Dev-only placeholder; replace per environment (openssl rand -base64 32)
      RUNTIME_SECRETS_ENCRYPTION_KEY: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
      RUNTIME_DISPATCH_QUEUE_WAIT: "5s"
    depends_on:
      postgres:
        condition: service_healthy

Install the operator CLI

Install phrony with Go and ensure $(go env GOPATH)/bin is on your PATH:

terminal
$ go install github.com/phrony-platform/runtime/cmd/cli@latest
$ mv -f "$(go env GOPATH)/bin/cli" "$(go env GOPATH)/bin/phrony"

Or clone the runtime repository and run make install-cli if you are hacking on the daemon.

Verify

terminal
$ phrony status

You should see the runtime reachable at the default address. Pass --runtime-addr to override 127.0.0.1:7777.

Binaries

BinaryRole
phrony-runtime
Daemon: Postgres, gRPC server, runs agent sessions
phrony
Operator CLI—talks to the daemon and works with manifest files