From a1c82ab6f3279cd91e1705e4dea367a981e3c1d4 Mon Sep 17 00:00:00 2001 From: cy Date: Sat, 8 Feb 2025 01:30:04 -0500 Subject: [PATCH] add roundcube --- home/yt/ytnix.nix | 2 +- hosts/chunk/default.nix | 2 ++ modules/default.nix | 1 + modules/roundcube.nix | 48 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 modules/roundcube.nix diff --git a/home/yt/ytnix.nix b/home/yt/ytnix.nix index f925b36..9dccbd4 100644 --- a/home/yt/ytnix.nix +++ b/home/yt/ytnix.nix @@ -111,7 +111,7 @@ nixpkgs-review just hugo - ghidra-bin + ghidra sequoia sccache awscli2 diff --git a/hosts/chunk/default.nix b/hosts/chunk/default.nix index 100486b..9577771 100644 --- a/hosts/chunk/default.nix +++ b/hosts/chunk/default.nix @@ -205,4 +205,6 @@ }; virtualisation.oci-containers.backend = "podman"; environment.enableAllTerminfo = true; + + my.roundcube.enable = true; } diff --git a/modules/default.nix b/modules/default.nix index 070a96e..810c2f4 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -3,5 +3,6 @@ imports = [ ./backup.nix ./caddy.nix + ./roundcube.nix ]; } diff --git a/modules/roundcube.nix b/modules/roundcube.nix new file mode 100644 index 0000000..da0c035 --- /dev/null +++ b/modules/roundcube.nix @@ -0,0 +1,48 @@ +{ 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} + ''; + }; +}