version: "3.3" services: peertube: build: context: ../../../ dockerfile: ./support/docker/production/Dockerfile.stretch image: peertube:stretch environment: PEERTUBE_HOSTNAME: my.domain.tld PEERTUBE_PORT: 443 PEERTUBE_HTTPS: "true" PEERTUBE_ADMIN_EMAIL: admin@domain.tld PEERTUBE_DB_HOSTNAME: postgres PEERTUBE_DB_USERNAME: postgres_user PEERTUBE_DB_PASSWORD: postgres_password PEERTUBE_SIGNUP_ENABLED: "true" PEERTUBE_TRANSCODING_ENABLED: "true" PEERTUBE_REDIS_HOSTNAME: redis PEERTUBE_SMTP_HOSTNAME: mail.domain.tld PEERTUBE_SMTP_PORT: 25 PEERTUBE_SMTP_FROM: noreply@peertube.domain.tld PEERTUBE_SMTP_TLS: "true" # 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_HOSTNAME}" traefik.port: "9000" volumes: - ./data:/usr/src/app/data depends_on: - postgres - redis restart: "always" postgres: image: postgres:10 environment: POSTGRES_USER: postgres_user POSTGRES_PASSWORD: postgres_password POSTGRES_DB: peertube volumes: - ./db:/var/lib/postgresql/data restart: "always" redis: image: redis volumes: - ./redis:/data restart: "always"