]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - support/docker/production/docker-compose.yml
Docker config directory as volume
[github/Chocobozzz/PeerTube.git] / support / docker / production / docker-compose.yml
1 version: "3.3"
2
3 services:
4
5 peertube:
6 # If you don't want to use the official image and build one from sources
7 # build:
8 # context: .
9 # dockerfile: ./support/docker/production/Dockerfile.stretch
10 image: chocobozzz/peertube:production-stretch
11 environment:
12 PEERTUBE_WEBSERVER_HOSTNAME: my.domain.tld
13 PEERTUBE_WEBSERVER_PORT: 443
14 PEERTUBE_WEBSERVER_HTTPS: "true"
15 PEERTUBE_ADMIN_EMAIL: admin@domain.tld
16 PEERTUBE_DB_HOSTNAME: postgres
17 PEERTUBE_DB_USERNAME: postgres_user
18 PEERTUBE_DB_PASSWORD: postgres_password
19 PEERTUBE_SIGNUP_ENABLED: "true"
20 PEERTUBE_TRANSCODING_ENABLED: "true"
21 PEERTUBE_REDIS_HOSTNAME: redis
22 PEERTUBE_SMTP_HOSTNAME: null
23 PEERTUBE_SMTP_PORT: 25
24 PEERTUBE_SMTP_FROM: noreply@peertube.domain.tld
25 PEERTUBE_SMTP_TLS: "true"
26 # Traefik labels are suggested as an example for people using Traefik,
27 # remove them if you are using another reverse proxy.
28 labels:
29 traefik.enable: "true"
30 traefik.frontend.rule: "Host:${PEERTUBE_WEBSERVER_HOSTNAME}"
31 traefik.port: "9000"
32 # If you don't want to use a reverse proxy (not suitable for production!)
33 # ports:
34 # - "80:9000"
35 volumes:
36 - ./docker-volume/data:/data
37 - ./docker-volume/config:/config
38 depends_on:
39 - postgres
40 - redis
41 restart: "always"
42
43 postgres:
44 image: postgres:10-alpine
45 environment:
46 POSTGRES_USER: postgres_user
47 POSTGRES_PASSWORD: postgres_password
48 POSTGRES_DB: peertube
49 volumes:
50 - ./docker-volume/db:/var/lib/postgresql/data
51 restart: "always"
52
53 redis:
54 image: redis:4-alpine
55 volumes:
56 - ./docker-volume/redis:/data
57 restart: "always"