X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=support%2Fdocker%2Fproduction%2Fdocker-compose.yml;h=9f6c47eca388178d53868b94b8c994287b6c6c7c;hb=72698686828b7b80a336d83fdbb1707e3b7a61fe;hp=db1c7d587304cf0820c34a552d9268b63cacbdf4;hpb=e8395f027b6c3e3f757c740e35b20e76c51b03bd;p=github%2FChocobozzz%2FPeerTube.git diff --git a/support/docker/production/docker-compose.yml b/support/docker/production/docker-compose.yml index db1c7d587..9f6c47eca 100644 --- a/support/docker/production/docker-compose.yml +++ b/support/docker/production/docker-compose.yml @@ -1,35 +1,79 @@ version: "3.3" services: - peertube: - build: . - 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 + 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: + # 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 + 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:/usr/src/app/data + - ./docker-volume/data:/data + - ./docker-volume/config:/config depends_on: - - db + - postgres + - redis + - postfix + restart: "always" - db: - image: postgres:10 - environment: - POSTGRES_USERNAME: user - POSTGRES_PASSWORD: password - POSTGRES_DB: peertube_prod + postgres: + image: postgres:10-alpine + 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: + - ./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