mirror of
https://github.com/CHN-beta/nixos.git
synced 2024-10-24 16:18:44 +08:00
53 lines
1.6 KiB
Nix
53 lines
1.6 KiB
Nix
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;
|
|
database = { type = "mysql"; passFile = inputs.config.sops.secrets."freshrss/db".path; };
|
|
virtualHost = null;
|
|
};
|
|
sops.secrets =
|
|
{
|
|
"freshrss/chn".owner = inputs.config.users.users.freshrss.name;
|
|
"freshrss/db" = { owner = inputs.config.users.users.freshrss.name; key = "mariadb/freshrss"; };
|
|
};
|
|
systemd.services.freshrss-config.after = [ "mysql.service" ];
|
|
nixos.services =
|
|
{
|
|
mariadb = { enable = true; instances.freshrss = {}; };
|
|
nginx.https.${freshrss.hostname} =
|
|
{
|
|
location =
|
|
{
|
|
"/".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}";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|