lala.im:NixOS配置PeerTube

運維技術·lala.im · 2022-08-29 · 100 人浏览

原文地址:https://lala.im/8462.html,請支持原作者!該處僅作轉載。

老规矩先import:

{
  imports =
    [
      ./hardware-configuration.nix
      ./lnmp.nix
      ./mastodon.nix
      ./peertube.nix
    ];
}

新建一个peertube.nix:

nano /etc/nixos/peertube.nix

我的配置如下:

{ config, pkgs, lib, ... }:
{
  security.acme = {
    acceptTerms = true;
    defaults = {
      email = "[email protected]";
    };
  };
  services.nginx = {
    enable = true;
    recommendedProxySettings = true;
    upstreams."peertube-backend" = {
      servers = {
        "127.0.0.1:9000" = {};
      };
    };
    virtualHosts."peertube.example.com" = {
      enableACME = true;
      forceSSL = true;
      kTLS = true;
      locations."/" = {
        proxyPass = "http://peertube-backend";
        proxyWebsockets = true;
        extraConfig = ''
          client_max_body_size 0;
        '';
      };
    };
  };
  services.peertube = {
    enable = true;
    localDomain = "peertube.example.com";
    listenWeb = 443;
    enableWebHttps = true;
    database.createLocally = true;
    redis.createLocally = true;
    serviceEnvironmentFile = "/etc/peertube-password-init-root";
    settings = {
      import = {
        videos = {
          http = {
            youtube_dl_release = {
              url = "https://api.github.com/repos/yt-dlp/yt-dlp/releases";
              name = "yt-dlp";
            };
          };
        };
      };
    };
  };
}

这个services.peertube.enable服务启动后,只会在本地监听9000端口,这个包的维护者没有像mastodon那样帮我们配置nginx,所以我们需要自己手动配置nginx的反向代理。
另外peertube默认情况下是使用youtube-dl,但是这个目前几乎是不可用的状态,下载视频太慢,我在配置里面把youtube-dl换成了yt-dlp。
peertube的管理员账号名默认是root,密码需要自己设置:

echo "PT_INITIAL_ROOT_PASSWORD=password" > /etc/peertube-password-init-root

配置完成后重建系统:

nixos-rebuild switch

一个peertube实例就配置好了:

範例

運維技術 lala.im
Theme Jasmine by Kent Liao