docs/docs/examples/compose/nginx-proxy/README.md
Jan Conen 886dcb75d5
📝(self-hosted) commands copy-pastable
Make bash commands copy-pastable by prepending
the foldername to the commands.

Signed-off-by: Jan Conen <janconen@hotmail.com>
2025-08-05 11:47:44 +02:00

1.6 KiB

Nginx proxy with automatic SSL certificates

!CAUTION

We provide those instructions as an example, for extended development or production environments, you should follow the official documentation.

Nginx-proxy sets up a container running nginx and docker-gen. docker-gen generates reverse proxy configs for nginx and reloads nginx when containers are started and stopped.

Acme-companion is a lightweight companion container for nginx-proxy. It handles the automated creation, renewal and use of SSL certificates for proxied Docker containers through the ACME protocol.

Installation

Step 1: Prepare your working environment:

mkdir nginx-proxy
curl -o nginx-proxy/compose.yaml https://raw.githubusercontent.com/suitenumerique/docs/refs/heads/main/docs/examples/compose/nginx-proxy/compose.yaml

Step 2: Edit DEFAULT_EMAIL in the compose file.

Albeit optional, it is recommended to provide a valid default email address through the DEFAULT_EMAIL environment variable, so that Let's Encrypt can warn you about expiring certificates and allow you to recover your account.

Step 3: Create docker network

Containers need share the same network for auto-discovery.

docker network create proxy-tier

Step 4: Start service

docker compose up -d

Usage

Once both nginx-proxy and acme-companion containers are up and running, start any container you want proxied with environment variables VIRTUAL_HOST and LETSENCRYPT_HOST both set to the domain(s) your proxied container is going to use.