Installing printing press

All the ways to install the printing press.

printing press installs a binary called ppress. It is available via release binaries, npm, Homebrew, and Docker.

Installing with cURL

Use the installer on macOS or Linux:

curl -fsSL https://pb33f.io/printing-press/install.sh | sh

The installer downloads the latest GitHub release, verifies the checksum, and installs ppress.

In CI, set GITHUB_TOKEN to avoid GitHub API rate limits:

GITHUB_TOKEN="${GITHUB_TOKEN}" curl -fsSL https://pb33f.io/printing-press/install.sh | sh

Installing with npm

npm i -g @pb33f/printing-press

The npm package exposes ppress and is the most convenient install path for Windows.

The package requires Node 20 or newer.


Installing with Homebrew

brew install pb33f/taps/printing-press

The Homebrew cask installs ppress.


Running with Docker

The release image is published to GitHub Container Registry:

docker run --rm ghcr.io/pb33f/printing-press:latest version

Render docs from the current directory:

docker run --rm -v "$PWD:/work" -w /work ghcr.io/pb33f/printing-press:latest ./openapi.yaml

When the input tree should stay read-only, mount a separate output directory:

mkdir -p ./api-docs docker run --rm \ --mount type=bind,src="$PWD",target=/src,readonly \ --mount type=bind,src="$PWD/api-docs",target=/out \ -w /src \ ghcr.io/pb33f/printing-press:latest \ --output /out ./openapi.yaml

Serve generated docs from the container:

docker run --rm \ -p 9090:9090 \ --mount type=bind,src="$PWD",target=/work \ -w /work \ ghcr.io/pb33f/printing-press:latest \ --serve --port 9090 ./openapi.yaml

The image uses ppress as the entrypoint and /work as the default working directory.

On Linux, add --user "$(id -u):$(id -g)" for bind-mounted runs when you want generated files owned by your current user.


Installing with Go

go install github.com/pb33f/printing-press@latest

Go names the binary printing-press because it derives command names from the module path.

If you install with Go, run:

printing-press version

For every other install path, run:

ppress version ppress version --verbose