automatically bootstrap mail accounts

This commit is contained in:
Jonas Heinrich 2022-12-03 13:18:29 +01:00
parent 73f96265b1
commit c319bfea1f
2 changed files with 54 additions and 2 deletions

View file

@ -1,2 +1,2 @@
all: all:
sudo -E QEMU_NET_OPTS="hostfwd=tcp::80-:80" NIX_PATH=nixpkgs=/home/onny/projects/nixpkgs nixos-shell vm-nextcloud.nix QEMU_NET_OPTS="hostfwd=tcp::8080-:80,hostfwd=tcp::1433-:143,hostfwd=tcp::2525-:25" NIX_PATH=nixpkgs=/home/onny/projects/nixpkgs nixos-shell vm-nextcloud.nix

View file

@ -1,10 +1,26 @@
{ pkgs, ... }: { { pkgs, ... }: {
nixpkgs = {
overlays = [
(self: super: {
# Remove first run wizard from Nextcloud package
nextcloud25 = super.nextcloud25.overrideAttrs (oldAttrs: rec {
installPhase = oldAttrs.installPhase + ''
rm -r $out/apps/firstrunwizard
'';
});
})
];
};
services.nextcloud = { services.nextcloud = {
enable = true; enable = true;
package = pkgs.nextcloud25; package = pkgs.nextcloud25;
hostName = "localhost"; hostName = "localhost";
config.adminpassFile = "${pkgs.writeText "adminpass" "hunter2"}"; config = {
adminuser = "admin";
adminpassFile = "${pkgs.writeText "adminpass" "test123"}";
};
extraApps = { extraApps = {
circles = pkgs.fetchNextcloudApp rec { circles = pkgs.fetchNextcloudApp rec {
url = "https://github.com/nextcloud-releases/circles/releases/download/0.21.4/circles-0.21.4.tar.gz"; url = "https://github.com/nextcloud-releases/circles/releases/download/0.21.4/circles-0.21.4.tar.gz";
@ -14,9 +30,45 @@
url = "https://github.com/nextcloud-releases/calendar/releases/download/v4.1.0/calendar-v4.1.0.tar.gz"; url = "https://github.com/nextcloud-releases/calendar/releases/download/v4.1.0/calendar-v4.1.0.tar.gz";
sha256 = "sha256-KALFhCNjofFQMntv3vyL0TJxqD/mBkeDpxt8JV4CPAM="; sha256 = "sha256-KALFhCNjofFQMntv3vyL0TJxqD/mBkeDpxt8JV4CPAM=";
}; };
mail = pkgs.nextcloud25Packages.apps.mail;
}; };
}; };
services.maddy = {
enable = true;
hostname = "localhost";
primaryDomain = "localhost";
};
programs.msmtp = {
enable = true;
accounts.default = {
host = "localhost";
tls = false;
port = 587;
from = "admin@localhost";
user = "admin@localhost";
password = "test123";
};
};
systemd.services.maddy-accounts = {
script = ''
set -eu
${pkgs.coreutils}/bin/echo "Creating mail users and inboxes"
${pkgs.maddy}/bin/maddyctl creds create --password test123 user1@localhost
${pkgs.maddy}/bin/maddyctl imap-acct create user1@localhost
${pkgs.maddy}/bin/maddyctl creds create --password test123 user2@localhost
${pkgs.maddy}/bin/maddyctl imap-acct create user2@localhost
'';
serviceConfig = {
Type = "oneshot";
User= "maddy";
};
after = [ "maddy.service" ];
wantedBy = [ "multi-user.target" ];
};
documentation.info.enable = false; documentation.info.enable = false;
documentation.man.enable = false; documentation.man.enable = false;
documentation.nixos.enable = false; documentation.nixos.enable = false;