3 path = "../../openarc";
7 path = "../../secrets";
10 inputs.files-watcher = {
11 path = "../../files-watcher";
18 inputs.nix-lib.url = "github:NixOS/nixpkgs";
20 description = "Private configuration for openarc";
21 outputs = { self, nix-lib, my-lib, files-watcher, openarc, secrets }:
23 cfg = name': { config, lib, pkgs, name, ... }: {
25 (my-lib.lib.withNarKey files-watcher "nixosModule")
26 (my-lib.lib.withNarKey openarc "nixosModule")
27 (my-lib.lib.withNarKey secrets "nixosModule")
29 config = lib.mkIf (name == name') {
33 socket = "/run/openarc/openarc.sock";
34 group = config.services.postfix.group;
35 configFile = pkgs.writeText "openarc.conf" ''
36 AuthservID mail.immae.eu
38 KeyFile ${config.secrets.fullPaths."opendkim/eldiron.private"}
45 systemd.services.openarc.serviceConfig.Slice = "mail.slice";
46 systemd.services.openarc.postStart = ''
47 while [ ! -S ${config.services.openarc.socket} ]; do
50 chmod g+w ${config.services.openarc.socket}
52 services.filesWatcher.openarc = {
55 config.secrets.fullPaths."opendkim/eldiron.private"
62 { nixosModules = openarc.nixosModules or {} // nix-lib.lib.genAttrs ["eldiron" "backup-2"] cfg; };