pullpreview/Preview Environments for GitHub

Ephemeral preview deployments of your app for every pull request.

View on GitHub

Trust Signals

Scorecard Score
Scorecard 2–4scored Jul 6, 2026
Maintenance Recency
Activelast commit Mar 13, 2026
License
None

Pinned Snippet

workflow.ymlSHA-pinned
uses: pullpreview/action@179f963326f568dc1665707c796aaac590667632 # v6.2.0

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
app_pathThe path to your application containing a docker-compose fileno.
dnsWhich DNS suffix to usemy.preview.run
max_domain_lengthMaximum length of fully qualified domain name. Note that it cannot be greater than 62 characters due to LetsEncrypt restrictions.62
labelLabel to use for triggering preview deploymentspullpreview
github_tokenThe GitHub access token used to perform GitHub API operations (labels, comments, collaborator/keys lookup).${{ github.token }}
adminsLogins of GitHub users that will have their SSH key installed on the instance, comma-separatedno@collaborators/push
portsPorts to open for external access on the preview server (port 22 is always open), comma-separatedno80/tcp,443/tcp
cidrsThe IP address, or range of IP addresses in CIDR notation, that are allowed to connect to the instanceno0.0.0.0/0
default_portThe port to use when building the preview URLno80
compose_filesCompose files to use when running docker-compose up, comma-separatednodocker-compose.yml
compose_optionsAdditional options to pass to docker-compose up, comma-separatedno--build
deployment_targetDeployment target to use: compose or helm (helm supports Hetzner and Lightsail)nocompose
chartHelm chart reference: local path, repo chart name, or OCI reference (helm target only)no""
chart_repositoryHelm repository URL used when chart is a repo chart name (helm target only)no""
chart_valuesHelm values files relative to app_path, comma-separated (helm target only)no""
chart_setAdditional Helm --set overrides, comma-separated (helm target only)no""
licensePullPreview licenseno""
instance_typeInstance type to usenosmall
regionProvider region (AWS region or Hetzner location), overrides provider defaultsno""
deployment_variantDeployment variant, which allows launching multiple deployments per PR (4 chars max)no""
imageInstance image (Hetzner only; ignored by AWS)noubuntu-24.04
providerCloud provider to use: lightsail, hetznernolightsail
registriesNames of private registries to authenticate against for compose deployments. E.g. docker://username:password@ghcr.iono""
proxy_tlsEnable automatic HTTPS forwarding with Let's Encrypt (format: service:port, e.g. web:80)no""
pre_scriptPath to a local bash script (relative to app_path) executed inline over SSH on the instance before docker composeno""
templated_urlTemplate for the preview URL displayed in PR comments and outputs (use {{ pullpreview_url }} as placeholder, e.g. {{ pullpreview_url }}/custom/path?key=value)no""
ttlMaximum time to live for deployments (e.g. 10h, 5d, infinite)noinfinite
namedescription
liveWhether this run produced a live preview deployment
urlThe URL of the application on the preview server
hostThe hostname or IP address of the preview server
usernameThe username that can be used to SSH into the preview server