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