Installation
From source to your own HTTPS relay.
Install Pepe.
Install Go 1.25 or newer, then build the current source:
go install github.com/runpepe/pepe/cmd/pepe@main
export PATH="$(go env GOPATH)/bin:$PATH"
pepe version
pepe helpFor an explicit checkout or a build you want to deploy:
git clone https://github.com/runpepe/pepe.git
cd pepe
go build -o pepe ./cmd/pepe
./pepe versionNo Node.js or Python runtime is required to run the resulting binary.
Give it a public address.
Point an A record such as pepe.example.com at your Linux server. Install Caddy from its official OS package and allow inbound TCP ports 80 and 443.
sudo pepe install --domain pepe.example.com --proxy caddyIf Caddy already has a configuration, add import /etc/caddy/pepe.caddy to it first. Pepe creates its own configuration fragment; it does not replace the rest of your proxy configuration.
The installer creates an unprivileged service account, generates credentials, and starts pepe.service. Caddy handles TLS certificates and renewal. Verify both services:
sudo systemctl status pepe caddy
curl https://pepe.example.com/healthzThe health endpoint should return {"status":"ok"}. For another reverse proxy, install only Pepe:
sudo pepe install --public-url https://pepe.example.comForward the public HTTPS endpoint to 127.0.0.1:8080. Keep the upstream listener private. To inspect the installation before making changes, add --dry-run.