inherit (config.users) groups;
orga = "sourcephile";
domain = "${orga}.fr";
- inboxes = [
+ repositories = [
"doclang"
"majurity"
"reloto"
- "symantic"
- "symantic-atom"
- "symantic-base"
- "symantic-cli"
- "symantic-compta"
- "symantic-document"
- "symantic-http"
- "symantic-parser"
- "symantic-xml"
+ "haskell/symantic"
+ "haskell/symantic-atom"
+ "haskell/symantic-base"
+ "haskell/symantic-cli"
+ "haskell/symantic-compta"
+ "haskell/symantic-document"
+ "haskell/symantic-http"
+ "haskell/symantic-parser"
+ "haskell/symantic-xml"
];
in
# Pour supprimer un message :
};
services.public-inbox = {
enable = true;
+ postfix.enable = true;
settings.publicinbox = {
css = [ "href=https://mails.${domain}/style/light.css" ];
nntpserver = [ "nntps://news.${domain}" ];
news = {
address = [
"news@${domain}"
- "public-inbox+news@${domain}"
];
description = ''
news@${domain} :
chat = {
address = [
"chat@${domain}"
- "public-inbox+chat@${domain}"
];
description = ''
chat@${domain} :
contact = {
address = [
"contact@${domain}"
- "public-inbox+contact@${domain}"
];
description = ''
contact@${domain} :
environnement = {
address = [
"environnement@${domain}"
- "public-inbox+environnement@${domain}"
];
description = ''
environnement@${domain} :
labo = {
address = [
"labo@${domain}"
- "public-inbox+labo@${domain}"
];
description = ''
labo@${domain} :
prod = {
address = [
"prod@${domain}"
- "public-inbox+prod@${domain}"
];
description = ''
prod@${domain} :
orga = {
address = [
"orga@${domain}"
- "public-inbox+orga@${domain}"
];
description = ''
orga@${domain} :
test = {
address = [
"test@${domain}"
- "public-inbox+test@${domain}"
];
description = ''
test@${domain} :
newsgroup = "inbox.comp.${orga}.test";
hide = [ /* FIXME: doesn't work for IMAP */"imap" "www" "manifest" ];
};
- } // lib.mapAttrs (name: {
+ } // lib.genAttrs (map baseNameOf repositories) (name: {
address = [
"${name}@${domain}"
- "public-inbox+${name}@${domain}"
];
description = ''
${name}@${domain} :
- discussions concernant ${name}.
+ discussions about ${name}.
'';
url = "https://mails.${domain}/inbox/${name}";
newsgroup = "inbox.comp.${orga}.${name}";
coderepo = [ name ];
- }) inboxes;
+ });
settings.coderepo = {
sourcephile-txt = {
dir = "/var/lib/gitolite/repositories/sourcephile-txt.git";
dir = "/var/lib/gitolite/repositories/sourcephile-nix.git";
cgitUrl = "https://code.${domain}/sourcephile-nix.git";
};
- } // lib.mapAttrs (name: {
- dir = "/var/lib/gitolite/repositories/${name}.git";
- cgitUrl = "https://code.${domain}/${name}.git";
- });
+ } // lib.listToAttrs (map (path: lib.nameValuePair (baseNameOf path) {
+ dir = "/var/lib/gitolite/repositories/${path}.git";
+ cgitUrl = "https://code.${domain}/${path}.git";
+ }) repositories);
};
-services.postfix.virtual = lib.concatMapStringsSep "\n" (name: ''
- ${name}@${domain} public-inbox@localhost
-'') inboxes;
services.sanoid.datasets."rpool/var/public-inbox" = {
- use_template = [ "local" ];
+ use_template = [ "snap" ];
daily = 7;
};
}