This repository has no description
2.6 kB
92 lines
1{ config, pkgs, ... }:
2{
3 imports = [
4 ../../2configs
5 ../../2configs/retiolum.nix
6 ../../2configs/exim-retiolum.nix
7 ../../2configs/mail.nix
8
9 ../../2configs/syncthing.nix
10
11 ../../2configs/weechat.nix
12 ../../2configs/bitlbee.nix
13
14 ../../2configs/pass.nix
15
16 ../../2configs/git-brain.nix
17 ../../2configs/et-server.nix
18 ../../2configs/consul.nix
19
20 ../../2configs/atuin-server.nix
21 ../../2configs/autoupdate.nix
22 ];
23
24 # clanCore.facts.secretUploadDirectory = lib.mkForce "/var/state/secrets";
25 clan.password-store.targetDirectory = "/var/state/secrets";
26
27 krebs.build.host = config.krebs.hosts.green;
28
29 krebs.sync-containers3.inContainer = {
30 enable = true;
31 pubkey = config.clanCore.facts.services.green-container.public."green.sync.pub".value;
32 };
33
34 clanCore.facts.services.green-container = {
35 secret."green.sync.key" = { };
36 public."green.sync.pub" = { };
37 generator.path = with pkgs; [
38 coreutils
39 openssh
40 ];
41 generator.script = ''
42 ssh-keygen -t ed25519 -N "" -f "$secrets"/green.sync.key
43 mv "$secrets"/green.sync.key "$facts"/green.sync.pub
44 '';
45 };
46
47 systemd.tmpfiles.rules = [
48 "d /home/lass/.local/share 0700 lass users -"
49 "d /home/lass/.local 0700 lass users -"
50 "d /home/lass/.config 0700 lass users -"
51
52 "d /var/state/lass_mail 0700 lass users -"
53 "L+ /home/lass/Maildir - - - - ../../var/state/lass_mail"
54
55 "d /var/state/lass_ssh 0700 lass users -"
56 "L+ /home/lass/.ssh - - - - ../../var/state/lass_ssh"
57 "d /var/state/lass_gpg 0700 lass users -"
58 "L+ /home/lass/.gnupg - - - - ../../var/state/lass_gpg"
59 "d /var/state/lass_sync 0700 lass users -"
60 "L+ /home/lass/sync - - - - ../../var/state/lass_sync"
61
62 "d /var/state/git 0700 git nogroup -"
63 "L+ /var/lib/git - - - - ../../var/state/git"
64
65 "d /var/state/zerotier-one 0700 root root -"
66 "L+ /var/lib/zerotier-one - - - - ../../var/state/zerotier-one"
67 ];
68
69 users.users.mainUser.openssh.authorizedKeys.keys = [
70 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKgpZwye6yavIs3gUIYvSi70spDa0apL2yHR0ASW74z8" # weechat ssh tunnel
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}