aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/nixos/modules/services/mail/roundcube.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/modules/services/mail/roundcube.nix')
-rw-r--r--nixpkgs/nixos/modules/services/mail/roundcube.nix18
1 files changed, 15 insertions, 3 deletions
diff --git a/nixpkgs/nixos/modules/services/mail/roundcube.nix b/nixpkgs/nixos/modules/services/mail/roundcube.nix
index ed1439745ac..a0bbab64985 100644
--- a/nixpkgs/nixos/modules/services/mail/roundcube.nix
+++ b/nixpkgs/nixos/modules/services/mail/roundcube.nix
@@ -95,6 +95,18 @@ in
'';
};
+ maxAttachmentSize = mkOption {
+ type = types.int;
+ default = 18;
+ description = ''
+ The maximum attachment size in MB.
+
+ Note: Since roundcube only uses 70% of max upload values configured in php
+ 30% is added automatically to <xref linkend="opt-services.roundcube.maxAttachmentSize"/>.
+ '';
+ apply = configuredMaxAttachmentSize: "${toString (configuredMaxAttachmentSize * 1.3)}M";
+ };
+
extraConfig = mkOption {
type = types.lines;
default = "";
@@ -115,7 +127,7 @@ in
$config = array();
$config['db_dsnw'] = 'pgsql://${cfg.database.username}${lib.optionalString (!localDB) ":' . $password . '"}@${if localDB then "unix(/run/postgresql)" else cfg.database.host}/${cfg.database.dbname}';
$config['log_driver'] = 'syslog';
- $config['max_message_size'] = '25M';
+ $config['max_message_size'] = '${cfg.maxAttachmentSize}';
$config['plugins'] = [${concatMapStringsSep "," (p: "'${p}'") cfg.plugins}];
$config['des_key'] = file_get_contents('/var/lib/roundcube/des_key');
$config['mime_types'] = '${pkgs.nginx}/conf/mime.types';
@@ -172,8 +184,8 @@ in
phpOptions = ''
error_log = 'stderr'
log_errors = on
- post_max_size = 25M
- upload_max_filesize = 25M
+ post_max_size = ${cfg.maxAttachmentSize}
+ upload_max_filesize = ${cfg.maxAttachmentSize}
'';
settings = mapAttrs (name: mkDefault) {
"listen.owner" = "nginx";