В данной статье я расскажу, как установить Peertube на Synology DS220+ с использованием docker и docker-compose

PeerTube – это децентрализованная платформа для видеохостинга, которая позволяет пользователям загружать, просматривать и обмениваться видеофайлами. Она основана на технологии P2P (peer-to-peer), что означает, что видеофайлы хранятся на компьютерах пользователей, а не на централизованном сервере. Это позволяет уменьшить нагрузку на сервера и обеспечить более быстрый доступ к видеофайлам. Peertube также поддерживает открытые стандарты, такие как WebTorrent и ActivityPub, что позволяет пользователям обмениваться видеофайлами между различными платформами и социальными сетями.

Предполагается, что уже у вас установлен docker из центра приложений Synology. Если нет, то устанавливаем его от туда.

Для запуска Peertube нам понадобится два файла – docker-compose.yml и .env

Содержание docker-compose.yml делаем таким:

version: "3.8"

services:

  peertube:
    image: chocobozzz/peertube:production-bullseye
    container_name: peertube_frontend
    environment:
      LC_ALL: C.UTF-8
      LANG: C.UTF-8
    networks:
      default:
        ipv4_address: 178.18.0.42
    env_file:
      - .env

    ports:
     - "1935:1935" #порт для rmtp-трансляций
     - "3001:9000" # порт для web-интерфейса
    volumes:
      - assets:/app/client/dist
      - ./data:/data
      - ./config:/config
    depends_on:
      - postgres
      - redis
    restart: "always"

  postgres:
    image: postgres:13-alpine
    container_name: postgres_peertube
    env_file:
      - .env
    volumes:
      - ./db:/var/lib/postgresql/data
    restart: "always"

  redis:
    image: redis:6-alpine
    container_name: redis_peertube
    volumes:
      - ./redis:/data
    restart: "always"

networks:
  default:
    ipam:
      driver: default
      config:
      - subnet: 178.18.0.0/16
      #external: true

volumes:
  assets:

Необходимо создать подкаталоги data,dedis,db,config в каталоге где лежит docker-compose.yml

и создать .env со следующим содержимым:

POSTGRES_USER=peertube #имя пользователя postgres
POSTGRES_PASSWORD=12334435567 #пароль пользователя  postgres
POSTGRES_DB=peertube # имя базы данных peertube
PEERTUBE_DB_USERNAME=peertube #имя пользователя  базы данных 
PEERTUBE_DB_PASSWORD=2143234532525 # пароль базы данных
PEERTUBE_DB_HOSTNAME=postgres

PEERTUBE_WEBSERVER_HOSTNAME=tube.morozoff.pro #имя хоста для инстанции perrtube
PEERTUBE_TRUST_PROXY=["127.0.0.1", "loopback", "172.18.0.0/16"] # доверенные проски

PEERTUBE_SECRET= #секретный ключ peertube, получаем командой openssl rand -hex 32

PEERTUBE_SMTP_USERNAME=test@mail.ru #пользователь электронной почты
PEERTUBE_SMTP_PASSWORD=пароль электронной почты
PEERTUBE_SMTP_HOSTNAME=smtp.mail.ru# сервер исходящей почты
PEERTUBE_SMTP_PORT=587 #порт исходящей почты
PEERTUBE_SMTP_FROM=test@mail.ru #от кого будет отправляться почта
PEERTUBE_SMTP_TLS=false #поддержка tls
PEERTUBE_SMTP_DISABLE_STARTTLS=false #поддержка startssl
PEERTUBE_ADMIN_EMAIL=test@mail.ru #почта администратора

Если все готово,

И в каталоге data/logs в файле peertube ищем пароль администратора для web-интерфейса для пользователя root.

Далее переходим по адресу nas_ip:3001(или имя хоста). Я у себя сделал реверс-прокси, и адрес localhost:3001 доступен по https://tube.morozoff.pro.

А вот пример, загруженного видео на peertube: