nixos/go-autoconfig: init module
This commit is contained in:
@@ -263,6 +263,13 @@
|
||||
<link linkend="opt-services.expressvpn.enable">services.expressvpn</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://github.com/L11R/go-autoconfig">go-autoconfig</link>,
|
||||
IMAP/SMTP autodiscover server. Available as
|
||||
<link linkend="opt-services.go-autoconfig.enable">services.go-autoconfig</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://www.grafana.com/oss/tempo/">Grafana
|
||||
|
||||
@@ -94,6 +94,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||
|
||||
- [expressvpn](https://www.expressvpn.com), the CLI client for ExpressVPN. Available as [services.expressvpn](#opt-services.expressvpn.enable).
|
||||
|
||||
- [go-autoconfig](https://github.com/L11R/go-autoconfig), IMAP/SMTP autodiscover server. Available as [services.go-autoconfig](#opt-services.go-autoconfig.enable).
|
||||
|
||||
- [Grafana Tempo](https://www.grafana.com/oss/tempo/), a distributed tracing store. Available as [services.tempo](#opt-services.tempo.enable).
|
||||
|
||||
- [AusweisApp2](https://www.ausweisapp.bund.de/), the authentication software for the German ID card. Available as [programs.ausweisapp](#opt-programs.ausweisapp.enable).
|
||||
|
||||
@@ -804,6 +804,7 @@
|
||||
./services/networking/git-daemon.nix
|
||||
./services/networking/globalprotect-vpn.nix
|
||||
./services/networking/gnunet.nix
|
||||
./services/networking/go-autoconfig.nix
|
||||
./services/networking/go-neb.nix
|
||||
./services/networking/go-shadowsocks2.nix
|
||||
./services/networking/gobgpd.nix
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfg = config.services.go-autoconfig;
|
||||
format = pkgs.formats.yaml { };
|
||||
configFile = format.generate "config.yml" cfg.settings;
|
||||
|
||||
in {
|
||||
options = {
|
||||
services.go-autoconfig = {
|
||||
|
||||
enable = mkEnableOption (mdDoc "IMAP/SMTP autodiscover feature for mail clients");
|
||||
|
||||
settings = mkOption {
|
||||
default = { };
|
||||
description = mdDoc ''
|
||||
Configuration for go-autoconfig. See
|
||||
<https://github.com/L11R/go-autoconfig/blob/master/config.yml>
|
||||
for more information.
|
||||
'';
|
||||
type = types.submodule {
|
||||
freeformType = format.type;
|
||||
};
|
||||
example = literalExpression ''
|
||||
{
|
||||
service_addr = ":1323";
|
||||
domain = "autoconfig.example.org";
|
||||
imap = {
|
||||
server = "example.org";
|
||||
port = 993;
|
||||
};
|
||||
smtp = {
|
||||
server = "example.org";
|
||||
port = 465;
|
||||
};
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
systemd = {
|
||||
services.go-autoconfig = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
description = "IMAP/SMTP autodiscover server";
|
||||
after = [ "network.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.go-autoconfig}/bin/go-autoconfig -config ${configFile}";
|
||||
Restart = "on-failure";
|
||||
WorkingDirectory = ''${pkgs.go-autoconfig}/'';
|
||||
DynamicUser = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ onny ];
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user