nixos/modules/services/freshrss.nix

53 lines
1.6 KiB
Nix
Raw Normal View History

2023-11-06 18:29:46 +08:00
inputs:
{
options.nixos.services.freshrss = let inherit (inputs.lib) mkOption types; in
{
enable = mkOption { type = types.bool; default = false; };
hostname = mkOption { type = types.str; default = "freshrss.chn.moe"; };
};
config =
let
inherit (inputs.config.nixos.services) freshrss;
inherit (inputs.lib) mkIf;
in mkIf freshrss.enable
{
services.freshrss =
{
enable = true;
baseUrl = "https://${freshrss.hostname}";
defaultUser = "chn";
passwordFile = inputs.config.sops.secrets."freshrss/chn".path;
2023-11-16 15:51:47 +08:00
database = { type = "mysql"; passFile = inputs.config.sops.secrets."freshrss/db".path; };
2023-11-07 15:06:51 +08:00
virtualHost = null;
2023-11-06 18:29:46 +08:00
};
sops.secrets =
{
"freshrss/chn".owner = inputs.config.users.users.freshrss.name;
2023-11-16 15:51:47 +08:00
"freshrss/db" = { owner = inputs.config.users.users.freshrss.name; key = "mariadb/freshrss"; };
2023-11-06 18:29:46 +08:00
};
2023-11-06 18:30:58 +08:00
systemd.services.freshrss-config.after = [ "mysql.service" ];
2023-11-07 15:06:51 +08:00
nixos.services =
{
mariadb = { enable = true; instances.freshrss = {}; };
2023-11-09 22:19:37 +08:00
nginx.https.${freshrss.hostname} =
2023-11-07 15:06:51 +08:00
{
2023-11-09 22:19:37 +08:00
location =
2023-11-07 15:06:51 +08:00
{
"/".static =
{
root = "${inputs.pkgs.freshrss}/p";
index = [ "index.php" ];
tryFiles = [ "$uri" "$uri/" "$uri/index.php" ];
};
"~ ^.+?\.php(/.*)?$".php =
{
root = "${inputs.pkgs.freshrss}/p";
fastcgiPass =
"unix:${inputs.config.services.phpfpm.pools.${inputs.config.services.freshrss.pool}.socket}";
};
};
};
};
2023-11-06 18:29:46 +08:00
};
}