]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - support/docker/production/docker-compose.yml
Chore/docker-documentation-improvements (#2494)
[github/Chocobozzz/PeerTube.git] / support / docker / production / docker-compose.yml
1 version: "3.3"
2
3 services:
4
5 reverse-proxy:
6 image: traefik:v1.7
7 network_mode: "host"
8 command:
9 - "--docker" # Tells Træfik to listen to docker
10 - "--acme.email=${TRAEFIK_ACME_EMAIL}" # Let's Encrypt ACME email
11 - "--acme.domains=${TRAEFIK_ACME_DOMAINS}" # Let's Encrypt ACME domain list
12 ports:
13 - "80:80" # The HTTP port
14 - "443:443" # The HTTPS port
15 volumes:
16 - /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events
17 - ./docker-volume/traefik/acme.json:/etc/acme.json
18 - ./docker-volume/traefik/traefik.toml:/traefik.toml
19 restart: "always"
20 # If you want to use the Traefik dashboard, you should expose it on a
21 # subdomain with HTTPS and authentification:
22 # https://medium.com/@xavier.priour/secure-traefik-dashboard-with-https-and-password-in-docker-5b657e2aa15f
23 # https://github.com/containous/traefik/issues/880#issuecomment-310301168
24
25 peertube:
26 # If you don't want to use the official image and build one from sources
27 # build:
28 # context: .
29 # dockerfile: ./support/docker/production/Dockerfile.buster
30 image: chocobozzz/peertube:production-buster
31 env_file:
32 - .env
33 # Traefik labels are suggested as an example for people using Traefik,
34 # remove them if you are using another reverse proxy.
35 labels:
36 traefik.enable: "true"
37 traefik.frontend.rule: "Host:${PEERTUBE_WEBSERVER_HOSTNAME}"
38 traefik.port: "9000"
39 # If you don't want to use a reverse proxy (not suitable for production!)
40 # ports:
41 # - "80:9000"
42 volumes:
43 - ./docker-volume/data:/data
44 - ./docker-volume/config:/config
45 depends_on:
46 - postgres
47 - redis
48 - postfix
49 restart: "always"
50
51 postgres:
52 image: postgres:10-alpine
53 env_file:
54 - .env
55 volumes:
56 - ./docker-volume/db:/var/lib/postgresql/data
57 restart: "always"
58 labels:
59 traefik.enable: "false"
60
61 redis:
62 image: redis:4-alpine
63 volumes:
64 - ./docker-volume/redis:/data
65 restart: "always"
66 labels:
67 traefik.enable: "false"
68
69 postfix:
70 image: mwader/postfix-relay
71 env_file:
72 - .env
73 labels:
74 traefik.enable: "false"
75 restart: "always"
76
77 networks:
78 default:
79 ipam:
80 driver: default
81 config:
82 - subnet: 172.18.0.0/16