Fork me on GitHub

Herr Knedel/Lucruri grozave cu containere: propriul portal video cu PeerTube

Created Mon, 05 Apr 2021 00:00:00 +0000 Modified Sat, 02 Apr 2022 15:48:14 +0000 Schwierigkeitsgrad: Für jeden machbar

476 Words

Cu Peertube vă puteți crea propriul portal video. Astăzi vă arăt cum am instalat Peertube pe stația mea de discuri Synology.

Pasul 1: Pregătiți Synology

În primul rând, conectarea SSH trebuie să fie activată pe DiskStation. Pentru a face acest lucru, mergeți la “Control Panel” > “Terminal”.

Apoi vă puteți conecta prin “SSH”, portul specificat și parola de administrator. Mă conectez prin Terminal, winSCP sau Putty și las această consolă deschisă pentru mai târziu.

Pasul 2: Pregătiți dosarul Docker

Creez un nou director numit “Peertube” în directorul Docker.

Apoi, mă duc în directorul Peertube și creez un nou fișier numit “peertube.yml” cu următorul conținut. Pentru port, partea frontală “9000:” poate fi ajustată. Al doilea volum conține toate videoclipurile, lista de redare, miniaturi etc… și, prin urmare, trebuie adaptat.

version: "3.7"

services:
  peertube:
    image: chocobozzz/peertube:contain-buster
    container_name: peertube_peertube
    ports:
       - "9000:9000"
    volumes:
      - ./config:/config
      - ./videos:/data
    environment:
      - TZ="Europe/Berlin"
      - PT_INITIAL_ROOT_PASSWORD=password
      - PEERTUBE_WEBSERVER_HOSTNAME=ip
      - PEERTUBE_WEBSERVER_PORT=port
      - PEERTUBE_WEBSERVER_HTTPS=false
      - PEERTUBE_DB_USERNAME=peertube
      - PEERTUBE_DB_PASSWORD=peertube
      - PEERTUBE_DB_HOSTNAME=postgres
      - POSTGRES_DB=peertube
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - PEERTUBE_REDIS_HOSTNAME=redis
      - PEERTUBE_ADMIN_EMAIL=himself@christian-knedel.de
    depends_on:
      - postgres
      - redis
    restart: "always"
    networks:
      - peertube

  postgres:
    restart: always
    image: postgres:12
    container_name: peertube_postgres
    volumes:
      - ./postgresql:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=peertube
      - POSTGRES_PASSWORD=peertube
      - POSTGRES_DB=peertube
    networks:
      - peertube

  redis:
    image: redis:4-alpine
    container_name: peertube_redis
    volumes:
      - ./redis:/data
    restart: "always"
    networks:
      - peertube
    expose:
      - "6379"

networks:
  peertube:

Acest fișier este pornit prin Docker Compose:

x
+
Terminal

$ sudo docker-compose -f compose-file-name.yml up -d

După aceea, pot apela serverul meu Peertube cu IP-ul stației de disc și portul atribuit de la “Pasul 2”. Grozav! Numele de utilizator este “root”, iar parola este “password” (sau pasul 2 / PT_INITIAL_ROOT_PASSWORD).

Personalizarea temei

Este foarte ușor să personalizați aspectul Peertube. Pentru a face acest lucru, fac clic pe “Administrare” > “Setări” și “Setări avansate”.

Acolo am introdus următoarele în câmpul CSS:

body#custom-css {
--mainColor: #3598dc;
--mainHoverColor: #3598dc;
--mainBackgroundColor: #FAFAFA;
--mainForegroundColor: #888888;
--menuBackgroundColor: #f5f5f5;
--menuForegroundColor: #888888;
--submenuColor: #fff;
--inputColor: #fff;
--inputPlaceholderColor: #898989;
}

Rest API

PeerTube are un API Rest extins și bine documentat: https://docs.joinpeertube.org/api-rest-reference.html.

Căutarea de videoclipuri este posibilă cu ajutorul acestei comenzi:
x
+
Terminal

$ curl -s "http://pree-tube/api/v1search/videos?search=docker&languageOneOf=de"

De exemplu, pentru o încărcare sunt necesare autentificarea și un token de sesiune:

#!/bin/bash
USERNAME="user"
PASSWORD="password"
API_PATH="http://peertube-adresse/api/v1"

client_id=$(curl -s "$API_PATH/oauth-clients/local" | jq -r ".client_id")
client_secret=$(curl -s "$API_PATH/oauth-clients/local" | jq -r ".client_secret")
token=$(curl -s "$API_PATH/users/token" \
  --data client_id="$client_id" \
  --data client_secret="$client_secret" \
  --data grant_type=password \
  --data response_type=code \
  --data username="$USERNAME" \
  --data password="$PASSWORD" \
  | jq -r ".access_token")

curl -s '$API_PATH/videos/upload'-H 'Authorization: Bearer $token' --max-time 11600 --form videofile=@'/scripte/output.mp4' --form name='mein upload' 

Sfatul meu: Citiți “Lucruri grozave cu containere: cum să faceți serviciile Docker mai sigure cu LDAP și NGINX”.

Eu îmi folosesc Peertube cu un proxy invers. Aceasta înseamnă că numai utilizatorii LDAP pot accesa acest serviciu. Am documentat această configurație la rubrica “Lucruri grozave cu containere: făcând serviciile Docker mai sigure cu LDAP și NGINX”.