1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 10:11:08 +01:00
Files
niveum/systems/zaatar/configuration.nix
2025-12-22 08:49:57 +01:00

95 lines
2.3 KiB
Nix

{
config,
pkgs,
lib,
...
}: let
inherit (import ../../lib) retiolumAddresses restic;
in {
imports = [
./backup.nix
./gaslight.nix
./hardware-configuration.nix
../../configs/mycelium.nix
./home-assistant.nix
../../configs/monitoring.nix
../../configs/retiolum.nix
../../configs/printing.nix
../../configs/spacetime.nix
../../configs/sshd.nix
../../configs/tmux.nix
../../configs/wpa_supplicant.nix
../../configs/nix.nix
../../configs/admin-essentials.nix
];
services.pipewire.systemWide = true;
age.secrets = {
wifi = {
file = ../../secrets/wifi.age;
};
retiolum-rsa = {
file = ../../secrets/zaatar-retiolum-privateKey-rsa.age;
mode = "400";
owner = "tinc-retiolum";
group = "tinc-retiolum";
};
retiolum-ed25519 = {
file = ../../secrets/zaatar-retiolum-privateKey-ed25519.age;
mode = "400";
owner = "tinc-retiolum";
group = "tinc-retiolum";
};
restic = {
file = ../../secrets/restic.age;
mode = "400";
owner = "restic";
group = "restic";
};
};
services.restic.backups.niveum = {
initialize = true;
inherit (restic) repository;
timerConfig = {
OnCalendar = "daily";
RandomizedDelaySec = "1h";
};
passwordFile = config.age.secrets.restic.path;
paths = [
"/var/lib/moodle-dl"
"/var/lib/containers/storage/volumes/home-assistant"
config.services.postgresqlBackup.location
];
};
services.logind.settings.Login.HandleLidSwitchDocked = "ignore";
services.logind.settings.Login.HandleLidSwitchExternalPower = "ignore";
services.logind.settings.Login.HandleLidSwitch = "ignore";
services.illum.enable = true;
environment.systemPackages = let
worldradio = pkgs.callPackage ../../packages/worldradio.nix {};
in [
(pkgs.writers.writeDashBin "mpv" ''${pkgs.mpv}/bin/mpv --no-video "$@"'')
(pkgs.writers.writeDashBin "worldradio" ''
shuf ${worldradio} | ${pkgs.findutils}/bin/xargs ${pkgs.mpv}/bin/mpv --no-video
'')
pkgs.git
pkgs.vim
pkgs.htop
pkgs.ncmpcpp
pkgs.python3 # for sshuttle
];
networking = {
hostName = "zaatar";
wireless.interfaces = ["wlp2s0"];
retiolum = retiolumAddresses.zaatar;
};
system.stateVersion = "23.11";
}