version: "3.3" services: # You can comment this webserver section if you want to use another webserver/proxy or test PeerTube in local webserver: image: chocobozzz/peertube-webserver:latest # If you don't want to use the official image and build one from sources: # build: # context: . # dockerfile: Dockerfile.nginx env_file: - .env ports: - "80:80" - "443:443" volumes: - type: bind # Switch sources if you downloaded the whole repository #source: ../../nginx/peertube source: ./docker-volume/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 - certbot-www:/var/www/certbot - ./docker-volume/certbot/conf:/etc/letsencrypt depends_on: - peertube restart: "always" # You can comment this certbot section if you want to use another webserver/proxy or test PeerTube in local certbot: container_name: certbot image: certbot/certbot volumes: - ./docker-volume/certbot/conf:/etc/letsencrypt - certbot-www:/var/www/certbot restart: unless-stopped entrypoint: /bin/sh -c "trap exit TERM; while :; do certbot renew --webroot -w /var/www/certbot; sleep 12h & wait $${!}; done;" depends_on: - webserver peertube: # If you don't want to use the official image and build one from sources: # build: # context: . # dockerfile: ./support/docker/production/Dockerfile.bookworm image: chocobozzz/peertube:production-bookworm # Use a static IP for this container because nginx does not handle proxy host change without reload # This container could be restarted on crash or until the postgresql database is ready for connection networks: default: ipv4_address: 172.18.0.42 env_file: - .env ports: - "1935:1935" # Comment if you don't want to use the live feature # - "9000:9000" # Uncomment if you use another webserver/proxy or test PeerTube in local, otherwise not suitable for production volumes: - assets:/app/client/dist - ./docker-volume/data:/data - ./docker-volume/config:/config depends_on: - postgres - redis - postfix restart: "always" postgres: image: postgres:13-alpine env_file: - .env volumes: - ./docker-volume/db:/var/lib/postgresql/data restart: "always" redis: image: redis:6-alpine volumes: - ./docker-volume/redis:/data restart: "always" postfix: image: mwader/postfix-relay env_file: - .env volumes: - ./docker-volume/opendkim/keys:/etc/opendkim/keys restart: "always" networks: default: ipam: driver: default config: - subnet: 172.18.0.0/16 volumes: assets: certbot-www: