at 25.11-pre 768 B view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7let 8 cfg = config.services.go-shadowsocks2.server; 9in 10{ 11 options.services.go-shadowsocks2.server = { 12 enable = lib.mkEnableOption "go-shadowsocks2 server"; 13 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 }; 20 21 config = lib.mkIf cfg.enable { 22 systemd.services.go-shadowsocks2-server = { 23 description = "go-shadowsocks2 server"; 24 25 after = [ "network.target" ]; 26 wantedBy = [ "multi-user.target" ]; 27 28 serviceConfig = { 29 ExecStart = "${pkgs.go-shadowsocks2}/bin/go-shadowsocks2 -s '${cfg.listenAddress}'"; 30 DynamicUser = true; 31 }; 32 }; 33 }; 34}