1
0
Fork 0
peertube/support/docker/production/docker-compose.yml

103 lines
3.0 KiB
YAML
Raw Normal View History

version: "3.3"
services:
# The reverse-proxy only does SSL termination and automatic certificate generation. You can
# replace it with any other reverse-proxy, in which case you can remove 'traefik.*' labels.
reverse-proxy:
2019-10-21 09:17:43 +00:00
image: traefik:v1.7
network_mode: "host"
command:
- "--docker" # Tells Træfik to listen to docker
- "--acme.email=${TRAEFIK_ACME_EMAIL}" # Let's Encrypt ACME email
- "--acme.domains=${TRAEFIK_ACME_DOMAINS}" # Let's Encrypt ACME domain list
ports:
- "80:80" # The HTTP port
- "443:443" # The HTTPS port
volumes:
- /var/run/docker.sock:/var/run/docker.sock # So that Træfik can listen to the Docker events
- ./docker-volume/traefik/acme.json:/etc/acme.json
- ./docker-volume/traefik/traefik.toml:/traefik.toml
restart: "always"
# The webserver is not required, but recommended since a lot of optimizations went to its
# nginx configuration file. It runs the default nginx configuration without HTTPS nor SSL,
# so use it in production in tandem with an SSL-terminating reverse-proxy like above.
webserver:
build:
context: .
dockerfile: Dockerfile.nginx
2018-08-14 08:13:17 +00:00
env_file:
- .env
# If you provide your own reverse-proxy, otherwise not suitable for production:
#ports:
# - "80:80"
volumes:
- type: bind
# Switch sources if you downloaded the nginx configuration without the whole repository
#source: ./peertube
source: ../../nginx/peertube
target: /etc/nginx/conf.d/peertube.template
- assets:/var/www/peertube/peertube-latest/client/dist:ro
- ./docker-volume/data:/var/www/peertube/storage
depends_on:
- peertube
restart: "always"
labels:
traefik.enable: "true"
2018-05-07 16:39:42 +00:00
traefik.frontend.rule: "Host:${PEERTUBE_WEBSERVER_HOSTNAME}"
traefik.port: "80"
peertube:
# If you don't want to use the official image and build one from sources:
#build:
# context: .
# dockerfile: ./support/docker/production/Dockerfile.buster
image: chocobozzz/peertube:production-buster
env_file:
- .env
# If you provide your own webserver and reverse-proxy, otherwise not suitable for production:
#ports:
# - "80:9000"
volumes:
- assets:/app/client/dist
2018-05-07 16:39:42 +00:00
- ./docker-volume/data:/data
- ./docker-volume/config:/config
depends_on:
- postgres
- redis
- postfix
restart: "always"
postgres:
image: postgres:12-alpine
env_file:
- .env
volumes:
2018-05-07 16:39:42 +00:00
- ./docker-volume/db:/var/lib/postgresql/data
restart: "always"
redis:
image: redis:5-alpine
volumes:
2018-05-07 16:39:42 +00:00
- ./docker-volume/redis:/data
restart: "always"
postfix:
image: mwader/postfix-relay
env_file:
- .env
2020-03-10 14:14:19 +00:00
volumes:
- ./docker-volume/opendkim/keys:/etc/opendkim/keys
restart: "always"
networks:
default:
ipam:
driver: default
config:
- subnet: 172.18.0.0/16
volumes:
assets: