This repository has no description
7.7 kB
321 lines
1{
2 self,
3 config,
4 pkgs,
5 ...
6}:
7{
8 imports = [
9 ../../2configs
10 ../../2configs/retiolum.nix
11 ../../2configs/autoupdate.nix
12
13 self.inputs.stockholm.nixosModules.exim-smarthost
14 ];
15
16 krebs.build.host = config.krebs.hosts.ubik;
17 clan.core.vars.password-store.secretLocation = "/var/state/secret-vars";
18
19 krebs.sync-containers3.inContainer = {
20 enable = true;
21 pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPBFGMjH0+Dco6DVFZbByENMci8CFTLXCL7j53yctPnM";
22 };
23
24 security.acme = {
25 acceptTerms = true;
26 defaults.email = "acme@lassul.us";
27 };
28 networking.firewall.allowedTCPPorts = [
29 80
30 443
31 ];
32
33 # nextcloud
34 services.nginx.virtualHosts."c.apanowicz.de" = {
35 enableACME = true;
36 forceSSL = true;
37 };
38 services.nextcloud = {
39 enable = true;
40 hostName = "c.apanowicz.de";
41 package = pkgs.nextcloud31;
42 config.dbtype = "sqlite";
43 config.adminpassFile = config.clan.core.vars.generators.nextcloud-pw.files.nextcloud-pw.path;
44 https = true;
45 maxUploadSize = "9001M";
46 };
47 clan.core.vars.generators.nextcloud-pw = {
48 prompts.nextcloud-pw.persist = true;
49 };
50
51 # mail
52 lass.usershadow.enable = true;
53 services.nginx.virtualHosts."mail.ubikmedia.eu" = {
54 enableACME = true;
55 forceSSL = true;
56 };
57 services.roundcube = {
58 enable = true;
59 hostName = "mail.ubikmedia.eu";
60 extraConfig = ''
61 $config['smtp_debug'] = true;
62 $config['smtp_host'] = "localhost:25";
63 '';
64 };
65 services.dovecot2 = {
66 enable = true;
67 showPAMFailure = true;
68 mailLocation = "maildir:~/Mail";
69 sslServerCert = "/var/lib/acme/mail.ubikmedia.eu/fullchain.pem";
70 sslServerKey = "/var/lib/acme/mail.ubikmedia.eu/key.pem";
71 };
72 krebs.exim-smarthost = {
73 ssl_cert = "/var/lib/acme/mail.ubikmedia.eu/fullchain.pem";
74 ssl_key = "/var/lib/acme/mail.ubikmedia.eu/key.pem";
75 authenticators.PLAIN = ''
76 driver = plaintext
77 public_name = PLAIN
78 server_condition = ''${run{/run/wrappers/bin/shadow_verify_arg ${config.lass.usershadow.pattern} $auth2 $auth3}{yes}{no}}
79 '';
80 authenticators.LOGIN = ''
81 driver = plaintext
82 public_name = LOGIN
83 server_prompts = "Username:: : Password::"
84 server_condition = ''${run{/run/wrappers/bin/shadow_verify_arg ${config.lass.usershadow.pattern} $auth1 $auth2}{yes}{no}}
85 # server_condition = ''${run{/run/current-system/sw/bin/debug_exim ${config.lass.usershadow.pattern} $auth1 $auth2}{yes}{no}}
86 '';
87 internet-aliases = [
88 {
89 from = "dma@ubikmedia.de";
90 to = "domsen";
91 }
92 {
93 from = "dma@ubikmedia.eu";
94 to = "domsen";
95 }
96 {
97 from = "hallo@apanowicz.de";
98 to = "domsen";
99 }
100 {
101 from = "bruno@apanowicz.de";
102 to = "bruno";
103 }
104 {
105 from = "mail@jla-trading.com";
106 to = "jla-trading";
107 }
108 {
109 from = "jms@ubikmedia.eu";
110 to = "jms";
111 }
112 {
113 from = "ms@ubikmedia.eu";
114 to = "ms";
115 }
116 {
117 from = "ubik@ubikmedia.eu";
118 to = "domsen, jms, ms";
119 }
120 {
121 from = "kontakt@alewis.de";
122 to = "klabusterbeere";
123 }
124 {
125 from = "hallo@jarugadesign.de";
126 to = "kasia";
127 }
128 {
129 from = "noreply@beeshmooth.ch";
130 to = "besmooth@gmx.ch";
131 }
132
133 {
134 from = "testuser@ubikmedia.eu";
135 to = "testuser";
136 }
137 ];
138 sender_domains = [
139 "jla-trading.com"
140 "ubikmedia.eu"
141 "ubikmedia.de"
142 "apanowicz.de"
143 "alewis.de"
144 "jarugadesign.de"
145 "beesmooth.ch"
146 ];
147 dkim = [
148 { domain = "ubikmedia.eu"; }
149 { domain = "apanowicz.de"; }
150 { domain = "beesmooth.ch"; }
151 ];
152 };
153
154 # users
155 users.groups.xanf = { };
156 users.users.UBIK-SFTP = {
157 uid = pkgs.stockholm.lib.genid_uint31 "UBIK-SFTP";
158 home = "/home/UBIK-SFTP";
159 useDefaultShell = true;
160 createHome = true;
161 isNormalUser = true;
162 };
163
164 users.users.xanf = {
165 uid = pkgs.stockholm.lib.genid_uint31 "xanf";
166 group = "xanf";
167 home = "/home/xanf";
168 useDefaultShell = true;
169 createHome = false; # creathome forces permissions
170 isNormalUser = true;
171 };
172
173 users.users.domsen = {
174 uid = pkgs.stockholm.lib.genid_uint31 "domsen";
175 description = "maintenance acc for domsen";
176 home = "/home/domsen";
177 useDefaultShell = true;
178 extraGroups = [
179 "syncthing"
180 "download"
181 "xanf"
182 ];
183 createHome = true;
184 isNormalUser = true;
185 };
186
187 users.users.bruno = {
188 uid = pkgs.stockholm.lib.genid_uint31 "bruno";
189 home = "/home/bruno";
190 useDefaultShell = true;
191 createHome = true;
192 isNormalUser = true;
193 };
194
195 users.users.jla-trading = {
196 uid = pkgs.stockholm.lib.genid_uint31 "jla-trading";
197 home = "/home/jla-trading";
198 useDefaultShell = true;
199 createHome = true;
200 isNormalUser = true;
201 };
202
203 users.users.jms = {
204 uid = pkgs.stockholm.lib.genid_uint31 "jms";
205 home = "/home/jms";
206 useDefaultShell = true;
207 createHome = true;
208 isNormalUser = true;
209 };
210
211 users.users.ms = {
212 uid = pkgs.stockholm.lib.genid_uint31 "ms";
213 home = "/home/ms";
214 useDefaultShell = true;
215 createHome = true;
216 isNormalUser = true;
217 };
218
219 users.users.testuser = {
220 uid = pkgs.stockholm.lib.genid_uint31 "testuser";
221 home = "/home/testuser";
222 useDefaultShell = true;
223 createHome = true;
224 isNormalUser = true;
225 };
226
227 users.users.bui = {
228 uid = pkgs.stockholm.lib.genid_uint31 "bui";
229 home = "/home/bui";
230 useDefaultShell = true;
231 createHome = true;
232 isNormalUser = true;
233 };
234
235 users.users.klabusterbeere = {
236 uid = pkgs.stockholm.lib.genid_uint31 "klabusterbeere";
237 home = "/home/klabusterbeere";
238 useDefaultShell = true;
239 createHome = true;
240 isNormalUser = true;
241 };
242
243 users.users.kasia = {
244 uid = pkgs.stockholm.lib.genid_uint31 "kasia";
245 home = "/home/kasia";
246 useDefaultShell = true;
247 createHome = true;
248 isNormalUser = true;
249 };
250
251 users.users.XANF_TEAM = {
252 uid = pkgs.stockholm.lib.genid_uint31 "XANF_TEAM";
253 group = "xanf";
254 home = "/home/XANF_TEAM";
255 useDefaultShell = true;
256 createHome = true;
257 isNormalUser = true;
258 };
259
260 users.users.dif = {
261 uid = pkgs.stockholm.lib.genid_uint31 "dif";
262 home = "/home/dif";
263 useDefaultShell = true;
264 extraGroups = [ "xanf" ];
265 createHome = true;
266 isNormalUser = true;
267 };
268
269 users.users.lavafilms = {
270 uid = pkgs.stockholm.lib.genid_uint31 "lavafilms";
271 home = "/home/lavafilms";
272 useDefaultShell = true;
273 extraGroups = [ "xanf" ];
274 createHome = true;
275 isNormalUser = true;
276 };
277
278 users.users.movematchers = {
279 uid = pkgs.stockholm.lib.genid_uint31 "movematchers";
280 home = "/home/movematchers";
281 useDefaultShell = true;
282 extraGroups = [ "xanf" ];
283 createHome = true;
284 isNormalUser = true;
285 };
286
287 users.users.blackphoton = {
288 uid = pkgs.stockholm.lib.genid_uint31 "blackphoton";
289 home = "/home/blackphoton";
290 useDefaultShell = true;
291 extraGroups = [ "xanf" ];
292 createHome = true;
293 isNormalUser = true;
294 };
295
296 users.users.line = {
297 uid = pkgs.stockholm.lib.genid_uint31 "line";
298 home = "/home/line";
299 useDefaultShell = true;
300 # extraGroups = [ "xanf" ];
301 createHome = true;
302 isNormalUser = true;
303 };
304
305 users.users.avada = {
306 uid = pkgs.stockholm.lib.genid_uint31 "avada";
307 home = "/home/avada";
308 useDefaultShell = true;
309 createHome = true;
310 isNormalUser = true;
311 };
312
313 users.users.familienrat = {
314 uid = pkgs.stockholm.lib.genid_uint31 "familienrat";
315 home = "/home/familienrat";
316 useDefaultShell = true;
317 createHome = true;
318 isNormalUser = true;
319 };
320
321}