about summary refs log tree commit diff
path: root/modules/services/nitter/default.nix
diff options
context:
space:
mode:
authorsefidel <contact@sefidel.net>2024-02-03 04:10:59 +0900
committersefidel <contact@sefidel.net>2024-02-03 04:11:28 +0900
commit5854407ab4aba08fdae5c4e74ad12fb98090be10 (patch)
treeea573df82dc2c76817ffa0728d82ad7373b00fe0 /modules/services/nitter/default.nix
parent671bbbfa92348a1b5c05af2d7ba25dc37e590c5f (diff)
downloadnixrc-5854407ab4aba08fdae5c4e74ad12fb98090be10.tar.gz
nixrc-5854407ab4aba08fdae5c4e74ad12fb98090be10.zip
feat(modules): add nitter
Diffstat (limited to 'modules/services/nitter/default.nix')
-rw-r--r--modules/services/nitter/default.nix39
1 files changed, 39 insertions, 0 deletions
diff --git a/modules/services/nitter/default.nix b/modules/services/nitter/default.nix
new file mode 100644
index 0000000..40e8be8
--- /dev/null
+++ b/modules/services/nitter/default.nix
@@ -0,0 +1,39 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.modules.services.nitter;
+in
+{
+  options.modules.services.nitter = {
+    enable = mkEnableOption "nitter instance";
+
+    title = mkOption { type = types.str; default = "Nitter"; description = "Title of the nitter instance"; };
+
+    domain = mkOption { type = types.str; };
+    realHost = mkOption { type = types.str; default = "nitter.${cfg.domain}"; };
+    secrets = {
+      nitter-guest-accounts = mkOption { type = types.path; description = "path to the JSONL file containing guest accounts"; };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    services.nitter = {
+      enable = true;
+
+      package = pkgs.nitter.overrideAttrs {
+        patches = [
+          ./0001-HACK-allow-non-guest-account.patch
+        ];
+      };
+
+      server = {
+        title = cfg.title;
+        address = "127.0.0.1";
+        port = 4002;
+        hostname = cfg.realHost;
+      };
+      guestAccounts = cfg.secrets.nitter-guest-accounts;
+    };
+  };
+}