Created
February 11, 2026 21:05
-
-
Save ToxicMushroom/1e90a6bec643af2b88fafd32f895aac3 to your computer and use it in GitHub Desktop.
peertube yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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: ./support/docker/production/Dockerfile.nginx | |
| env_file: | |
| - /run/secrets/rendered/peertube.env | |
| ports: | |
| - "8081:80" | |
| - "4431:443" | |
| volumes: | |
| - type: bind | |
| # Switch sources if you downloaded the whole repository | |
| #source: ../../nginx/peertube | |
| source: ./peertube-volume/nginx/peertube | |
| target: /etc/nginx/conf.d/peertube.template | |
| - assets:/var/www/peertube/peertube-latest/client/dist:ro | |
| - ./peertube-volume/data:/var/www/peertube/storage | |
| - certbot-www:/var/www/certbot | |
| - ./peertube-volume/certbot/conf:/etc/letsencrypt | |
| - ./peertube-volume/nginx-logs:/var/log/nginx | |
| 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: | |
| - ./peertube-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 | |
| 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 | |
| ipv6_address: fdab:e4b3:21a2:ef1b::42 | |
| env_file: | |
| - /run/secrets/rendered/peertube.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: | |
| # Remove the following line if you want to use another webserver/proxy or test PeerTube in local | |
| - assets:/app/client/dist | |
| - ./peertube-volume/data:/data | |
| - ./peertube-volume/config:/config | |
| depends_on: | |
| - postgres | |
| - redis | |
| restart: "always" | |
| postgres: | |
| image: postgres:17-alpine | |
| env_file: | |
| - /run/secrets/rendered/peertube.env | |
| volumes: | |
| - ./peertube-volume/db:/var/lib/postgresql/data | |
| restart: "always" | |
| redis: | |
| image: redis:8-alpine | |
| volumes: | |
| - ./peertube-volume/redis:/data | |
| restart: "always" | |
| networks: | |
| default: | |
| enable_ipv6: true | |
| ipam: | |
| driver: default | |
| config: | |
| - subnet: 172.18.0.0/16 | |
| - subnet: fdab:e4b3:21a2:ef1b::/64 | |
| volumes: | |
| assets: | |
| certbot-www: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment