version: "3.3" services: app: image: peertube:stretch environment: PEERTUBE_HOSTNAME: my.domain.tld PEERTUBE_PORT: 443 PEERTUBE_HTTPS: true PEERTUBE_ADMIN_EMAIL: admin@domain.tld PEERTUBE_DB_USERNAME: user PEERTUBE_DB_PASSWORD: password PEERTUBE_SIGNUP_ENABLED: true PEERTUBE_TRANSCODING_ENABLED: true labels: &labels traefik.frontend.rule: "Host:my.domain.tld" traefik.docker.network: traefik traefik.port: "9000" volumes: - app_data:/usr/src/app/data networks: - traefik - backend depends_on: - db deploy: labels: *labels placement: constraints: - node.labels.peertube == 1 db: image: postgres:10 environment: POSTGRES_DB: peertube_prod volumes: - db_data:/var/lib/postgresql/data networks: - backend deploy: placement: constraints: - node.labels.peertube == 1 volumes: app_data: db_data: networks: backend: traefik: external: true