AWS Lightsail Hetzner auto TLS

Full-fidelity preview environments for GitHub

PullPreview is a GitHub Action that automatically deploys your pull requests to your own AWS Lightsail or Hetzner infrastructure. Works with any app that runs with Docker Compose.

git push → labeled PR → ⚡ live preview

Open Update message of the day #5 main ← demo
  1. 1Add label
  2. 2Deploy
  3. 3Preview
Labels none yet
The pullpreview label triggers a deploy to your own cloud.
github-actionsbotcommented now

Deploying demo with PullPreview

FieldValue
Latest commit180158d
Jobdeploy
Status ⏳ Deploying preview…
Preview URL Pending
View logs
github-actionsbotcommented now

Deploying demo with PullPreview

FieldValue
Latest commit180158d
Jobdeploy
Status ✅ Deploy successful
Preview URL https://pr-5-demo-20260210-ip-18-212-125.rev1.click
View logs

// features

Real environments, not screenshots

Fits your existing setup
If your app runs with Docker Compose, it runs as a PullPreview environment. No rewrites.
Runs in your cloud account
AWS Lightsail by default, Hetzner as an alternative. Your code and data stay yours.
Tied to the PR lifecycle
Create on label, redeploy on push, status comments, and cleanup on unlabel.
State across redeploys
Docker volumes persist preview data between deploys.
Auto HTTPS & custom domains
proxy_tls injects a Caddy sidecar and handles Let’s Encrypt for you.
Scoped SSH access
Reviewers get SSH via their installed GitHub user keys — nothing extra to manage.

// git push, deployed

Drop one step into your workflow

.github/workflows/pullpreview.yml
name: PullPreview
on:
pull_request:
types: [labeled, unlabeled, synchronize, reopened, opened, closed]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: pullpreview/action@v6
with:
provider: lightsail
instance_type: nano
compose_files: docker-compose.yml
proxy_tls: web:80
ttl: 1h
01
Checks out your code
Standard actions/checkout — nothing proprietary.
02
Provisions an instance
A VM with Docker + Compose on your chosen provider.
03
Deploys continuously
Every push to the labeled PR redeploys in place.
04
Reports the URL
The preview link is posted back into the pull request.
Deploys with Docker Compose Helm

// for the whole team

Useful for everyone, not just ops

Product Owners

Interact with new features as they’re built and catch issues earlier.

Developers

Share work in progress with instant, reproducible review environments.

Ops

Keep operational ownership inside your own cloud account.

CTOs

Avoid third-party SaaS lock-in — code and data stay in GitHub and your servers.

// testimonials

Teams ship reviews faster

It saved us thousands in development costs, and the monthly cost of the Lightsail instances is immaterial compared to SaaS tools that want to license on a per user or per repository basis.
CK Casey Kinsey — CEO, HireLofty
An incredibly valuable tool for enhancing my workflow and improving collaboration with my team. One of the standout features of this action is its ease of setup.
NR Neil Raina — CTO, Copilot
We were stuck trying out lots of different managed solutions with Vercel, Render etc, but they all had problems. Using docker-compose with self-hosting made it so much simpler 👍
T Tristan — Lead Engineer, Layer3
We were struggling with product reviews, as we performed them too late on the developpement cycle and faced difficulties to isolate the issues. It lead to long threads, frictions and was energy and time consuming for both technical and product teams. Then came PullPreview: an easy way to review PRs for product teams and ease communication between developers and PM/Designers.
AF Adam Feral — Head of Product, Malo

// pricing

Open source. Fair commercial license.

300€ / year, per organization
  • Non-profit individual use can be free
  • You pay only your provider’s compute — no per-preview markup
  • All updates included
Purchase license

The action is open source; commercial use is licensed separately. For each preview you pay your provider’s compute cost only — no extra per-preview markup.