Skip to main content
From v5.1.0 onwards — PDF generation now runs entirely client-side via @react-pdf/renderer. None of the examples below require a Browserless or Chromium service. Older configurations that still define a printer service or set BROWSERLESS_TOKEN / PRINTER_* will continue to start, but those services are inert and can be removed.

Overview

Every self-hosted setup is unique. You might be running on a single VPS, a Kubernetes cluster, behind Cloudflare Tunnel, or using a specific reverse proxy like Traefik or nginx. This page provides real-world Docker Compose configurations for various deployment scenarios to help you get started faster. These examples go beyond the basic setup in the Self-Hosting with Docker guide, showing production-ready configurations with reverse proxies, SSL termination, and other common patterns.
Help others by sharing your setup! If you have a working configuration that isn’t covered here, I’d love to include it. Simply open a pull request with your example added to this page. Your contribution helps the community and makes self-hosting easier for everyone.

Docker with Traefik

This example uses Traefik as a reverse proxy with automatic SSL certificate management via Let’s Encrypt. Only the Reactive Resume app is exposed through Traefik—Postgres remains on an internal network.
Traefik automatically discovers services via Docker labels and handles SSL certificates, making it ideal for setups where you want minimal configuration.
compose-traefik.yml
Environment variables (.env):
.env

Docker with nginx

This example uses nginx as a reverse proxy with SSL certificates (you’ll need to provide your own certificates or use certbot separately).
compose-nginx.yml
nginx configuration (nginx.conf):
nginx.conf
For automatic SSL certificates with nginx, consider using certbot with the --nginx plugin, or a companion container like nginx-proxy-acme.

Docker Swarm

This example demonstrates a production-grade Docker Swarm deployment with multiple replicas, health checks, rolling updates, and Traefik integration. It includes SeaweedFS for S3-compatible storage and a PostgreSQL database with custom configuration.
Docker Swarm is great for multi-node deployments where you need high availability and easy scaling. The app service is configured with 2 replicas and rolling update strategy.
compose-swarm.yml
Deploy the stack:
Useful commands:
This example assumes you have an external Traefik network already set up. Adjust the traefik_network reference and labels based on your Traefik configuration.

Contributing Your Setup

Have a different deployment setup that works well? Consider contributing it here. Some examples include:
  • Kubernetes / Helm charts
  • Cloudflare Tunnel
  • Caddy reverse proxy
  • Docker with Portainer
  • Podman configurations
  • Cloud-specific deployments (AWS ECS, Google Cloud Run, Azure Container Apps)
To contribute, open a pull request with your example added to this page. Include:
  1. A brief description of when/why someone would use this setup
  2. The complete Docker Compose (or equivalent) configuration
  3. Any additional configuration files (nginx.conf, etc.)
  4. Required environment variables