version: "3.3" services: reverse-proxy: image: traefik command: --api --docker # Enables the web UI and tells Træfik to listen to docker ports: - "80:80" # The HTTP port - "443:443" # The HTTPS port - "8080:8080" # The Web UI (enabled by --api) volumes: - /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events - ./docker-volume/traefik/acme.json:/etc/acme.json - ./docker-volume/traefik/traefik.toml:/traefik.toml restart: "always" peertube: # If you don't want to use the official image and build one from sources # build: # context: . # dockerfile: ./support/docker/production/Dockerfile.stretch image: chocobozzz/peertube:production-stretch environment: PEERTUBE_WEBSERVER_HOSTNAME: ${PEERTUBE_WEBSERVER_HOSTNAME} PEERTUBE_WEBSERVER_PORT: ${PEERTUBE_WEBSERVER_PORT} PEERTUBE_WEBSERVER_HTTPS: ${PEERTUBE_WEBSERVER_HTTPS} PEERTUBE_DB_HOSTNAME: postgres PEERTUBE_DB_USERNAME: ${DB_USERNAME} PEERTUBE_DB_PASSWORD: ${DB_PASSWORD} PEERTUBE_REDIS_HOSTNAME: redis PEERTUBE_SMTP_USERNAME: ${PEERTUBE_SMTP_USERNAME} PEERTUBE_SMTP_PASSWORD: ${PEERTUBE_SMTP_PASSWORD} PEERTUBE_SMTP_HOSTNAME: ${PEERTUBE_SMTP_HOSTNAME} PEERTUBE_SMTP_PORT: ${PEERTUBE_SMTP_PORT} PEERTUBE_SMTP_FROM: ${PEERTUBE_SMTP_FROM} PEERTUBE_SMTP_TLS: ${PEERTUBE_SMTP_TLS} # /!\ Prefer to use the PeerTube admin interface to set the following configurations /!\ # PEERTUBE_ADMIN_EMAIL: ${PEERTUBE_ADMIN_EMAIL} # PEERTUBE_SIGNUP_ENABLED: ${PEERTUBE_SIGNUP_ENABLED} # PEERTUBE_TRANSCODING_ENABLED: ${PEERTUBE_TRANSCODING_ENABLED} # Traefik labels are suggested as an example for people using Traefik, # remove them if you are using another reverse proxy. labels: traefik.enable: "true" traefik.frontend.rule: "Host:${PEERTUBE_WEBSERVER_HOSTNAME}" traefik.port: "9000" # If you don't want to use a reverse proxy (not suitable for production!) # ports: # - "80:9000" volumes: - ./docker-volume/data:/data - ./docker-volume/config:/config depends_on: - postgres - redis restart: "always" postgres: image: postgres:10-alpine environment: POSTGRES_USER: ${DB_USERNAME} POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: peertube volumes: - ./docker-volume/db:/var/lib/postgresql/data restart: "always" labels: traefik.enable: "false" redis: image: redis:4-alpine volumes: - ./docker-volume/redis:/data restart: "always" labels: traefik.enable: "false"