|
1 | | -{ config, pkgs, inputs, ... }: |
| 1 | +{ pkgs, ... }: |
2 | 2 | { |
3 | 3 | imports = [ |
4 | 4 | ./hardware-configuration.nix |
|
31 | 31 | dockerCompat = true; |
32 | 32 | }; |
33 | 33 |
|
34 | | - networking.vpn = { |
35 | | - enable = true; |
36 | | - wgConfigFile = "/var/lib/secrets/wg0.conf"; |
37 | | - ip = "10.197.52.6/24"; |
38 | | - portForwards = { |
39 | | - # note: this string becomes the service name |
40 | | - "portforward-transmission" = { |
41 | | - localPort = 9091; |
42 | | - namespacePort = 9091; |
43 | | - }; |
44 | | - }; |
45 | | - services = [ |
46 | | - "transmission" |
47 | | - ]; |
48 | | - }; |
49 | | - |
50 | | - services.k3s = { |
51 | | - enable = false; |
52 | | - role = "server"; |
53 | | - extraFlags = toString [ |
54 | | - "--disable=traefik" |
55 | | - ]; |
56 | | - }; |
57 | | - |
58 | | - services.transmission = { |
59 | | - enable = true; |
60 | | - package = pkgs.transmission_4.overrideAttrs (finalAttrs: previousAttrs: { |
61 | | - version = "4.0.5"; |
62 | | - src = pkgs.fetchFromGitHub { |
63 | | - owner = "transmission"; |
64 | | - repo = "transmission"; |
65 | | - rev = finalAttrs.version; |
66 | | - hash = "sha256-gd1LGAhMuSyC/19wxkoE2mqVozjGPfupIPGojKY0Hn4="; |
67 | | - fetchSubmodules = true; |
68 | | - }; |
69 | | - }); |
70 | | - openRPCPort = true; |
71 | | - settings = { |
72 | | - download-dir = "/mnt/nas-fun/downloads/complete"; |
73 | | - incomplete-dir = "/mnt/nas-fun/downloads/incomplete"; |
74 | | - watch-dir = "/mnt/nas-fun/downloads/watch"; |
75 | | - watch-dir-enabled = true; |
76 | | - speed-limit-up = 1000; |
77 | | - speed-limit-up-enabled = true; |
78 | | - alt-speed-up = 0; |
79 | | - alt-speed-down = 0; |
80 | | - peer-port = 51414; |
81 | | - download-queue-size = 20; |
82 | | - rpc-whitelist-enabled = false; |
83 | | - rpc-bind-address = "0.0.0.0"; |
84 | | - rpc-host-whitelist-enabled = false; |
85 | | - ratio-limit-enabled = true; |
86 | | - ratio-limit = 3; |
87 | | - }; |
88 | | - }; |
89 | | - systemd.services.transmission = { |
90 | | - after = [ "mnt-nas\\x2dfun.mount" ]; |
91 | | - requires = [ "mnt-nas\\x2dfun.mount" ]; |
92 | | - }; |
93 | | - services.nginx.virtualHosts."torrent.pine.marco.ooo" = { |
94 | | - forceSSL = true; |
95 | | - useACMEHost = "pine.marco.ooo"; |
96 | | - locations."/" = { |
97 | | - proxyPass = "http://127.0.0.1:9091"; |
98 | | - }; |
99 | | - }; |
100 | | - |
101 | | - security.acme.acceptTerms = true; |
102 | | - security.acme.defaults = { |
103 | | - email = inputs.self.users.marco.email; |
104 | | - # server = "https://acme-staging-v02.api.letsencrypt.org/directory"; |
105 | | - group = "nginx"; |
106 | | - dnsProvider = "cloudflare"; |
107 | | - credentialsFile = "/var/lib/secrets/cloudflare-blender-acme"; |
108 | | - # dnsPropagationCheck = false; |
109 | | - # dnsResolver = "1.1.1.1:53"; |
110 | | - }; |
111 | | - security.acme.certs."pine.marco.ooo" = { |
112 | | - domain = "*.pine.marco.ooo"; |
113 | | - }; |
114 | | - |
115 | | - services.nginx = { |
116 | | - enable = true; |
117 | | - recommendedProxySettings = true; |
118 | | - recommendedTlsSettings = true; |
119 | | - clientMaxBodySize = "200m"; |
120 | | - }; |
121 | | - |
122 | | - services.sonarr = { |
123 | | - enable = true; |
124 | | - user = "nas"; |
125 | | - group = "users"; |
126 | | - }; |
127 | | - services.nginx.virtualHosts."sonarr.pine.marco.ooo" = { |
128 | | - forceSSL = true; |
129 | | - useACMEHost = "pine.marco.ooo"; |
130 | | - locations."/" = { |
131 | | - proxyPass = "http://localhost:8989"; |
132 | | - proxyWebsockets = true; |
133 | | - }; |
134 | | - }; |
135 | | - |
136 | | - services.radarr = { |
137 | | - enable = true; |
138 | | - user = "nas"; |
139 | | - group = "users"; |
140 | | - }; |
141 | | - services.nginx.virtualHosts."radarr.pine.marco.ooo" = { |
142 | | - forceSSL = true; |
143 | | - useACMEHost = "pine.marco.ooo"; |
144 | | - locations."/" = { |
145 | | - proxyPass = "http://localhost:7878"; |
146 | | - proxyWebsockets = true; |
147 | | - }; |
148 | | - }; |
149 | | - |
150 | | - services.jellyseerr = { |
151 | | - enable = true; |
152 | | - }; |
153 | | - services.nginx.virtualHosts."jellyseerr.pine.marco.ooo" = { |
154 | | - forceSSL = true; |
155 | | - useACMEHost = "pine.marco.ooo"; |
156 | | - locations."/" = { |
157 | | - proxyPass = "http://localhost:${toString config.services.jellyseerr.port}"; |
158 | | - proxyWebsockets = true; |
159 | | - }; |
160 | | - }; |
161 | | - |
162 | 34 | services.qemuGuest.enable = true; |
163 | 35 |
|
164 | 36 | fileSystems."/mnt/nas-fun" = { |
|
0 commit comments