-
Notifications
You must be signed in to change notification settings - Fork 16
Cyril Rohr edited this page Mar 13, 2026
·
4 revisions
Use the pullpreview binary for local debugging, manual deployments, and provider validation outside GitHub Actions.
Download a release binary from GitHub Releases and add it to your PATH, or build from source.
Build from source with the repo toolchain:
mise exec -- go run ./cmd/pullpreview --help
mise exec -- go build -o pullpreview ./cmd/pullpreview# Deploy a local project
pullpreview up ./path/to/app --name pullpreview-local --instance-type small --region us-east-1
# List deployments created by PullPreview
pullpreview list
pullpreview list my-org/my-repo
# Destroy a deployment by instance name
pullpreview down --name pullpreview-localOther command:
pullpreview github-sync ./path/to/appUse --deployment-target to choose the runtime:
-
composeis the default -
helmbootstraps k3s and deploys a Helm chart
pullpreview up ./examples/workflow-smoke \
--name pullpreview-local-compose \
--deployment-target compose \
--compose-files docker-compose.yml \
--compose-options=--build \
--proxy-tls web:8080pullpreview up ./examples/openproject \
--name pullpreview-local-helm \
--deployment-target helm \
--chart ./chart \
--chart-values values-preview.yaml \
--chart-set 'baseUrl={{pullpreview_url}}' \
--proxy-tls '{{release_name}}-web:80'Helm rules:
-
--chartis required. -
--proxy-tlsis required. -
--registriesis not supported. - Custom
--compose-filesand--compose-optionsare not supported.
For provider: hetzner, set:
PULLPREVIEW_PROVIDER=hetznerHCLOUD_TOKENHETZNER_CA_KEY
Example:
PULLPREVIEW_PROVIDER=hetzner \
HETZNER_CA_KEY="$(cat ~/.ssh/hetzner_ca_key)" \
HCLOUD_TOKEN=... \
pullpreview up ./path/to/app \
--deployment-target helm \
--chart ./charts/my-app \
--proxy-tls '{{release_name}}-web:80' \
--region nbg1 \
--image ubuntu-24.04 \
--instance-type cpx21Generate a compatible CA key with:
ssh-keygen -t rsa -b 3072 -m PEM -N "" -f ~/.ssh/hetzner_ca_keyIf you keep values in a .env file, load them first:
set -a
. ./.env
set +a-
upaccepts a local path or a Git URL asapp_path. -
listoptionally acceptsorg/repoas a positional argument. -
downaccepts either normalized instance names or existingpullpreview-*context-style names. -
--region,--image, and--instance-typeare the provider sizing/location knobs exposed by both the CLI and the GitHub Action.