version: "3.3" services: traefik: image: traefik:1.7-alpine command: --docker # Tells Træfik to listen to docker ports: - "80:80" # The HTTP port - "443:443" # The HTTPS port volumes: - /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events - ./volumes/traefik/acme.json:/etc/acme.json - ./traefik.toml:/traefik.toml depends_on: - nginx restart: "always" # Required for view counter to work correctly # https://github.com/Chocobozzz/PeerTube/issues/1643#issuecomment-464789666 network_mode: "host" # If you want to use the Traefik dashboard, you should expose it on a # subdomain with HTTPS and authentification: # https://medium.com/@xavier.priour/secure-traefik-dashboard-with-https-and-password-in-docker-5b657e2aa15f # https://github.com/containous/traefik/issues/880#issuecomment-310301168 nginx: image: nginx:1.15-alpine volumes: - ./nginx.conf:/etc/nginx/nginx.conf labels: traefik.enable: "true" traefik.frontend.rule: "Host:${PEERTUBE_WEBSERVER_HOSTNAME}" traefik.port: "9000" depends_on: - peertube restart: "always" peertube: image: chocobozzz/peertube:v1.2.1-stretch env_file: - .env volumes: - ./volumes/data:/data - /mnt/external:/data-external - ./volumes/config:/config environment: - PEERTUBE_DB_USERNAME=${POSTGRES_USER} - PEERTUBE_DB_PASSWORD=${POSTGRES_PASSWORD} depends_on: - postgres - redis - postfix restart: "always" postgres: image: postgres:10-alpine volumes: - ./volumes/db:/var/lib/postgresql/data environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} restart: "always" redis: image: redis:5-alpine volumes: - ./volumes/redis:/data restart: "always" postfix: image: mwader/postfix-relay environment: - POSTFIX_myhostname=${PEERTUBE_WEBSERVER_HOSTNAME} restart: "always"