From 63585505253da7d6bf9be97ce7bde23174d085a3 Mon Sep 17 00:00:00 2001 From: William Date: Thu, 16 Apr 2026 16:04:50 -0300 Subject: [PATCH] alexandria: restore miniflux and remove tt-rss --- aspects/hosts/_alexandria/miniflux.nix | 35 ++++++++++++++++++ aspects/hosts/_alexandria/ttrss.nix | 43 ----------------------- data/services.nix | 2 +- packages/tt-rss-plugin-af-readability.nix | 33 ----------------- secrets/miniflux-admincreds.age | 9 +++++ secrets/secrets.nix | 5 +++ 6 files changed, 50 insertions(+), 77 deletions(-) create mode 100644 aspects/hosts/_alexandria/miniflux.nix delete mode 100644 aspects/hosts/_alexandria/ttrss.nix delete mode 100644 packages/tt-rss-plugin-af-readability.nix create mode 100644 secrets/miniflux-admincreds.age diff --git a/aspects/hosts/_alexandria/miniflux.nix b/aspects/hosts/_alexandria/miniflux.nix new file mode 100644 index 0000000..a1f3ca3 --- /dev/null +++ b/aspects/hosts/_alexandria/miniflux.nix @@ -0,0 +1,35 @@ +{ config, inputs, ... }: + +let + mkNginxVHosts = inputs.self.lib.mkNginxVHosts; +in + +{ + services = { + miniflux = { + enable = true; + config = { + LISTEN_ADDR = "localhost:8080"; + CREATE_ADMIN = 1; + FETCHER_ALLOW_PRIVATE_NETWORKS = 1; + POLLING_SCHEDULER = "entry_frequency"; + SCHEDULER_ENTRY_FREQUENCY_MIN_INTERVAL = 60; + SCHEDULER_ENTRY_FREQUENCY_MAX_INTERVAL = 10080; + }; + adminCredentialsFile = config.age.secrets.miniflux-admincreds.path; + createDatabaseLocally = true; + }; + + nginx.virtualHosts = mkNginxVHosts { + domains."rss.baduhai.dev" = { + locations."/".proxyPass = "http://${config.services.miniflux.config.LISTEN_ADDR}/"; + }; + }; + }; + + age.secrets.miniflux-admincreds = { + file = "${inputs.self}/secrets/miniflux-admincreds.age"; + owner = "miniflux"; + group = "miniflux"; + }; +} diff --git a/aspects/hosts/_alexandria/ttrss.nix b/aspects/hosts/_alexandria/ttrss.nix deleted file mode 100644 index ec447e5..0000000 --- a/aspects/hosts/_alexandria/ttrss.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ - config, - inputs, - pkgs, - ... -}: - -let - mkNginxVHosts = inputs.self.lib.mkNginxVHosts; -in - -{ - services = { - "tt-rss" = { - enable = true; - selfUrlPath = "https://rss.baduhai.dev"; - singleUserMode = true; - virtualHost = null; - database.createLocally = true; - pluginPackages = with pkgs; [ - tt-rss-theme-feedly - tt-rss-plugin-af-readability - ]; - }; - - nginx.virtualHosts = mkNginxVHosts { - domains."rss.baduhai.dev" = { - root = "${config.services."tt-rss".root}/www"; - locations = { - "/".index = "index.php"; - "~* /feed-icons/(\\d+)\\.ico".return = "302 /public.php?op=feed_icon&id=$1"; - "~ \\.php$" = { - extraConfig = '' - fastcgi_split_path_info ^(.+\.php)(/.+)$; - fastcgi_pass unix:${config.services.phpfpm.pools.${config.services."tt-rss".pool}.socket}; - fastcgi_index index.php; - ''; - }; - }; - }; - }; - }; -} diff --git a/data/services.nix b/data/services.nix index 0ebf8e7..9f04d89 100644 --- a/data/services.nix +++ b/data/services.nix @@ -34,7 +34,7 @@ host = "alexandria"; } { - name = "tt-rss"; + name = "miniflux"; domain = "rss.baduhai.dev"; host = "alexandria"; } diff --git a/packages/tt-rss-plugin-af-readability.nix b/packages/tt-rss-plugin-af-readability.nix deleted file mode 100644 index 98342e7..0000000 --- a/packages/tt-rss-plugin-af-readability.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ ... }: - -{ - perSystem = - { pkgs, ... }: - { - packages.tt-rss-plugin-af-readability = pkgs.stdenv.mkDerivation { - pname = "tt-rss-plugin-af-readability"; - version = "unstable-2025-10-16"; - - src = pkgs.fetchFromGitHub { - owner = "tt-rss"; - repo = "tt-rss-plugin-af-readability"; - rev = "fce528aa69c2a7193fb7eb3a3cd9dd17885d6ab6"; - hash = "sha256-3rxrICtm6+ujlBHj5Su2sSEq3lgiHhQMJ/OVfzhzYXA="; - }; - - installPhase = '' - mkdir -p $out/af_readability - - cp -a * $out/af_readability/ - ''; - - meta = { - description = "Plugin for TT-RSS to inline article content using Readability"; - license = pkgs.lib.licenses.gpl3; - homepage = "https://github.com/tt-rss/tt-rss-plugin-af-readability/"; - maintainers = with pkgs.lib.maintainers; [ gdamjan ]; - inherit (pkgs.tt-rss.meta) platforms; - }; - }; - }; -} diff --git a/secrets/miniflux-admincreds.age b/secrets/miniflux-admincreds.age new file mode 100644 index 0000000..f5269f0 --- /dev/null +++ b/secrets/miniflux-admincreds.age @@ -0,0 +1,9 @@ +age-encryption.org/v1 +-> ssh-ed25519 Kfdnog QEq4A011oVny6vo1+wOcQNnpkf77216PZXJqK4rGTGY +FPeASmXRirxeF2T2jXhA/tEaO0p1CZJ6D3lv3p2KTX0 +-> ssh-ed25519 8YSAiw gxuXAt2nG6qXhWwAAiFwNCNYJV2VGKnDNkjU61NOJ2o +xncp+M4lVixiTmXQU5QrtdQ860t/1JpvOcO4YXAy3to +-> ssh-ed25519 J6tVTA Mr0XrEFP/o7nFWBKal+ehzMiejWpVDIBiiMqWzdOzEM +0DTqm2LyMMlVZlTk67Y3hTiVjcJG9gprnXj6QjYxrJw +--- FXUNp6O7vuibJj0RI3SZN3IBK1Hx5ouUij2ah05lCYA +X*0B3jb͏SVbBciD.5\`&`越-Ui"gХȊ`O Gc'=@qn[ \ No newline at end of file diff --git a/secrets/secrets.nix b/secrets/secrets.nix index a90cd74..d052896 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -32,4 +32,9 @@ in rotterdam-user trantor ]; + "miniflux-admincreds.age".publicKeys = [ + io-user + rotterdam-user + alexandria + ]; }