diff --git a/nixos/modules/services/web-apps/tt-rss.nix b/nixos/modules/services/web-apps/tt-rss.nix
index 610c6463a5eb..1646ee5964fb 100644
--- a/nixos/modules/services/web-apps/tt-rss.nix
+++ b/nixos/modules/services/web-apps/tt-rss.nix
@@ -76,6 +76,8 @@ let
define('SMTP_FROM_NAME', '${escape ["'" "\\"] cfg.email.fromName}');
define('SMTP_FROM_ADDRESS', '${escape ["'" "\\"] cfg.email.fromAddress}');
define('DIGEST_SUBJECT', '${escape ["'" "\\"] cfg.email.digestSubject}');
+
+ ${cfg.extraConfig}
'';
in {
@@ -431,6 +433,26 @@ let
'';
};
+ pluginPackages = mkOption {
+ type = types.listOf types.package;
+ default = [];
+ description = ''
+ List of plugins to install. The list elements are expected to
+ be derivations. All elements in this derivation are automatically
+ copied to the plugins.local directory.
+ '';
+ };
+
+ themePackages = mkOption {
+ type = types.listOf types.package;
+ default = [];
+ description = ''
+ List of themes to install. The list elements are expected to
+ be derivations. All elements in this derivation are automatically
+ copied to the themes.local directory.
+ '';
+ };
+
logDestination = mkOption {
type = types.enum ["" "sql" "syslog"];
default = "sql";
@@ -441,6 +463,14 @@ let
error.log).
'';
};
+
+ extraConfig = mkOption {
+ type = types.lines;
+ default = "";
+ description = ''
+ Additional lines to append to config.php.
+ '';
+ };
};
};
@@ -517,6 +547,16 @@ let
rm -rf "${cfg.root}/*"
mkdir -m 755 -p "${cfg.root}"
cp -r "${pkgs.tt-rss}/"* "${cfg.root}"
+ ${optionalString (cfg.pluginPackages != []) ''
+ for plugin in ${concatStringsSep " " cfg.pluginPackages}; do
+ cp -r "$plugin"/* "${cfg.root}/plugins.local/"
+ done
+ ''}
+ ${optionalString (cfg.themePackages != []) ''
+ for theme in ${concatStringsSep " " cfg.themePackages}; do
+ cp -r "$theme"/* "${cfg.root}/themes.local/"
+ done
+ ''}
ln -sf "${tt-rss-config}" "${cfg.root}/config.php"
chown -R "${cfg.user}" "${cfg.root}"
chmod -R 755 "${cfg.root}"