Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions svgs/peertube.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
77 changes: 77 additions & 0 deletions templates/compose/peertube.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# documentation: https://docs.joinpeertube.org/install/docker
# slogan: Free, open-source and decentralized video platform.
# category: media
# tags: video,fediverse,activitypub,youtube,streaming,self-hosted
# logo: svgs/peertube.svg
# port: 9000

# IMPORTANT: Set PEERTUBE_WEBSERVER_HOSTNAME to your domain before deploying.
Comment thread
ShadowArcanist marked this conversation as resolved.
Outdated

services:
peertube:
image: chocobozzz/peertube:production
Comment thread
ShadowArcanist marked this conversation as resolved.
Outdated
environment:
- SERVICE_URL_PEERTUBE_9000
- PEERTUBE_WEBSERVER_HOSTNAME=${PEERTUBE_WEBSERVER_HOSTNAME:?}
Comment thread
ShadowArcanist marked this conversation as resolved.
Outdated
- PEERTUBE_WEBSERVER_PORT=${PEERTUBE_WEBSERVER_PORT:-443}
- PEERTUBE_WEBSERVER_HTTPS=${PEERTUBE_WEBSERVER_HTTPS:-true}
- PEERTUBE_TRUST_PROXY=["127.0.0.1", "loopback", "172.18.0.0/16"]
- PEERTUBE_SECRET=${SERVICE_HEX_32_PEERTUBESECRET}
- PEERTUBE_DB_USERNAME=${SERVICE_USER_POSTGRESQL}
- PEERTUBE_DB_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}
- PEERTUBE_DB_HOSTNAME=postgres
- PEERTUBE_DB_NAME=${POSTGRES_DB:-peertube}
- PEERTUBE_DB_SSL=false
- PEERTUBE_REDIS_HOSTNAME=redis
- PEERTUBE_SMTP_HOSTNAME=postfix
- PEERTUBE_SMTP_PORT=25
- PEERTUBE_SMTP_FROM=noreply@${PEERTUBE_WEBSERVER_HOSTNAME:-example.com}
Comment thread
ShadowArcanist marked this conversation as resolved.
Outdated
- PEERTUBE_SMTP_TLS=false
- PEERTUBE_SMTP_DISABLE_STARTTLS=false
- PEERTUBE_ADMIN_EMAIL=${PEERTUBE_ADMIN_EMAIL:?}
- POSTGRES_USER=${SERVICE_USER_POSTGRESQL}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}
- POSTGRES_DB=${POSTGRES_DB:-peertube}
ports:
- '9000'
Comment thread
ShadowArcanist marked this conversation as resolved.
Outdated
volumes:
- peertube-data:/data
- peertube-config:/config
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
restart: always

postgres:
image: postgres:17-alpine
environment:
- POSTGRES_USER=${SERVICE_USER_POSTGRESQL}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}
- POSTGRES_DB=${POSTGRES_DB:-peertube}
volumes:
- db-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB:-peertube}"]
interval: 5s
timeout: 5s
retries: 10
restart: always

redis:
image: redis:8-alpine
volumes:
- redis-data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 10
restart: always

postfix:
image: mwader/postfix-relay
environment:
- POSTFIX_myhostname=${PEERTUBE_WEBSERVER_HOSTNAME:-example.com}
Comment thread
ShadowArcanist marked this conversation as resolved.
Outdated
restart: always