diff --git a/docs/roundcube-caddy.nix b/docs/roundcube-caddy.nix new file mode 100644 index 0000000..938e073 --- /dev/null +++ b/docs/roundcube-caddy.nix @@ -0,0 +1,17 @@ +{ config, ... }: +{ + services.nginx.virtualHosts.${config.services.roundcube.hostName} = { + forceSSL = false; + enableACME = false; + listen = [ + { + addr = "127.0.0.1"; + port = 8000; + } + ]; + }; + + services.caddy.virtualHosts."${config.services.roundcube.hostName}".extraConfig = '' + reverse_proxy localhost:8000 + ''; +} diff --git a/docs/roundcube.nix b/docs/roundcube.nix index 5ec7efb..23e1e73 100644 --- a/docs/roundcube.nix +++ b/docs/roundcube.nix @@ -10,26 +10,34 @@ hostName = "webmail.example.com"; # the nginx vhost package = pkgs.roundcube.withPlugins ( plugins: with plugins; [ + # external plugins to be included # https://search.nixos.org/packages?query=roundcubePlugins persistent_login ] ); + # activate plugins + plugins = [ + "persistent_login" + "managesieve" # built-in + ]; dicts = with pkgs.aspellDicts; [ # https://search.nixos.org/packages?query=aspellDicts en ]; - # Account for ~30% size increase due to base64 encoding of attachments - # https://github.com/roundcube/roundcubemail/issues/7979 - maxAttachmentSize = config.mailserver.messageSizeLimit / 1024 / 1024 / 1.37; + maxAttachmentSize = config.mailserver.messageSizeLimit / 1024 / 1024; extraConfig = '' $config['imap_host'] = "ssl://${config.mailserver.fqdn}"; $config['smtp_host'] = "ssl://${config.mailserver.fqdn}"; $config['smtp_user'] = "%u"; $config['smtp_pass'] = "%p"; + + $config['managesieve_host'] = "tls://${config.mailserver.fqdn}"; + $config['managesieve_port'] = 4190; + $config['managesieve_usetls'] = true; ''; }; - services.nginx.virtualHosts.${config.services.rounducbe.hostName} = { + services.nginx.virtualHosts.${config.services.roundcube.hostName} = { enableACME = true; forceSSL = true; }; diff --git a/docs/roundcube.rst b/docs/roundcube.rst index c1f99ee..408fc92 100644 --- a/docs/roundcube.rst +++ b/docs/roundcube.rst @@ -17,3 +17,10 @@ Once set up you can login with your login account credentials. .. literalinclude:: ./roundcube.nix :language: nix + +To use a different reverse proxy, such as Caddy, bind Roundcube's Nginx virtual +host to ``127.0.0.1`` on a custom port and disable SSL and ACME, as the reverse +proxy will handle those. + +.. literalinclude:: ./roundcube-caddy.nix + :language: nix \ No newline at end of file