diff options
author | Soispha <soispha@vhack.eu> | 2023-08-11 18:15:23 +0200 |
---|---|---|
committer | Soispha <soispha@vhack.eu> | 2023-08-11 18:15:23 +0200 |
commit | e33c36fe25c76cf549c200b83082bf0753526481 (patch) | |
tree | b24f662509aa4ba5fda48e267d6592b091d43f0e /system/services/invidious | |
parent | chore(version): v0.8.0 (diff) | |
parent | Fix(system/services/invidious): Add interpreter to start script (diff) | |
download | nixos-server-e33c36fe25c76cf549c200b83082bf0753526481.tar.gz nixos-server-e33c36fe25c76cf549c200b83082bf0753526481.zip |
Chore(Merge): Branch 'invidious'
Diffstat (limited to 'system/services/invidious')
-rw-r--r-- | system/services/invidious/default.nix | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/system/services/invidious/default.nix b/system/services/invidious/default.nix new file mode 100644 index 0000000..a1d202c --- /dev/null +++ b/system/services/invidious/default.nix @@ -0,0 +1,48 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.services.invidious; +in { + services.invidious = { + enable = true; + database = { + createLocally = true; + }; + domain = "invidious.vhack.eu"; + nginx.enable = true; + extraSettingsFile = "$CREDENTIALS_DIRECTORY/hmac"; + + settings = { + check_tables = true; + }; + }; + systemd.services.invidious.serviceConfig = { + LoadCredential = "hmac:${config.age.secrets.invidiousHmac.path}"; + + ExecStart = let + # taken from the invidious module + settingsFormat = pkgs.formats.json {}; + settingsFile = settingsFormat.generate "invidious-settings" cfg.settings; + + jqFilter = + "." + + lib.optionalString (cfg.database.host != null) "[0].db.password = \"'\"'\"$(cat ${lib.escapeShellArg cfg.database.passwordFile})\"'\"'\"" + + " | .[0]" + + lib.optionalString (cfg.extraSettingsFile != null) " * .[1]"; + + # don't escape extraSettingsFile, to allow variable substitution + jqFiles = + settingsFile + + lib.optionalString (cfg.extraSettingsFile != null) " \"${cfg.extraSettingsFile}\""; + in + lib.mkForce (pkgs.writeScript "start-invidious" '' + #! ${pkgs.dash}/bin/dash + + export INVIDIOUS_CONFIG="$(${pkgs.jq}/bin/jq -s "${jqFilter}" ${jqFiles})" + exec ${cfg.package}/bin/invidious + ''); + }; +} |