48 lines
1.4 KiB
Nix
48 lines
1.4 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}: {
|
|
services.peertube = {
|
|
enable = true;
|
|
localDomain = "peertube.chir.rs";
|
|
listenHttp = 5370;
|
|
listenWeb = 443;
|
|
enableWebHttps = true;
|
|
serviceEnvironmentFile = config.sops.secrets."services/peertube/env".path;
|
|
secrets.secretsFile = config.sops.secrets."services/peertube/secret".path;
|
|
settings = {
|
|
object_storage = {
|
|
upload_acl.public = "private";
|
|
enabled = true;
|
|
endpoint = "s3.us-west-000.backblazeb2.com";
|
|
videos = {
|
|
bucket_name = "mastodon-chir-rs";
|
|
prefix = "peertube/videos/";
|
|
base_url = "https://mastodon-assets.chir.rs";
|
|
};
|
|
streaming_playlists = {
|
|
bucket_name = "mastodon-chir-rs";
|
|
prefix = "peertube/streaming-playlists/";
|
|
base_url = "https://mastodon-assets.chir.rs";
|
|
};
|
|
};
|
|
};
|
|
database.createLocally = true;
|
|
redis.createLocally = true;
|
|
};
|
|
systemd.services.peertube.path = with pkgs; lib.mkForce [bashInteractive ffmpeg_5 nodejs-16_x openssl yarn python3 coreutils systemd];
|
|
services.caddy.virtualHosts."peertube.chir.rs" = {
|
|
useACMEHost = "chir.rs";
|
|
logFormat = pkgs.lib.mkForce "";
|
|
extraConfig = ''
|
|
import baseConfig
|
|
reverse_proxy {
|
|
to http://127.0.0.1:5370
|
|
}
|
|
'';
|
|
};
|
|
sops.secrets."services/peertube/env".owner = "peertube";
|
|
sops.secrets."services/peertube/secret".owner = "peertube";
|
|
}
|