When you run several web apps in containers on one VPS, you need a reverse proxy to route requests to the right container and handle HTTPS. Two popular options are Nginx and Traefik.

Nginx as a reverse proxy

A well-understood, high-performance choice. You run Nginx (on the host or in a container) and configure it to forward each domain to a container port:

location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
}

Add HTTPS with Certbot. It's manual but transparent and flexible.

Traefik

Traefik is built for containers. It watches Docker labels and automatically configures routing and Let's Encrypt certificates as you start and stop containers — no manual config edits:

labels:
  - "traefik.http.routers.app.rule=Host(`app.example.com`)"
  - "traefik.http.routers.app.tls.certresolver=le"

Which to choose

  • Few, stable services: Nginx is simple and battle-tested.
  • Many dynamic containers: Traefik's automation shines.

Either runs comfortably on a single OneHost VPS with dedicated resources.