mailserver: add dashboard contract

This commit is contained in:
ibizaman 2026-04-15 01:06:12 +02:00 committed by Pierre Penninckx
parent a237cdfc7b
commit b01cc68ac3
3 changed files with 47 additions and 0 deletions

View file

@ -4472,6 +4472,9 @@
"services-mailserver": [
"services-mailserver.html#services-mailserver"
],
"services-mailserver-applicationdashboard": [
"services-mailserver.html#services-mailserver-applicationdashboard"
],
"services-mailserver-certs": [
"services-mailserver.html#services-mailserver-certs"
],
@ -4601,6 +4604,21 @@
"services-mailserver-options-shb.mailserver.backupDKIM.result.restoreScript": [
"services-mailserver.html#services-mailserver-options-shb.mailserver.backupDKIM.result.restoreScript"
],
"services-mailserver-options-shb.mailserver.dashboard": [
"services-mailserver.html#services-mailserver-options-shb.mailserver.dashboard"
],
"services-mailserver-options-shb.mailserver.dashboard.request": [
"services-mailserver.html#services-mailserver-options-shb.mailserver.dashboard.request"
],
"services-mailserver-options-shb.mailserver.dashboard.request.externalUrl": [
"services-mailserver.html#services-mailserver-options-shb.mailserver.dashboard.request.externalUrl"
],
"services-mailserver-options-shb.mailserver.dashboard.request.internalUrl": [
"services-mailserver.html#services-mailserver-options-shb.mailserver.dashboard.request.internalUrl"
],
"services-mailserver-options-shb.mailserver.dashboard.result": [
"services-mailserver.html#services-mailserver-options-shb.mailserver.dashboard.result"
],
"services-mailserver-options-shb.mailserver.domain": [
"services-mailserver.html#services-mailserver-options-shb.mailserver.domain"
],

View file

@ -398,6 +398,19 @@ in
}
'';
};
dashboard = lib.mkOption {
description = ''
Dashboard contract consumer
'';
default = { };
type = lib.types.submodule {
options = shb.contracts.dashboard.mkRequester {
externalUrl = "https://${cfg.subdomain}.${cfg.domain}";
externalUrlText = "https://\${config.shb.mailserver.subdomain}.\${config.shb.mailserver.domain}";
};
};
};
};
config = lib.mkMerge [

View file

@ -200,6 +200,22 @@ shb.lldap.ensureUsers.USERNAME.groups = [
];
```
### Application Dashboard {#services-mailserver-applicationdashboard}
Integration with the [dashboard contract](contracts-dashboard.html) is provided
by the [dashboard option](#services-mailserver-options-shb.mailserver.dashboard).
For example using the [Homepage](services-homepage.html) service:
```nix
{
shb.homepage.servicesGroups.Home.services.Mailserver = {
sortOrder = 1;
dashboard.request = config.shb.mailserver.dashboard.request;
};
}
```
## Debug {#services-mailserver-debug}
Debugging this will be certainly necessary.