Skip to content

Commit

Permalink
nixos/godns: init module
Browse files Browse the repository at this point in the history
Initial implementation of the GoDNS service module. This module allows users to enable and configure the GoDNS service on their NixOS system. It includes options for specifying the GoDNS package and the path to the configuration file.
  • Loading branch information
michaelvanstraten committed Oct 13, 2024
1 parent 894c2d5 commit 62ee801
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 0 deletions.
1 change: 1 addition & 0 deletions nixos/modules/module-list.nix
Original file line number Diff line number Diff line change
Expand Up @@ -1053,6 +1053,7 @@
./services/networking/go-neb.nix
./services/networking/go-shadowsocks2.nix
./services/networking/gobgpd.nix
./services/networking/godns.nix
./services/networking/gvpe.nix
./services/networking/hans.nix
./services/networking/harmonia.nix
Expand Down
55 changes: 55 additions & 0 deletions nixos/modules/services/networking/godns.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.godns;

inherit (lib)
mkEnableOption
mkIf
mkOption
mkPackageOption
types
;
in
{

options.services.godns = {
enable = mkEnableOption "GoDNS Service";

package = mkPackageOption pkgs "godns" { };

configPath = mkOption {
type = types.path;
description = "Path to the configuration file for godns.";
example = "/etc/godns/config.json";
};
};

config = mkIf cfg.enable {
systemd.services.godns = {
description = "GoDNS Service";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
ExecStart = "${lib.getExe cfg.package} -c ${cfg.configPath}";
Restart = "always";
KillMode = "process";
RestartSec = "2s";
};
};
};

meta = {
maintainers = [ lib.maintainers.michaelvanstraten ];
doc = ''
The GoDNS service module allows users to enable and configure the GoDNS service on their NixOS system.
For more information, visit the [GoDNS GitHub repository](https://github.com/TimothyYe/godns).
'';
};

}

0 comments on commit 62ee801

Please sign in to comment.