2022-08-01 15:26:50 +02:00
|
|
|
{ config, pkgs, lib, ... }:
|
|
|
|
|
let
|
|
|
|
|
iv_port = "3001";
|
|
|
|
|
domain = "yt.mc-fucker.cool";
|
2022-09-25 01:28:11 +02:00
|
|
|
db_user = "kemal";
|
|
|
|
|
db = "invidious";
|
2022-08-01 15:26:50 +02:00
|
|
|
in
|
2021-11-17 17:05:26 +01:00
|
|
|
{
|
|
|
|
|
services.invidious = {
|
2022-09-25 01:28:11 +02:00
|
|
|
package = pkgs.callPackage /etc/nixos/packages/invidious { lsquic = pkgs.callPackage /etc/nixos/packages/invidious/lsquic.nix {}; videojs = pkgs.callPackage /etc/nixos/packages/invidious/videojs.nix {}; };
|
2021-11-17 17:05:26 +01:00
|
|
|
enable = true;
|
2022-08-01 15:26:50 +02:00
|
|
|
port = (lib.strings.toInt iv_port);
|
2021-11-17 17:05:26 +01:00
|
|
|
database = {
|
|
|
|
|
createLocally = false;
|
2022-09-25 01:28:11 +02:00
|
|
|
host = "127.0.0.1";
|
2021-11-17 17:05:26 +01:00
|
|
|
passwordFile = "/etc/nixos/keys/invidious-dbpassword";
|
|
|
|
|
};
|
2021-12-08 10:57:56 +01:00
|
|
|
settings = {
|
|
|
|
|
admins = [ "mc-fucker" ];
|
2022-01-27 17:16:08 +01:00
|
|
|
popular_enabled = false;
|
|
|
|
|
default_user_preferences = {
|
|
|
|
|
feed_menu = [ "Trending" "Subscriptions" "Playlists" ];
|
|
|
|
|
};
|
2021-12-08 10:57:56 +01:00
|
|
|
};
|
2021-11-17 17:05:26 +01:00
|
|
|
};
|
|
|
|
|
systemd.services.invidious.serviceConfig = {
|
|
|
|
|
Restart = "always";
|
|
|
|
|
RestartSec = "2s";
|
|
|
|
|
};
|
2022-08-01 15:26:50 +02:00
|
|
|
|
2022-09-25 01:28:11 +02:00
|
|
|
services.postgresql = {
|
|
|
|
|
ensureDatabases = [ db ];
|
|
|
|
|
ensureUsers = [
|
|
|
|
|
{
|
|
|
|
|
name = db_user;
|
|
|
|
|
ensurePermissions = {
|
|
|
|
|
"DATABASE ${db}" = "ALL PRIVILEGES";
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
authentication = "host invidious kemal 127.0.0.1/32 trust";
|
|
|
|
|
};
|
|
|
|
|
|
2022-08-01 15:26:50 +02:00
|
|
|
services.nginx.virtualHosts."${domain}" = {
|
|
|
|
|
forceSSL = true;
|
|
|
|
|
enableACME = true;
|
|
|
|
|
locations = {
|
|
|
|
|
"/" = {
|
|
|
|
|
proxyPass = "http://127.0.0.1:${iv_port}";
|
|
|
|
|
extraConfig = ''
|
|
|
|
|
set $empty "";
|
|
|
|
|
proxy_set_header X-Forwarded-For $remote_addr;
|
|
|
|
|
proxy_set_header Host $host;
|
|
|
|
|
proxy_http_version 1.1;
|
|
|
|
|
proxy_set_header Connection "";
|
|
|
|
|
'';
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
};
|
2022-11-24 18:22:26 +01:00
|
|
|
extraConfig = ''
|
|
|
|
|
access_log /var/log/nginx/${domain}_access.log;
|
|
|
|
|
error_log /var/log/nginx/${domain}_error.log;
|
|
|
|
|
'';
|
2022-08-01 15:26:50 +02:00
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
2021-11-17 17:05:26 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# vim: set et ts=2 sw=2 ai:
|