initial commit
This commit is contained in:
commit
3f453af6c6
4 changed files with 226 additions and 0 deletions
82
.env_base
Normal file
82
.env_base
Normal file
|
|
@ -0,0 +1,82 @@
|
||||||
|
# Database / Postgres service configuration
|
||||||
|
POSTGRES_USER=piretube
|
||||||
|
POSTGRES_PASSWORD=< pass >
|
||||||
|
# Postgres database name "peertube"
|
||||||
|
POSTGRES_DB=peertube
|
||||||
|
# The database name used by PeerTube will be PEERTUBE_DB_NAME (only if set) *OR* 'peertube'+PEERTUBE_DB_SUFFIX
|
||||||
|
#PEERTUBE_DB_NAME=<MY POSTGRES DB NAME>
|
||||||
|
#PEERTUBE_DB_SUFFIX=_prod
|
||||||
|
# Database username and password used by PeerTube must match Postgres', so they are copied:
|
||||||
|
PEERTUBE_DB_USERNAME=piretube
|
||||||
|
PEERTUBE_DB_PASSWORD=< pass >
|
||||||
|
PEERTUBE_DB_SSL=false
|
||||||
|
# Default to Postgres service name "postgres" in docker-compose.yml
|
||||||
|
PEERTUBE_DB_HOSTNAME=postgres
|
||||||
|
|
||||||
|
# PeerTube server configuration
|
||||||
|
# If you test PeerTube in local: use "peertube.localhost" and add this domain to your host file resolving on 127.0.0.1
|
||||||
|
PEERTUBE_WEBSERVER_HOSTNAME=piretube.urlab.be
|
||||||
|
# If you just want to test PeerTube on local
|
||||||
|
PEERTUBE_WEBSERVER_PORT=9000
|
||||||
|
PEERTUBE_WEBSERVER_HTTPS=false
|
||||||
|
# If you need more than one IP as trust_proxy
|
||||||
|
# pass them as a comma separated array:
|
||||||
|
PEERTUBE_TRUST_PROXY=["127.0.0.1", "loopback", "172.18.0.0/16"]
|
||||||
|
|
||||||
|
# Generate one using `openssl rand -hex 32`
|
||||||
|
PEERTUBE_SECRET=< itsasecret >
|
||||||
|
|
||||||
|
# E-mail configuration
|
||||||
|
# If you use a Custom SMTP server
|
||||||
|
#PEERTUBE_SMTP_USERNAME=
|
||||||
|
#PEERTUBE_SMTP_PASSWORD=
|
||||||
|
# Default to Postfix service name "postfix" in docker-compose.yml
|
||||||
|
# May be the hostname of your Custom SMTP server
|
||||||
|
PEERTUBE_SMTP_HOSTNAME=postfix
|
||||||
|
PEERTUBE_SMTP_PORT=25
|
||||||
|
PEERTUBE_SMTP_FROM=contact@urlab.be
|
||||||
|
PEERTUBE_SMTP_TLS=false
|
||||||
|
PEERTUBE_SMTP_DISABLE_STARTTLS=false
|
||||||
|
PEERTUBE_ADMIN_EMAIL=contact@urlab.be
|
||||||
|
|
||||||
|
# Postfix service configuration
|
||||||
|
POSTFIX_myhostname=piretube.urlab.be
|
||||||
|
# If you need to generate a list of sub/DOMAIN keys
|
||||||
|
# pass them as a whitespace separated string <DOMAIN>=<selector>
|
||||||
|
OPENDKIM_DOMAINS=piretube.urlab.be=peertube
|
||||||
|
# see https://github.com/wader/postfix-relay/pull/18
|
||||||
|
OPENDKIM_RequireSafeKeys=no
|
||||||
|
|
||||||
|
# If you want to enable object storage for PeerTube, set the following variables.
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_ENABLED=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_ENDPOINT=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_REGION=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_FORCE_PATH_STYLE=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_CREDENTIALS_ACCESS_KEY_ID=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_CREDENTIALS_SECRET_ACCESS_KEY=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_STREAMING_PLAYLISTS_BUCKET_NAME=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_STREAMING_PLAYLISTS_PREFIX=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_STREAMING_PLAYLISTS_BASE_URL=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_WEB_VIDEOS_BUCKET_NAME=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_WEB_VIDEOS_PREFIX=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_WEB_VIDEOS_BASE_URL=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_USER_EXPORTS_BUCKET_NAME=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_USER_EXPORTS_PREFIX=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_USER_EXPORTS_BASE_URL=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_ORIGINAL_VIDEO_FILES_BUCKET_NAME=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_ORIGINAL_VIDEO_FILES_PREFIX=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_ORIGINAL_VIDEO_FILES_BASE_URL=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_CAPTIONS_BUCKET_NAME=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_CAPTIONS_PREFIX=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_CAPTIONS_BASE_URL=
|
||||||
|
|
||||||
|
# Comment these variables if your S3 provider does not support object ACL
|
||||||
|
PEERTUBE_OBJECT_STORAGE_UPLOAD_ACL_PUBLIC="public-read"
|
||||||
|
PEERTUBE_OBJECT_STORAGE_UPLOAD_ACL_PRIVATE="private"
|
||||||
|
|
||||||
|
#PEERTUBE_LOG_LEVEL=info
|
||||||
|
|
||||||
|
# /!\ Prefer to use the PeerTube admin interface to set the following configurations /!\
|
||||||
|
#PEERTUBE_SIGNUP_ENABLED=true
|
||||||
|
#PEERTUBE_TRANSCODING_ENABLED=true
|
||||||
|
#PEERTUBE_CONTACT_FORM_ENABLED=true
|
||||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
docker-volume
|
||||||
82
.localenv
Normal file
82
.localenv
Normal file
|
|
@ -0,0 +1,82 @@
|
||||||
|
# Database / Postgres service configuration
|
||||||
|
POSTGRES_USER=lagaffe
|
||||||
|
POSTGRES_PASSWORD=lagaffe
|
||||||
|
# Postgres database name "peertube"
|
||||||
|
POSTGRES_DB=peertube
|
||||||
|
# The database name used by PeerTube will be PEERTUBE_DB_NAME (only if set) *OR* 'peertube'+PEERTUBE_DB_SUFFIX
|
||||||
|
#PEERTUBE_DB_NAME=<MY POSTGRES DB NAME>
|
||||||
|
#PEERTUBE_DB_SUFFIX=_prod
|
||||||
|
# Database username and password used by PeerTube must match Postgres', so they are copied:
|
||||||
|
PEERTUBE_DB_USERNAME=lagaffe
|
||||||
|
PEERTUBE_DB_PASSWORD=lagaffe
|
||||||
|
PEERTUBE_DB_SSL=false
|
||||||
|
# Default to Postgres service name "postgres" in docker-compose.yml
|
||||||
|
PEERTUBE_DB_HOSTNAME=postgres
|
||||||
|
|
||||||
|
# PeerTube server configuration
|
||||||
|
# If you test PeerTube in local: use "peertube.localhost" and add this domain to your host file resolving on 127.0.0.1
|
||||||
|
PEERTUBE_WEBSERVER_HOSTNAME=peertube.localhost
|
||||||
|
# If you just want to test PeerTube on local
|
||||||
|
PEERTUBE_WEBSERVER_PORT=9000
|
||||||
|
PEERTUBE_WEBSERVER_HTTPS=false
|
||||||
|
# If you need more than one IP as trust_proxy
|
||||||
|
# pass them as a comma separated array:
|
||||||
|
PEERTUBE_TRUST_PROXY=["127.0.0.1", "loopback", "172.18.0.0/16"]
|
||||||
|
|
||||||
|
# Generate one using `openssl rand -hex 32`
|
||||||
|
PEERTUBE_SECRET=8356df4581770f99c8090889e892470e2cbea2bc7a2a74f69b50c9fc0da255a3
|
||||||
|
|
||||||
|
# E-mail configuration
|
||||||
|
# If you use a Custom SMTP server
|
||||||
|
#PEERTUBE_SMTP_USERNAME=
|
||||||
|
#PEERTUBE_SMTP_PASSWORD=
|
||||||
|
# Default to Postfix service name "postfix" in docker-compose.yml
|
||||||
|
# May be the hostname of your Custom SMTP server
|
||||||
|
PEERTUBE_SMTP_HOSTNAME=postfix
|
||||||
|
PEERTUBE_SMTP_PORT=25
|
||||||
|
PEERTUBE_SMTP_FROM=contact@urlab.be
|
||||||
|
PEERTUBE_SMTP_TLS=false
|
||||||
|
PEERTUBE_SMTP_DISABLE_STARTTLS=false
|
||||||
|
PEERTUBE_ADMIN_EMAIL=contact@urlab.be
|
||||||
|
|
||||||
|
# Postfix service configuration
|
||||||
|
POSTFIX_myhostname=peertube.localhost
|
||||||
|
# If you need to generate a list of sub/DOMAIN keys
|
||||||
|
# pass them as a whitespace separated string <DOMAIN>=<selector>
|
||||||
|
OPENDKIM_DOMAINS=<MY DOMAIN>=peertube
|
||||||
|
# see https://github.com/wader/postfix-relay/pull/18
|
||||||
|
OPENDKIM_RequireSafeKeys=no
|
||||||
|
|
||||||
|
# If you want to enable object storage for PeerTube, set the following variables.
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_ENABLED=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_ENDPOINT=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_REGION=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_FORCE_PATH_STYLE=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_CREDENTIALS_ACCESS_KEY_ID=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_CREDENTIALS_SECRET_ACCESS_KEY=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_STREAMING_PLAYLISTS_BUCKET_NAME=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_STREAMING_PLAYLISTS_PREFIX=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_STREAMING_PLAYLISTS_BASE_URL=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_WEB_VIDEOS_BUCKET_NAME=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_WEB_VIDEOS_PREFIX=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_WEB_VIDEOS_BASE_URL=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_USER_EXPORTS_BUCKET_NAME=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_USER_EXPORTS_PREFIX=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_USER_EXPORTS_BASE_URL=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_ORIGINAL_VIDEO_FILES_BUCKET_NAME=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_ORIGINAL_VIDEO_FILES_PREFIX=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_ORIGINAL_VIDEO_FILES_BASE_URL=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_CAPTIONS_BUCKET_NAME=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_CAPTIONS_PREFIX=
|
||||||
|
#PEERTUBE_OBJECT_STORAGE_CAPTIONS_BASE_URL=
|
||||||
|
|
||||||
|
# Comment these variables if your S3 provider does not support object ACL
|
||||||
|
PEERTUBE_OBJECT_STORAGE_UPLOAD_ACL_PUBLIC="public-read"
|
||||||
|
PEERTUBE_OBJECT_STORAGE_UPLOAD_ACL_PRIVATE="private"
|
||||||
|
|
||||||
|
#PEERTUBE_LOG_LEVEL=info
|
||||||
|
|
||||||
|
# /!\ Prefer to use the PeerTube admin interface to set the following configurations /!\
|
||||||
|
#PEERTUBE_SIGNUP_ENABLED=true
|
||||||
|
#PEERTUBE_TRANSCODING_ENABLED=true
|
||||||
|
#PEERTUBE_CONTACT_FORM_ENABLED=true
|
||||||
61
docker-compose.yml
Normal file
61
docker-compose.yml
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
services:
|
||||||
|
peertube:
|
||||||
|
# If you don't want to use the official image and build one from sources:
|
||||||
|
# build:
|
||||||
|
# context: .
|
||||||
|
# dockerfile: ./support/docker/production/Dockerfile
|
||||||
|
image: docker.io/chocobozzz/peertube:production
|
||||||
|
# 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:
|
||||||
|
- .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:
|
||||||
|
- ./docker-volume/data:/data
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
- redis
|
||||||
|
- postfix
|
||||||
|
restart: "always"
|
||||||
|
|
||||||
|
postgres:
|
||||||
|
image: docker.io/postgres:17-alpine
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
volumes:
|
||||||
|
- ./docker-volume/db:/var/lib/postgresql/data
|
||||||
|
restart: "always"
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: docker.io/redis:8-alpine
|
||||||
|
volumes:
|
||||||
|
- ./docker-volume/redis:/data
|
||||||
|
restart: "always"
|
||||||
|
|
||||||
|
postfix:
|
||||||
|
image: docker.io/mwader/postfix-relay
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
volumes:
|
||||||
|
- ./docker-volume/opendkim/keys:/etc/opendkim/keys
|
||||||
|
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:
|
||||||
Loading…
Reference in a new issue