From 90e673b1b8e32cd66c7311cb9036a2d2cf32ee4a Mon Sep 17 00:00:00 2001 From: Matt Christ Date: Sun, 14 Apr 2024 09:10:51 -0500 Subject: [PATCH] nixos/freshrss: fix startup when authType = "none" Prior to this patch, FreshRSS fails to load with an initial `authType = "none"` setting, instead providing an error: "Error during context user init!" To fix this, this patch changes the freshrss-config service to setup the initial `defaultUser` when `authType = "none"` is configured. --- nixos/modules/services/web-apps/freshrss.nix | 6 +++--- nixos/tests/all-tests.nix | 1 + nixos/tests/freshrss-none-auth.nix | 19 +++++++++++++++++++ pkgs/servers/web-apps/freshrss/default.nix | 2 +- 4 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 nixos/tests/freshrss-none-auth.nix diff --git a/nixos/modules/services/web-apps/freshrss.nix b/nixos/modules/services/web-apps/freshrss.nix index edec9d547a30..8c3822f99975 100644 --- a/nixos/modules/services/web-apps/freshrss.nix +++ b/nixos/modules/services/web-apps/freshrss.nix @@ -268,11 +268,11 @@ in script = let - userScriptArgs = ''--user ${cfg.defaultUser} --password "$(cat ${cfg.passwordFile})"''; - updateUserScript = optionalString (cfg.authType == "form") '' + userScriptArgs = ''--user ${cfg.defaultUser} ${optionalString (cfg.authType == "form") ''--password "$(cat ${cfg.passwordFile})"''}''; + updateUserScript = optionalString (cfg.authType == "form" || cfg.authType == "none") '' ./cli/update-user.php ${userScriptArgs} ''; - createUserScript = optionalString (cfg.authType == "form") '' + createUserScript = optionalString (cfg.authType == "form" || cfg.authType == "none") '' ./cli/create-user.php ${userScriptArgs} ''; in diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 8961bbc075c9..fd2a66fc36ff 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -328,6 +328,7 @@ in { freshrss-sqlite = handleTest ./freshrss-sqlite.nix {}; freshrss-pgsql = handleTest ./freshrss-pgsql.nix {}; freshrss-http-auth = handleTest ./freshrss-http-auth.nix {}; + freshrss-none-auth = handleTest ./freshrss-none-auth.nix {}; frigate = handleTest ./frigate.nix {}; frp = handleTest ./frp.nix {}; frr = handleTest ./frr.nix {}; diff --git a/nixos/tests/freshrss-none-auth.nix b/nixos/tests/freshrss-none-auth.nix new file mode 100644 index 000000000000..fd63470386a0 --- /dev/null +++ b/nixos/tests/freshrss-none-auth.nix @@ -0,0 +1,19 @@ +import ./make-test-python.nix ({ lib, pkgs, ... }: { + name = "freshrss"; + meta.maintainers = with lib.maintainers; [ mattchrist ]; + + nodes.machine = { pkgs, ... }: { + services.freshrss = { + enable = true; + baseUrl = "http://localhost"; + authType = "none"; + }; + }; + + testScript = '' + machine.wait_for_unit("multi-user.target") + machine.wait_for_open_port(80) + response = machine.succeed("curl -vvv -s http://127.0.0.1:80/i/") + assert 'Main stream ยท FreshRSS' in response, "FreshRSS stream page didn't load successfully" + ''; +}) diff --git a/pkgs/servers/web-apps/freshrss/default.nix b/pkgs/servers/web-apps/freshrss/default.nix index 639a9a780c62..9cf085f8c2b0 100644 --- a/pkgs/servers/web-apps/freshrss/default.nix +++ b/pkgs/servers/web-apps/freshrss/default.nix @@ -17,7 +17,7 @@ stdenvNoCC.mkDerivation rec { }; passthru.tests = { - inherit (nixosTests) freshrss-sqlite freshrss-pgsql freshrss-http-auth; + inherit (nixosTests) freshrss-sqlite freshrss-pgsql freshrss-http-auth freshrss-none-auth; }; buildInputs = [ php ];