Initial commit

master
Kuba Orlik 6 hours ago
commit a0da457159

@ -0,0 +1,5 @@
peertube_version: 8.2.0
peertube_files_dir: "/mnt/juice/peertube/data"
peertube_config_dir: /mnt/juice/peertube/config"
peertube_db_dir: /mnt/juice/peertube/db"
peertube_redis_dir: /mnt/juice/peertube/redis"

@ -0,0 +1,17 @@
---
galaxy_info:
author: kuba
description: peertube
license: MIT
min_ansible_version: "2.12"
platforms:
- name: Debian
versions:
- bullseye
- bookworm
- name: Ubuntu
versions:
- focal
- jammy
dependencies: []

@ -0,0 +1,37 @@
- name: "docker compose down"
community.docker.docker_compose_v2:
state: "absent"
project_src: /var/www/peertube
register: compose_result
failed_when: >
compose_result.failed and
("is not a directory" not in compose_result.msg)
- name: "Create the peertube directory"
file:
path: /var/www/peertube
state: "directory"
- name: Create docker-compose.yml file for Peertube
template:
src: docker-compose.yml.j2
dest: /var/www/peertube/docker-compose.yml
- name: Create .env file for Peertube
template:
src: "env.j2"
dest: /var/www/peertube/env
- name: "docker compose up -d peertube"
community.docker.docker_compose_v2:
state: "present"
pull: policy
project_src: "/var/www/peertube"
- ansible.builtin.lineinfile:
path: "/backup-dirs"
line: "/var/www/peertube"
- ansible.builtin.lineinfile:
path: "/backup-dirs"
line: "/mnt/juice/peertube"

@ -0,0 +1,31 @@
# modified from source: https://github.com/Chocobozzz/PeerTube/blob/master/support/docker/production/docker-compose.yml
services:
peertube:
image: chocobozzz/peertube:v8.2.0-trixie
env_file:
- env
ports:
- "1935:1935" # Comment if you don't want to use the live feature
- "127.0.0.1:{{peertube_port}}:9000"
volumes:
- /mnt/juice/peertube/data:/data
- /mnt/juice/peertube/config:/config
depends_on:
- postgres
- redis
restart: "always"
pull_policy: "always"
postgres:
image: postgres:17-alpine
env_file:
- env
volumes:
- /mnt/juice/peertube/db:/var/lib/postgresql/data
restart: "always"
redis:
image: redis:8-alpine
volumes:
- /mnt/juice/peertube/redis:/data
restart: "always"

@ -0,0 +1,74 @@
# Sourced and modified from https://github.com/Chocobozzz/PeerTube/blob/master/support/docker/production/.env
# Database / Postgres service configuration
POSTGRES_USER=peertube
POSTGRES_PASSWORD=peertube
# Postgres database name "peertube"
POSTGRES_DB=peertube
# Database username and password used by PeerTube must match Postgres', so they are copied:
PEERTUBE_DB_USERNAME=$POSTGRES_USER
PEERTUBE_DB_PASSWORD=$POSTGRES_PASSWORD
PEERTUBE_DB_SSL=false
# Default to Postgres service name "postgres" in docker-compose.yml
PEERTUBE_DB_HOSTNAME=postgres
# PeerTube server configuration
PEERTUBE_WEBSERVER_HOSTNAME={{peertube_domain}}
# 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"]
# Generate one using `openssl rand -hex 32`
PEERTUBE_SECRET={peertube_secret}
# 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=noreply@example.com
PEERTUBE_SMTP_TLS=false
PEERTUBE_SMTP_DISABLE_STARTTLS=false
PEERTUBE_ADMIN_EMAIL=peertube@example.com
# 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
Loading…
Cancel
Save