X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=support%2Fdocker%2Fproduction%2Fdocker-compose.yml;h=9f6c47eca388178d53868b94b8c994287b6c6c7c;hb=72698686828b7b80a336d83fdbb1707e3b7a61fe;hp=a7bac47c29e22010784afa0f6bc74d8625d823d8;hpb=4b431d519c6fb0feadb1339dfddcc889b9d33cfe;p=github%2FChocobozzz%2FPeerTube.git diff --git a/support/docker/production/docker-compose.yml b/support/docker/production/docker-compose.yml index a7bac47c2..9f6c47eca 100644 --- a/support/docker/production/docker-compose.yml +++ b/support/docker/production/docker-compose.yml @@ -2,54 +2,78 @@ version: "3.3" services: + reverse-proxy: + image: traefik:v1.7 + network_mode: "host" + 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 + - ./docker-volume/traefik/acme.json:/etc/acme.json + - ./docker-volume/traefik/traefik.toml:/traefik.toml + restart: "always" + # 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 + peertube: - build: - context: . - dockerfile: ./support/docker/production/Dockerfile.stretch + # 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_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: null - PEERTUBE_SMTP_PORT: 25 - PEERTUBE_SMTP_FROM: noreply@peertube.domain.tld - PEERTUBE_SMTP_TLS: "true" + env_file: + - .env # 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.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: - - ./data:/data + - ./docker-volume/data:/data + - ./docker-volume/config:/config depends_on: - postgres - redis + - postfix restart: "always" postgres: image: postgres:10-alpine - environment: - POSTGRES_USER: postgres_user - POSTGRES_PASSWORD: postgres_password - POSTGRES_DB: peertube + env_file: + - .env volumes: - - ./db:/var/lib/postgresql/data + - ./docker-volume/db:/var/lib/postgresql/data restart: "always" + labels: + traefik.enable: "false" redis: image: redis:4-alpine volumes: - - ./redis:/data + - ./docker-volume/redis:/data restart: "always" + labels: + traefik.enable: "false" + + postfix: + image: mwader/postfix-relay + env_file: + - .env + labels: + traefik.enable: "false" + restart: "always" + +networks: + default: + ipam: + driver: default + config: + - subnet: 172.18.0.0/16