Added Impermanence to services runned by cyper-controller

This commit is contained in:
2026-06-28 15:02:42 +02:00
parent bbf95a5a8c
commit a292eb6b09
15 changed files with 205 additions and 25 deletions
Generated
+17 -3
View File
@@ -936,12 +936,26 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": {
"locked": {
"lastModified": 1782175435,
"narHash": "sha256-EMzXKmnOtBQ2MnvpiNOm7E+kOMvdPrIKaeg52Tip2Uk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "89570f24e97e614aa34aa9ab1c927b6578a43775",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": { "nixvim": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts_2",
"nixpkgs": [ "nixpkgs": "nixpkgs_4",
"nixpkgs"
],
"systems": "systems_3" "systems": "systems_3"
}, },
"locked": { "locked": {
+3 -1
View File
@@ -63,7 +63,6 @@
# declarative Neovim # declarative Neovim
nixvim = { nixvim = {
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
}; };
# declarative Discord # declarative Discord
@@ -269,6 +268,9 @@
install-cyper-node-2 = mkInstall { install-cyper-node-2 = mkInstall {
hostName = "cyper-node-2"; hostName = "cyper-node-2";
}; };
install-cyper-controller = mkInstall {
hostName = "cyper-controller";
};
}; };
}; };
} }
+2
View File
@@ -32,6 +32,8 @@
programs.nixvim = { programs.nixvim = {
enable = true; enable = true;
nixpkgs.source = inputs.nixpkgs;
defaultEditor = true; defaultEditor = true;
enableMan = false; enableMan = false;
+2 -1
View File
@@ -1,5 +1,6 @@
{ {
imports = [ imports = [
./disko.nix
./hardware-configuration.nix ./hardware-configuration.nix
./smb.nix ./smb.nix
../../nixos/roles/monitoring.nix ../../nixos/roles/monitoring.nix
@@ -11,7 +12,6 @@
../../nixos/roles/gitea.nix ../../nixos/roles/gitea.nix
../../nixos/roles/vaultwarden.nix ../../nixos/roles/vaultwarden.nix
../../nixos/roles/frontpage ../../nixos/roles/frontpage
#../../nixos/roles/paperless-ngx.nix
../../nixos/roles/octoprint.nix ../../nixos/roles/octoprint.nix
../../nixos/roles/matrix/postgres-backup.nix ../../nixos/roles/matrix/postgres-backup.nix
../../nixos/roles/kanidm.nix ../../nixos/roles/kanidm.nix
@@ -45,5 +45,6 @@
}; };
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
}; };
system.stateVersion = "26.05"; system.stateVersion = "26.05";
} }
+62
View File
@@ -0,0 +1,62 @@
{
disko.devices.disk.main = {
type = "disk";
device = "/dev/sda";
content = {
type = "gpt";
partitions = {
ESP = {
size = "512M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [
"fmask=0022"
"dmask=0022"
];
extraArgs = [
"-n"
"NIXBOOT"
];
};
};
swap = {
size = "8G";
content = {
type = "swap";
extraArgs = [
"-L"
"NIXSWAP"
];
};
};
nix = {
size = "80G";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/nix";
extraArgs = [
"-L"
"NIXSTORE"
];
};
};
persist = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/persist";
extraArgs = [
"-L"
"NIXPERSIST"
];
};
};
};
};
};
}
@@ -5,7 +5,6 @@
primaryUser, primaryUser,
... ...
}: }:
{ {
imports = [ imports = [
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
@@ -17,6 +16,7 @@
"ahci" "ahci"
"usb_storage" "usb_storage"
"sd_mod" "sd_mod"
"nvme"
]; ];
initrd.kernelModules = [ ]; initrd.kernelModules = [ ];
kernelModules = [ "kvm-intel" ]; kernelModules = [ "kvm-intel" ];
@@ -24,17 +24,13 @@
}; };
fileSystems = { fileSystems = {
"/" = lib.mkForce { "/" = {
device = "/dev/disk/by-label/NIXROOT"; device = "none";
fsType = "ext4"; fsType = "tmpfs";
};
"/boot" = lib.mkForce {
device = "/dev/disk/by-label/NIXBOOT";
fsType = "vfat";
options = [ options = [
"fmask=0022" "defaults"
"dmask=0022" "size=2G"
"mode=755"
]; ];
}; };
@@ -70,6 +66,8 @@
]; ];
}; };
"/nix".neededForBoot = true;
"/persist".neededForBoot = true;
}; };
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
@@ -79,15 +77,7 @@
"d /storage/backup 0755 ${primaryUser} users -" "d /storage/backup 0755 ${primaryUser} users -"
]; ];
swapDevices = [
{
device = "/swapfile";
size = 4096;
}
];
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
} }
+9 -1
View File
@@ -1,5 +1,13 @@
{ ... }:
{ {
environment.persistence."/persist".directories = [
{
directory = "/var/lib/filebrowser";
user = "filebrowser";
group = "filebrowser";
mode = "0750";
}
];
services.filebrowser = { services.filebrowser = {
enable = true; enable = true;
+27
View File
@@ -29,6 +29,33 @@ let
]; ];
in in
{ {
environment.persistence."/persist".directories = [
{
directory = "/var/lib/flame-phil";
user = "root";
group = "root";
mode = "0755";
}
{
directory = "/var/lib/flame-calvin";
user = "root";
group = "root";
mode = "0755";
}
{
directory = "/var/lib/docker";
user = "root";
group = "root";
mode = "0710";
}
{
directory = "/var/lib/private";
user = "root";
group = "root";
mode = "0700";
}
];
sops.secrets = lib.listToAttrs ( sops.secrets = lib.listToAttrs (
map ({ name, ... }: lib.nameValuePair "flame_${name}_password" { }) instances map ({ name, ... }: lib.nameValuePair "flame_${name}_password" { }) instances
); );
+15
View File
@@ -47,6 +47,21 @@ in
}; };
}; };
environment.persistence."/persist".directories = [
{
directory = "/var/lib/gitea";
user = "gitea";
group = "gitea";
mode = "0750";
}
{
directory = "/var/lib/postgresql";
user = "postgres";
group = "postgres";
mode = "0750";
}
];
systemd.services = { systemd.services = {
gitea-db-password = { gitea-db-password = {
description = "Set gitea postgres user password"; description = "Set gitea postgres user password";
+9
View File
@@ -5,6 +5,15 @@ let
certDir = "/var/lib/kanidm/tls"; certDir = "/var/lib/kanidm/tls";
in in
{ {
environment.persistence."/persist".directories = [
{
directory = "/var/lib/kanidm";
user = "kanidm";
group = "kanidm";
mode = "0750";
}
];
systemd.services.kanidm-selfsigned-cert = { systemd.services.kanidm-selfsigned-cert = {
description = "Generate self-signed TLS certificate for Kanidm"; description = "Generate self-signed TLS certificate for Kanidm";
wantedBy = [ "kanidm.service" ]; wantedBy = [ "kanidm.service" ];
+9
View File
@@ -41,6 +41,15 @@ in
}; };
}; };
environment.persistence."/persist".directories = [
{
directory = "/var/lib/grafana";
user = "grafana";
group = "grafana";
mode = "0750";
}
];
users.groups.gs1200-exporter = { }; users.groups.gs1200-exporter = { };
services = { services = {
+10
View File
@@ -48,6 +48,16 @@ let
in in
{ {
nixpkgs.overlays = [ octoprint-overlay ]; nixpkgs.overlays = [ octoprint-overlay ];
environment.persistence."/persist".directories = [
{
directory = "/var/lib/octoprint";
user = "octoprint";
group = "octoprint";
mode = "0750";
}
];
services.octoprint = { services.octoprint = {
enable = true; enable = true;
host = "0.0.0.0"; host = "0.0.0.0";
+9
View File
@@ -1,6 +1,15 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
environment.persistence."/persist".directories = [
{
directory = "/var/lib/unifi";
user = "unifi";
group = "unifi";
mode = "0750";
}
];
services.unifi = { services.unifi = {
enable = true; enable = true;
unifiPackage = pkgs.unifi; unifiPackage = pkgs.unifi;
+12
View File
@@ -12,6 +12,16 @@ in
owner = "vaultwarden"; owner = "vaultwarden";
group = "vaultwarden"; group = "vaultwarden";
}; };
environment.persistence."/persist".directories = [
{
directory = "/var/lib/vaultwarden";
user = "vaultwarden";
group = "vaultwarden";
mode = "0750";
}
];
services.vaultwarden = { services.vaultwarden = {
enable = true; enable = true;
package = pkgs.oidcwarden; package = pkgs.oidcwarden;
@@ -31,7 +41,9 @@ in
SSO_PKCE = false; SSO_PKCE = false;
}; };
}; };
networking.firewall.allowedTCPPorts = [ port ]; networking.firewall.allowedTCPPorts = [ port ];
systemd = { systemd = {
services.vaultwarden-backup-rotate = { services.vaultwarden-backup-rotate = {
description = "Rotate old Vaultwarden backups"; description = "Rotate old Vaultwarden backups";
+10
View File
@@ -6,6 +6,16 @@ let
iface = config.systemd.network.networks."10-ethernet".matchConfig.Name; iface = config.systemd.network.networks."10-ethernet".matchConfig.Name;
in in
{ {
environment.persistence."/persist".directories = [
{
directory = "/var/lib/watchyourlan";
user = "watchyourlan";
group = "watchyourlan";
mode = "0750";
}
];
networking.firewall.allowedTCPPorts = [ 8840 ]; networking.firewall.allowedTCPPorts = [ 8840 ];
systemd.services.watchyourlan = { systemd.services.watchyourlan = {