Files
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

890 B

dsnet

dsnet is a CLI tool to manage a centralised wireguard server. It allows easy generation of client configuration, handling key generation, IP allocation etc.

It keeps its own configuration at /etc/dsnetconfig.json, which is more of a database. It contains key material too.

The way this module works is to patch this database with whatever is configured in the nix service instantiation. This happens automatically when required.

This way it is possible to decide what to let dnset manage and what parts you want to keep declaratively.

services.dsnet = {
  enable = true;
  settings = {
    ExternalHostname = "vpn.example.com";
    Network = "10.171.90.0/24";
    Network6 = "";
    IP = "10.171.90.1";
    IP6 = "";
    DNS = "10.171.90.1";
    Networks = [ "0.0.0.0/0" ];
  };

See https://github.com/naggie/dsnet for more information.