From 6128836b08163b24a4d81259cf912fa9a0f5c2db Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Sun, 11 Dec 2022 16:28:50 +0100 Subject: [PATCH] service/freshrss: add module --- modules/services/default.nix | 1 + modules/services/freshrss/default.nix | 68 +++++++++++++++++++++++++++ pkgs/default.nix | 4 -- 3 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 modules/services/freshrss/default.nix diff --git a/modules/services/default.nix b/modules/services/default.nix index 81350ea..7fc4331 100644 --- a/modules/services/default.nix +++ b/modules/services/default.nix @@ -2,6 +2,7 @@ { imports = [ ./backup + ./freshrss ./gitea ./hedgedoc ./homepage diff --git a/modules/services/freshrss/default.nix b/modules/services/freshrss/default.nix new file mode 100644 index 0000000..5c1cadc --- /dev/null +++ b/modules/services/freshrss/default.nix @@ -0,0 +1,68 @@ +# RSS aggregator and reader +{ config, lib, pkgs, ... }: +let + cfg = config.my.services.freshrss; + domain = config.networking.domain; +in +{ + options.my.services.freshrss = with lib; { + enable = lib.mkEnableOption "FreshRSS feed reader"; + + package = mkOption { + type = types.package; + default = pkgs.freshrss; + description = "Which FreshRSS package to use."; + }; + + defaultUser = mkOption { + type = types.str; + default = "admin"; + description = "Default username for FreshRSS."; + example = "eva"; + }; + + passwordFile = mkOption { + type = types.path; + description = "Password for the defaultUser for FreshRSS."; + example = "/run/secrets/freshrss"; + }; + + baseUrl = mkOption { + type = types.str; + description = "Default URL for FreshRSS."; + example = "https://freshrss.example.com"; + }; + + language = mkOption { + type = types.str; + default = "en"; + description = "Default language for FreshRSS."; + example = "de"; + }; + }; + + config = lib.mkIf cfg.enable { + services.freshrss = { + enable = true; + inherit (cfg) baseUrl language passwordFile defaultUser; + }; + + # Set up a Nginx virtual host. + services.nginx = { + virtualHosts."freshrss" = { + serverName = "news.${domain}"; + forceSSL = true; + useACMEHost = domain; + }; + }; + + webapps.apps.freshrss = { + dashboard = { + name = "FreshRSS"; + category = "app"; + icon = "newspaper"; + link = "https://news.${domain}"; + }; + }; + }; +} diff --git a/pkgs/default.nix b/pkgs/default.nix index 2a25abe..9926166 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,7 +1,3 @@ -#{ pkgs }: -#pkgs.lib.makeScope pkgs.newScope (pkgs: { -# homarr = pkgs.callPackage ./homarr { }; -#}) final: prev: { homer = final.callPackage ./homer { };