diff options
Diffstat (limited to 'hosts/vidhar')
-rw-r--r-- | hosts/vidhar/default.nix | 4 | ||||
-rw-r--r-- | hosts/vidhar/immich.nix | 10 | ||||
-rw-r--r-- | hosts/vidhar/network/ruleset.nft | 7 | ||||
-rw-r--r-- | hosts/vidhar/pgbackrest/default.nix | 9 | ||||
-rw-r--r-- | hosts/vidhar/postgresql.nix | 36 | ||||
-rw-r--r-- | hosts/vidhar/zfs.nix | 2 |
6 files changed, 62 insertions, 6 deletions
diff --git a/hosts/vidhar/default.nix b/hosts/vidhar/default.nix index 42a9e80d..b0797d8a 100644 --- a/hosts/vidhar/default.nix +++ b/hosts/vidhar/default.nix | |||
@@ -4,7 +4,7 @@ with lib; | |||
4 | 4 | ||
5 | { | 5 | { |
6 | imports = with flake.nixosModules.systemProfiles; [ | 6 | imports = with flake.nixosModules.systemProfiles; [ |
7 | ./zfs.nix ./network ./samba.nix ./dns ./prometheus ./borg ./pgbackrest | 7 | ./zfs.nix ./network ./samba.nix ./dns ./prometheus ./borg ./pgbackrest ./postgresql.nix ./immich.nix |
8 | tmpfs-root zfs | 8 | tmpfs-root zfs |
9 | initrd-all-crypto-modules default-locale openssh rebuild-machines | 9 | initrd-all-crypto-modules default-locale openssh rebuild-machines |
10 | build-server | 10 | build-server |
@@ -136,7 +136,7 @@ with lib; | |||
136 | wantedBy = ["basic.target"]; | 136 | wantedBy = ["basic.target"]; |
137 | serviceConfig = { | 137 | serviceConfig = { |
138 | ExecStart = pkgs.writeShellScript "limit-pstate-start" '' | 138 | ExecStart = pkgs.writeShellScript "limit-pstate-start" '' |
139 | echo 60 > /sys/devices/system/cpu/intel_pstate/max_perf_pct | 139 | echo 50 > /sys/devices/system/cpu/intel_pstate/max_perf_pct |
140 | ''; | 140 | ''; |
141 | RemainAfterExit = true; | 141 | RemainAfterExit = true; |
142 | ExecStop = pkgs.writeShellScript "limit-pstate-stop" '' | 142 | ExecStop = pkgs.writeShellScript "limit-pstate-stop" '' |
diff --git a/hosts/vidhar/immich.nix b/hosts/vidhar/immich.nix new file mode 100644 index 00000000..a1f145a8 --- /dev/null +++ b/hosts/vidhar/immich.nix | |||
@@ -0,0 +1,10 @@ | |||
1 | { ... }: | ||
2 | |||
3 | { | ||
4 | config = { | ||
5 | services.immich = { | ||
6 | enable = true; | ||
7 | host = "2a03:4000:52:ada:4:1::"; | ||
8 | }; | ||
9 | }; | ||
10 | } | ||
diff --git a/hosts/vidhar/network/ruleset.nft b/hosts/vidhar/network/ruleset.nft index 9f519302..10fd4c51 100644 --- a/hosts/vidhar/network/ruleset.nft +++ b/hosts/vidhar/network/ruleset.nft | |||
@@ -1,4 +1,5 @@ | |||
1 | define icmp_protos = { ipv6-icmp, icmp, igmp } | 1 | define icmp_protos = { ipv6-icmp, icmp, igmp } |
2 | define bifrost_surtr = 2a03:4000:52:ada:4::/128 | ||
2 | 3 | ||
3 | table arp filter { | 4 | table arp filter { |
4 | limit lim_arp_local { | 5 | limit lim_arp_local { |
@@ -90,6 +91,7 @@ table inet filter { | |||
90 | counter http-rx {} | 91 | counter http-rx {} |
91 | counter tftp-rx {} | 92 | counter tftp-rx {} |
92 | counter pgbackrest-rx {} | 93 | counter pgbackrest-rx {} |
94 | counter immich-rx {} | ||
93 | 95 | ||
94 | counter established-rx {} | 96 | counter established-rx {} |
95 | 97 | ||
@@ -118,6 +120,7 @@ table inet filter { | |||
118 | counter http-tx {} | 120 | counter http-tx {} |
119 | counter tftp-tx {} | 121 | counter tftp-tx {} |
120 | counter pgbackrest-tx {} | 122 | counter pgbackrest-tx {} |
123 | counter immich-tx {} | ||
121 | 124 | ||
122 | counter tx {} | 125 | counter tx {} |
123 | 126 | ||
@@ -193,6 +196,8 @@ table inet filter { | |||
193 | 196 | ||
194 | tcp dport 8432 counter name pgbackrest-rx accept | 197 | tcp dport 8432 counter name pgbackrest-rx accept |
195 | 198 | ||
199 | iifname bifrost tcp dport 2283 ip6 saddr $bifrost_surtr counter name immich-rx accept | ||
200 | |||
196 | ct state { established, related } counter name established-rx accept | 201 | ct state { established, related } counter name established-rx accept |
197 | 202 | ||
198 | 203 | ||
@@ -240,6 +245,8 @@ table inet filter { | |||
240 | 245 | ||
241 | tcp sport 8432 counter name pgbackrest-tx accept | 246 | tcp sport 8432 counter name pgbackrest-tx accept |
242 | 247 | ||
248 | iifname bifrost tcp sport 2283 ip6 daddr $bifrost_surtr counter name immich-tx accept | ||
249 | |||
243 | 250 | ||
244 | counter name tx | 251 | counter name tx |
245 | } | 252 | } |
diff --git a/hosts/vidhar/pgbackrest/default.nix b/hosts/vidhar/pgbackrest/default.nix index ffb149f5..1e0828ce 100644 --- a/hosts/vidhar/pgbackrest/default.nix +++ b/hosts/vidhar/pgbackrest/default.nix | |||
@@ -130,8 +130,9 @@ in { | |||
130 | }; | 130 | }; |
131 | 131 | ||
132 | systemd.tmpfiles.rules = [ | 132 | systemd.tmpfiles.rules = [ |
133 | "d /var/lib/pgbackrest 0750 pgbackrest pgbackrest - -" | 133 | "d /var/lib/pgbackrest 0770 pgbackrest pgbackrest - -" |
134 | "d /var/spool/pgbackrest 0750 pgbackrest pgbackrest - -" | 134 | "d /var/spool/pgbackrest 0770 pgbackrest pgbackrest - -" |
135 | "d /tmp/pgbackrest 0770 pgbackrest pgbackrest - -" | ||
135 | ]; | 136 | ]; |
136 | 137 | ||
137 | users = { | 138 | users = { |
@@ -141,7 +142,9 @@ in { | |||
141 | isSystemUser = true; | 142 | isSystemUser = true; |
142 | home = "/var/lib/pgbackrest"; | 143 | home = "/var/lib/pgbackrest"; |
143 | }; | 144 | }; |
144 | groups.pgbackrest = {}; | 145 | groups.pgbackrest = { |
146 | members = [ "postgres" ]; | ||
147 | }; | ||
145 | }; | 148 | }; |
146 | 149 | ||
147 | systemd.services."pgbackrest-tls-server".serviceConfig = { | 150 | systemd.services."pgbackrest-tls-server".serviceConfig = { |
diff --git a/hosts/vidhar/postgresql.nix b/hosts/vidhar/postgresql.nix new file mode 100644 index 00000000..7e44e69f --- /dev/null +++ b/hosts/vidhar/postgresql.nix | |||
@@ -0,0 +1,36 @@ | |||
1 | { pkgs, config, flake, flakeInputs, ... }: | ||
2 | |||
3 | let | ||
4 | nixpkgs-pgbackrest = import (flakeInputs.nixpkgs-pgbackrest.outPath + "/pkgs/top-level") { | ||
5 | overlays = [ flake.overlays.libdscp ]; | ||
6 | localSystem = config.nixpkgs.system; | ||
7 | }; | ||
8 | in { | ||
9 | config = { | ||
10 | services.postgresql = { | ||
11 | enable = true; | ||
12 | package = pkgs.postgresql_15; | ||
13 | }; | ||
14 | |||
15 | services.pgbackrest = { | ||
16 | settings."vidhar" = { | ||
17 | pg1-path = config.services.postgresql.dataDir; | ||
18 | |||
19 | repo1-path = "/var/lib/pgbackrest"; | ||
20 | repo1-retention-full-type = "time"; | ||
21 | repo1-retention-full = 14; | ||
22 | repo1-retention-archive = 7; | ||
23 | }; | ||
24 | |||
25 | backups."vidhar-daily" = { | ||
26 | stanza = "vidhar"; | ||
27 | repo = "1"; | ||
28 | timerConfig.OnCalendar = "daily"; | ||
29 | }; | ||
30 | }; | ||
31 | |||
32 | systemd.services.postgresql.serviceConfig = { | ||
33 | ReadWritePaths = [ "/var/spool/pgbackrest" "/var/lib/pgbackrest/archive/vidhar" ]; | ||
34 | }; | ||
35 | }; | ||
36 | } | ||
diff --git a/hosts/vidhar/zfs.nix b/hosts/vidhar/zfs.nix index 518c3287..9d667fd6 100644 --- a/hosts/vidhar/zfs.nix +++ b/hosts/vidhar/zfs.nix | |||
@@ -34,7 +34,7 @@ with lib; | |||
34 | }; | 34 | }; |
35 | 35 | ||
36 | "/etc/zfs/zfs-list.cache" = | 36 | "/etc/zfs/zfs-list.cache" = |
37 | { device = "ssd-raid1/local/zfs-zfs--list.cache"; | 37 | { device = "ssd-raid1/local/etc-zfs-zfs--list.cache"; |
38 | fsType = "zfs"; | 38 | fsType = "zfs"; |
39 | neededForBoot = true; | 39 | neededForBoot = true; |
40 | }; | 40 | }; |