Fork me on GitHub

Herr Knedel/Konteynerlerle harika şeyler: PeerTube ile kendi video portalınız

Created Mon, 05 Apr 2021 00:00:00 +0000 Modified Sat, 01 Oct 2022 10:42:41 +0000 Schwierigkeitsgrad: Für jeden machbar

429 Words

Peertube ile kendi video portalınızı oluşturabilirsiniz. Bugün Peertube’u Synology disk istasyonuma nasıl yüklediğimi göstereceğim.

Adım 1: Synology’yi Hazırlayın

İlk olarak, DiskStation üzerinde SSH oturum açma etkinleştirilmelidir. Bunu yapmak için, “Denetim Masası” > “Terminal

Ardından “SSH”, belirtilen bağlantı noktası ve yönetici parolası ile oturum açabilirsiniz. Terminal, winSCP veya Putty ile oturum açıyorum ve bu konsolu daha sonra kullanmak üzere açık bırakıyorum.

Adım 2: Docker klasörünü hazırlayın

Docker dizininde “Peertube” adında yeni bir dizin oluşturuyorum.

Ardından Peertube dizinine giriyorum ve aşağıdaki içeriğe sahip “peertube.yml” adında yeni bir dosya oluşturuyorum. Bağlantı noktası için ön kısım “9000:” ayarlanabilir. İkinci cilt tüm videoları, oynatma listesini, küçük resimleri vb. içerir ve bu nedenle uyarlanmalıdır.

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:

Bu dosya Docker Compose aracılığıyla başlatılır:

x
+
Terminal

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

Bundan sonra, Peertube sunucumu disk istasyonunun IP’si ve “Adım 2 “den atanan bağlantı noktası ile arayabilirim. Harika! Kullanıcı adı “root” ve parola “password” (veya adım 2 / PT_INITIAL_ROOT_PASSWORD).

Tema özelleştirme

Peertube’un görünümünü özelleştirmek çok kolaydır. Bunu yapmak için, “Yönetim” > “Ayarlar” ve “Gelişmiş ayarlar “a tıklıyorum.

Orada CSS alanına aşağıdakileri girdim:

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

Dinlenme API’si

PeerTube kapsamlı ve iyi belgelenmiş bir Rest API’ye sahiptir: https://docs.joinpeertube.org/api-rest-reference.html.

Bu komutla video aramak mümkündür:
x
+
Terminal

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

Örneğin bir yükleme için kimlik doğrulama ve oturum belirteci gereklidir:

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

Tavsiyem: “Konteynerlerle harika şeyler: Docker hizmetlerini LDAP ve NGINX ile daha güvenli hale getirmek” başlıklı yazıyı okuyun.

Peertube’umu bir ters proxy ile çalıştırıyorum. Bu, yalnızca LDAP kullanıcılarının bu hizmete erişebileceği anlamına gelir. Bu kurulumu “Konteynerlerle harika şeyler: Docker hizmetlerini LDAP ve NGINX ile daha güvenli hale getirme” altında belgeledim.