feat(server/mail): adding mail configuration for enium mailing

- working but not with my current configuration...
- have to see how to fix the issues with the freebox (not allowed to
touch the port 25)
This commit is contained in:
Raphael 2025-08-24 18:36:19 +02:00
parent 78ef729197
commit 4d38f03718
4 changed files with 55 additions and 1 deletions

View file

@ -7,11 +7,12 @@
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver";
minecraft.url = "github:Infinidoge/nix-minecraft"; minecraft.url = "github:Infinidoge/nix-minecraft";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
}; };
outputs = { self, nixpkgs, flake-utils, ... }@inputs: outputs = { self, nixpkgs, flake-utils, simple-nixos-mailserver, ... }@inputs:
let let
pkgs = import nixpkgs { pkgs = import nixpkgs {
config.allowUnfree = true; config.allowUnfree = true;
@ -31,6 +32,7 @@
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
./hosts/server/configuration.nix ./hosts/server/configuration.nix
simple-nixos-mailserver.nixosModule
]; ];
specialArgs = { specialArgs = {
inherit inputs; inherit inputs;

View file

@ -23,6 +23,7 @@
selfhost = { selfhost = {
htop = true; htop = true;
ollama = false; ollama = false;
mail = false;
monitor = true; monitor = true;
teamspeak = true; teamspeak = true;
nextcloud = true; nextcloud = true;

View file

@ -4,6 +4,9 @@ let
htop = import ./self_host/htop.nix { htop = import ./self_host/htop.nix {
inherit inputs config pkgs lib; inherit inputs config pkgs lib;
}; };
mail = import ./self_host/mail.nix {
inherit inputs config pkgs lib;
};
monitor = import ./self_host/monitor.nix { monitor = import ./self_host/monitor.nix {
inherit inputs config pkgs lib; inherit inputs config pkgs lib;
}; };
@ -21,6 +24,7 @@ in
{ {
imports = [ imports = [
nextcloud nextcloud
mail
htop htop
ollama ollama
teamspeak teamspeak
@ -48,6 +52,11 @@ in
default = false; default = false;
description = "Enable the ollama"; description = "Enable the ollama";
}; };
mail = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable the mail";
};
monitor = lib.mkOption { monitor = lib.mkOption {
type = lib.types.bool; type = lib.types.bool;
default = false; default = false;

View file

@ -0,0 +1,42 @@
{ config, pkgs, lib, ... }:
let
cfg = config.service.selfhost.mail;
in
{
config = lib.mkIf cfg {
services.rspamd.enable = true;
mailserver = {
enable = true;
stateVersion = 3;
fqdn = "mail.enium.eu";
domains = [
"enium.eu"
];
loginAccounts = {
"no-reply@enium.eu" = {
hashedPasswordFile = "/root/mail-passwd.txt";
};
};
certificateScheme = "acme-nginx";
};
services = {
roundcube = {
enable = true;
hostName = "mail.enium.eu";
extraConfig = ''
$config['smtp_host'] = "tls://mail.enium.eu";
$config['smtp_user'] = "%u";
$config['smtp_pass'] = "%p";
'';
};
nginx = {
virtualHosts."mail.enium.eu" = {
forceSSL = true;
enableACME = true;
};
};
};
};
}