This repository has no description
2.5 kB
96 lines
1{
2 self,
3 config,
4 pkgs,
5 ...
6}:
7{
8 imports = [
9 ../../2configs
10 ../../2configs/retiolum.nix
11 ../../2configs/exim-retiolum.nix
12 ../../2configs/mail.nix
13
14 ../../2configs/syncthing.nix
15
16 ../../2configs/weechat.nix
17 ../../2configs/bitlbee.nix
18
19 ../../2configs/pass.nix
20
21 ../../2configs/git-brain.nix
22 ../../2configs/et-server.nix
23
24 ../../2configs/atuin-server.nix
25 ../../2configs/autoupdate.nix
26 ];
27
28 # clanCore.facts.secretUploadDirectory = lib.mkForce "/var/state/secrets";
29 clan.password-store.targetDirectory = "/var/state/secrets";
30
31 krebs.build.host = config.krebs.hosts.green;
32
33 krebs.sync-containers3.inContainer = {
34 enable = true;
35 pubkey = config.clan.core.vars.generators.green-container.files."green.sync.pub".path;
36 };
37
38 clanCore.vars.generators.green-container = {
39 files."green.sync.key" = { };
40 files."green.sync.pub".secret = false;
41 runtimeInputs = with pkgs; [
42 coreutils
43 openssh
44 ];
45 script = ''
46 ssh-keygen -t ed25519 -N "" -f "$out"/green.sync.key
47 mv "$out"/green.sync.key.pub "$out"/green.sync.pub
48 '';
49 };
50
51 systemd.tmpfiles.rules = [
52 "d /home/lass/.local/share 0700 lass users -"
53 "d /home/lass/.local 0700 lass users -"
54 "d /home/lass/.config 0700 lass users -"
55
56 "d /var/state/lass_mail 0700 lass users -"
57 "L+ /home/lass/Maildir - - - - ../../var/state/lass_mail"
58
59 "d /var/state/lass_ssh 0700 lass users -"
60 "L+ /home/lass/.ssh - - - - ../../var/state/lass_ssh"
61 "d /var/state/lass_gpg 0700 lass users -"
62 "L+ /home/lass/.gnupg - - - - ../../var/state/lass_gpg"
63 "d /var/state/lass_sync 0700 lass users -"
64 "L+ /home/lass/sync - - - - ../../var/state/lass_sync"
65
66 "d /var/state/git 0700 git nogroup -"
67 "L+ /var/lib/git - - - - ../../var/state/git"
68
69 "d /var/state/zerotier-one 0700 root root -"
70 "L+ /var/lib/zerotier-one - - - - ../../var/state/zerotier-one"
71 ];
72
73 krebs.iptables.tables.nat.PREROUTING.rules = [
74 {
75 predicate = "-i eth0 -p tcp -m tcp --dport 22";
76 target = "ACCEPT";
77 }
78 ];
79
80 # workaround for ssh access from yubikey via android
81 services.openssh.extraConfig = ''
82 HostKeyAlgorithms +ssh-rsa
83 PubkeyAcceptedAlgorithms +ssh-rsa
84 '';
85
86 services.dovecot2 = {
87 enable = true;
88 mailLocation = "maildir:~/Maildir";
89 };
90
91 networking.firewall.allowedTCPPorts = [ 143 ];
92
93 environment.systemPackages = [
94 self.packages.${pkgs.system}.muchsync
95 ];
96}