Skip to content

Instantly share code, notes, and snippets.

@ancs21
Created May 25, 2024 08:40
Show Gist options
  • Save ancs21/cb05295038b7f232dfad29e9bdb5494c to your computer and use it in GitHub Desktop.
Save ancs21/cb05295038b7f232dfad29e9bdb5494c to your computer and use it in GitHub Desktop.
Docker PostgreSQL SSL via Traefik Proxy
version: '3.9'
services:
reverse-proxy:
image: traefik:v3.0
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.dbsecure.address=:5432"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "--certificatesresolvers.myresolver.acme.email=email@example.com"
- "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
- "--log.level=DEBUG"
ports:
- "5432:5432"
- "127.0.0.1:8080:8080"
volumes:
- letsencrypt:/letsencrypt
- /var/run/docker.sock:/var/run/docker.sock
pg:
image: postgres:15-alpine
container_name: pg
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
command:
- -c
- wal_level=logical
volumes:
- pgdata:/var/lib/postgresql/data
labels:
- traefik.enable=true
- traefik.tcp.routers.pg.rule=HostSNI(`pg.example.com`)
- traefik.tcp.routers.pg.entrypoints=dbsecure
- traefik.tcp.routers.pg.tls.certresolver=myresolver
volumes:
pgdata:
letsencrypt:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment