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