python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / nixos / modules / services / networking / tetrd.nix
blob6284a5b1fb1bcc3b1fc0fce753285e0f5d99cf39
1 { config, lib, pkgs, ... }:
4   options.services.tetrd.enable = lib.mkEnableOption (lib.mdDoc "tetrd");
6   config = lib.mkIf config.services.tetrd.enable {
7     environment = {
8       systemPackages = [ pkgs.tetrd ];
9       etc."resolv.conf".source = "/etc/tetrd/resolv.conf";
10     };
12     systemd = {
13       tmpfiles.rules = [ "f /etc/tetrd/resolv.conf - - -" ];
15       services.tetrd = {
16         description = pkgs.tetrd.meta.description;
17         wantedBy = [ "multi-user.target" ];
19         serviceConfig = {
20           ExecStart = "${pkgs.tetrd}/opt/Tetrd/bin/tetrd";
21           Restart = "always";
22           RuntimeDirectory = "tetrd";
23           RootDirectory = "/run/tetrd";
24           DynamicUser = true;
25           UMask = "006";
26           DeviceAllow = "usb_device";
27           LockPersonality = true;
28           MemoryDenyWriteExecute = true;
29           NoNewPrivileges = true;
30           PrivateMounts = true;
31           PrivateNetwork = lib.mkDefault false;
32           PrivateTmp = true;
33           PrivateUsers = lib.mkDefault false;
34           ProtectClock = lib.mkDefault false;
35           ProtectControlGroups = true;
36           ProtectHome = true;
37           ProtectHostname = true;
38           ProtectKernelLogs = true;
39           ProtectKernelModules = true;
40           ProtectKernelTunables = true;
41           ProtectProc = "invisible";
42           ProtectSystem = "strict";
43           RemoveIPC = true;
44           RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" "AF_NETLINK" ];
45           RestrictNamespaces = true;
46           RestrictRealtime = true;
47           RestrictSUIDSGID = true;
48           SystemCallArchitectures = "native";
50           SystemCallFilter = [
51             "@system-service"
52             "~@aio"
53             "~@chown"
54             "~@clock"
55             "~@cpu-emulation"
56             "~@debug"
57             "~@keyring"
58             "~@memlock"
59             "~@module"
60             "~@mount"
61             "~@obsolete"
62             "~@pkey"
63             "~@raw-io"
64             "~@reboot"
65             "~@swap"
66             "~@sync"
67           ];
69           BindReadOnlyPaths = [
70             builtins.storeDir
71             "/etc/ssl"
72             "/etc/static/ssl"
73             "${pkgs.nettools}/bin/route:/usr/bin/route"
74             "${pkgs.nettools}/bin/ifconfig:/usr/bin/ifconfig"
75           ];
77           BindPaths = [
78             "/etc/tetrd/resolv.conf:/etc/resolv.conf"
79             "/run"
80             "/var/log"
81           ];
83           CapabilityBoundingSet = [
84             "CAP_DAC_OVERRIDE"
85             "CAP_NET_ADMIN"
86           ];
88           AmbientCapabilities = [
89             "CAP_DAC_OVERRIDE"
90             "CAP_NET_ADMIN"
91           ];
92         };
93       };
94     };
95   };