nixos/byedpi: init

wrrrzr cf9404b3 c602abd9

+56
+2
nixos/doc/manual/release-notes/rl-2511.section.md
··· 18 19 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. --> 20 21 - [Overseerr](https://overseerr.dev), a request management and media discovery tool for the Plex ecosystem. Available as [services.overseerr](#opt-services.overseerr.enable). 22 23 - [gtklock](https://github.com/jovanlanik/gtklock), a GTK-based lockscreen for Wayland. Available as [programs.gtklock](#opt-programs.gtklock.enable).
··· 18 19 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. --> 20 21 + - [byedpi](https://github.com/hufrea/byedpi), a DPI bypass service. Available as [services.byedpi](#opt-services.byedpi.enable). 22 + 23 - [Overseerr](https://overseerr.dev), a request management and media discovery tool for the Plex ecosystem. Available as [services.overseerr](#opt-services.overseerr.enable). 24 25 - [gtklock](https://github.com/jovanlanik/gtklock), a GTK-based lockscreen for Wayland. Available as [programs.gtklock](#opt-programs.gtklock.enable).
+1
nixos/modules/module-list.nix
··· 1094 ./services/networking/bitlbee.nix 1095 ./services/networking/blockbook-frontend.nix 1096 ./services/networking/blocky.nix 1097 ./services/networking/cato-client.nix 1098 ./services/networking/centrifugo.nix 1099 ./services/networking/cgit.nix
··· 1094 ./services/networking/bitlbee.nix 1095 ./services/networking/blockbook-frontend.nix 1096 ./services/networking/blocky.nix 1097 + ./services/networking/byedpi.nix 1098 ./services/networking/cato-client.nix 1099 ./services/networking/centrifugo.nix 1100 ./services/networking/cgit.nix
+53
nixos/modules/services/networking/byedpi.nix
···
··· 1 + { 2 + lib, 3 + config, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + let 9 + cfg = config.services.byedpi; 10 + in 11 + { 12 + options.services.byedpi = { 13 + enable = lib.mkEnableOption "the ByeDPI service"; 14 + package = lib.mkPackageOption pkgs "byedpi" { }; 15 + extraArgs = lib.mkOption { 16 + type = with lib.types; listOf str; 17 + default = [ ]; 18 + example = [ 19 + "--split" 20 + "1" 21 + "--disorder" 22 + "3+s" 23 + "--mod-http=h,d" 24 + "--auto=torst" 25 + "--tlsrec" 26 + "1+s" 27 + ]; 28 + description = "Extra command line arguments."; 29 + }; 30 + }; 31 + config = lib.mkIf cfg.enable { 32 + systemd.services.byedpi = { 33 + description = "ByeDPI"; 34 + wantedBy = [ "default.target" ]; 35 + wants = [ "network-online.target" ]; 36 + after = [ 37 + "network-online.target" 38 + "nss-lookup.target" 39 + ]; 40 + serviceConfig = { 41 + ExecStart = lib.escapeShellArgs ([ (lib.getExe cfg.package) ] ++ cfg.extraArgs); 42 + NoNewPrivileges = "yes"; 43 + StandardOutput = "null"; 44 + StandardError = "journal"; 45 + TimeoutStopSec = "5s"; 46 + PrivateTmp = "true"; 47 + ProtectSystem = "full"; 48 + }; 49 + }; 50 + }; 51 + 52 + meta.maintainers = with lib.maintainers; [ wozrer ]; 53 + }