Add yousable service to alexandria

This commit is contained in:
William 2023-07-27 10:31:18 -03:00
parent dfc1481628
commit 72d5138750
3 changed files with 95 additions and 0 deletions

View file

@ -20,5 +20,6 @@
./users.nix
./variables.nix
./vaultwarden.nix
./yousable.nix
];
}

View file

@ -16,6 +16,7 @@ in {
cinny = mkStringOption "8002";
librespeed = mkStringOption "8003";
paperless = mkStringOption "8004";
yousable = mkStringOption "8005";
cinny2 = mkStringOption "8006";
searx = mkStringOption "8007";
qbittorrent = mkStringOption "8008";

View file

@ -0,0 +1,93 @@
{ inputs, config, pkgs, lib, ... }:
let
configyaml = pkgs.writeTextFile {
name = "config.yaml";
text = ''
paths:
meta: /data/yousable/meta
out: /data/yousable/out
tmp: /data/yousable/tmp
live: /data/yousable/live
x_accel: /out
secrets: ~
authorization: ~
profiles:
default:
video: false
container: opus
download:
format: 'ba[vcodec=none]'
format_sort: [ 'acodec:opus' ]
live:
audio:
format_sort: [ 'acodec:opus' ]
feed_defaults:
load_entries: 20 # query only the last L videos from youtube
keep_entries: 10 # keep at least the last K videos on disk
keep_entries_seconds: 1000000000 # keep videos that are less than M seconds old
live_slice_seconds: 1200 # fill paths.live with fragments N seconds long
poll_seconds: 21600 # look for new videos roughly P seconds often
profiles: [ default ]
feeds:
TL:
url: https://www.youtube.com/channel/UCeeFfhMcJa1kjtfZAGskOCA
overrides:
title: TechLinked
GL:
url: https://www.youtube.com/channel/UCHDxYLv8iovIbhrfl16CNyg
overrides:
title: GameLinked
JS:
url: https://www.youtube.com/channel/UC-2YHgc363EdcusLIBbgxzg
overrides:
title: Answers with Joe
HOTU:
url: https://www.youtube.com/channel/UCtRFmSyL4fSLQkn-wMqlmdA
overrides:
title: History of the Universe
SEA:
url: https://www.youtube.com/channel/UCG9ShGbASoiwHwFcLcAh9EA
overrides:
title: SEA
TH:
url: https://www.youtube.com/channel/UCSwFnHpDt-lZgR_7Sqisi6A
overrides:
title: The Histocrat
'';
};
in {
services = {
yousable = {
enable = true;
port = lib.toInt "${config.ports.yousable}";
configFile = "${configyaml}";
};
nginx.virtualHosts."yousable.baduhai.me" = {
useACMEHost = "baduhai.me";
forceSSL = true;
kTLS = true;
locations."/".proxyPass = "http://127.0.0.1:${config.ports.yousable}";
extraConfig = ''
gzip off;
gzip_proxied off;
proxy_cache off;
proxy_buffering off;
'';
locations."/out" = {
root = "/data/yousable";
extraConfig = ''
autoindex off;
internal;
'';
};
};
};
}