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:
parent
78ef729197
commit
4d38f03718
4 changed files with 55 additions and 1 deletions
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
42
services/self_host/mail.nix
Normal file
42
services/self_host/mail.nix
Normal 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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue