nixos/README.md: relax the requirement of providing option defaults (#334509)
[NixPkgs.git] / nixos / modules / services / networking / go-shadowsocks2.nix
blob810c3b48eae17e0b6f6dd5b1244000c89bdd69f0
2   config,
3   lib,
4   pkgs,
5   ...
6 }:
7 let
8   cfg = config.services.go-shadowsocks2.server;
9 in
11   options.services.go-shadowsocks2.server = {
12     enable = lib.mkEnableOption "go-shadowsocks2 server";
14     listenAddress = lib.mkOption {
15       type = lib.types.str;
16       description = "Server listen address or URL";
17       example = "ss://AEAD_CHACHA20_POLY1305:your-password@:8488";
18     };
19   };
21   config = lib.mkIf cfg.enable {
22     systemd.services.go-shadowsocks2-server = {
23       description = "go-shadowsocks2 server";
25       after = [ "network.target" ];
26       wantedBy = [ "multi-user.target" ];
28       serviceConfig = {
29         ExecStart = "${pkgs.go-shadowsocks2}/bin/go-shadowsocks2 -s '${cfg.listenAddress}'";
30         DynamicUser = true;
31       };
32     };
33   };