{ config, lib, pkgs, ... }: let cfg = config.my.roundcube; fpm = config.services.phpfpm.pools.roundcube; roundcube = config.services.roundcube; in { options.my.roundcube = { enable = lib.mkEnableOption "roundcube webmail"; }; config = lib.mkIf cfg.enable { services.roundcube = { enable = true; configureNginx = false; package = pkgs.roundcube.withPlugins (p: with p; [ persistent_login contextmenu custom_from thunderbird_labels ]); plugins = [ "persistent_login" "contextmenu" "custom_from" "thunderbird_labels" ]; dicts = with pkgs.aspellDicts; [ en ]; extraConfig = '' $config['imap_host'] = "ssl://imap.migadu.com:993"; $config['smtp_host'] = "ssl://smtp.migadu.com:465"; $config['smtp_user'] = "%u"; $config['smtp_pass'] = "%p"; ''; }; services.phpfpm.pools.roundcube.settings = lib.mapAttrs (name: lib.mkForce) { "listen.owner" = "caddy"; "listen.group" = "caddy"; }; services.caddy.virtualHosts."mail.cy7.sh".extraConfig = '' import common root ${roundcube.package} php_fastcgi unix/${fpm.socket} file_server ''; }; }