Fork me on GitHub

Herr Knedel/Nagyszerű dolgok konténerekkel: Saját videoportál a PeerTube segítségével

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

448 Words

A Peertube segítségével létrehozhatja saját videoportálját. Ma megmutatom, hogyan telepítettem a Peertube-ot a Synology lemezállomásomra.

1. lépés: A Synology előkészítése

Először is aktiválni kell az SSH bejelentkezést a DiskStationön. Ehhez menjen a “Vezérlőpult” > “Terminál” > “Terminál” menüpontba.

Ezután bejelentkezhet az “SSH”-n keresztül, a megadott porton és a rendszergazdai jelszóval. Terminal, winSCP vagy Putty segítségével jelentkezem be, és ezt a konzolt későbbre nyitva hagyom.

2. lépés: Docker mappa előkészítése

Létrehozok egy új könyvtárat “Peertube” néven a Docker könyvtárban.

Ezután bemegyek a Peertube könyvtárba, és létrehozok egy új fájlt “peertube.yml” néven a következő tartalommal. A porthoz a “9000:” elülső rész állítható be. A második kötet tartalmazza az összes videót, lejátszási listát, miniatűröket stb…, és ezért adaptálni kell.

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:

Ez a fájl a Docker Compose segítségével indul:

x
+
Terminal

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

Ezután a Peertube-kiszolgálót a lemezállomás IP-címével és a “2. lépésből” kiosztott porttal tudom hívni. Nagyszerű! A felhasználónév “root”, a jelszó pedig “password” (vagy a 2. lépés / PT_INITIAL_ROOT_PASSWORD).

Téma testreszabása

A Peertube megjelenése nagyon könnyen testre szabható. Ehhez az “Adminisztráció” > “Beállítások” és a “Speciális beállítások” menüpontra kattintok.

Ott a CSS mezőbe a következőket írtam be:

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

Pihenő API

A PeerTube kiterjedt és jól dokumentált Rest API-val rendelkezik: https://docs.joinpeertube.org/api-rest-reference.html.

A videók keresése ezzel a paranccsal lehetséges:
x
+
Terminal

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

A feltöltéshez például hitelesítésre és munkamenet-tokenre van szükség:

#!/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' 

Tippem: Olvassa el a “Nagyszerű dolgok konténerekkel: a Docker-szolgáltatások biztonságosabbá tétele az LDAP és az NGINX segítségével” című részt.

A Peertube-omat fordított proxyval futtatom. Ez azt jelenti, hogy csak LDAP-felhasználók férhetnek hozzá ehhez a szolgáltatáshoz. Ezt a beállítást az “Nagyszerű dolgok konténerekkel: a Docker szolgáltatások biztonságosabbá tétele LDAP és NGINX segítségével” alatt dokumentáltam.