1 Commits

Author SHA1 Message Date
andromeda
ab263e5184 migrate to impermanence? 2026-01-02 23:15:56 +01:00
10 changed files with 54 additions and 10 deletions

View File

@@ -4,6 +4,10 @@
machine, machine,
... ...
}: { }: {
imports = [
./impermanence.nix
(modulesPath + "/profiles/qemu-guest.nix")
];
# roundcube config # roundcube config
services.roundcube = { services.roundcube = {
enable = true; enable = true;
@@ -25,7 +29,7 @@
x509.useACMEHost = config.mailserver.fqdn; x509.useACMEHost = config.mailserver.fqdn;
loginAccounts = { loginAccounts = {
"test@${config.networking.domain}" = { "test@${config.networking.domain}" = {
hashedPasswordFile = builtins.toString config.age.secrets.mailserver-acc-test-pw.path; hashedPasswordFile = builtins.toString config.age.secrets.secret3.path;
}; };
}; };
}; };
@@ -46,8 +50,12 @@
# system config # system config
system.stateVersion = "25.11"; system.stateVersion = "25.11";
nix.settings.experimental-features = ["flakes" "nix-command"]; nix.settings.experimental-features = ["flakes" "nix-command"];
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
fileSystems."/" = { fileSystems."/" = {
device = "none";
fsType = "tmpfs";
options = ["defaults" "size=60%" "mode=755"];
};
fileSystems."/nix" = {
device = "/dev/sda1"; device = "/dev/sda1";
fsType = "ext4"; fsType = "ext4";
}; };

View File

@@ -0,0 +1,30 @@
{
environment.persistence."/nix/persist" = {
enable = true;
hideMounts = true;
directories = [
# logs
"/var/log"
"/var/lib/systemd/coredump"
# users
"/var/lib/nixos"
# private ssh keys
"/etc/ssh"
# mailserver
"/var/vmail"
"/var/dkim"
"/var/lib/dovecot"
"/var/lib/postfix"
"/var/lib/postgresql"
"/var/lib/redis-rspamd"
"/var/lib/roundcube"
"/var/lib/secrets"
];
files = [
"/etc/machine-id"
];
};
}

View File

@@ -9,6 +9,10 @@
./impermanence.nix ./impermanence.nix
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
age.secrets = {
secret0.file = ../../secrets/secret0.age;
secret1.file = ../../secrets/secret1.age;
};
boot.loader = { boot.loader = {
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
systemd-boot.enable = true; systemd-boot.enable = true;

View File

@@ -1,8 +1,9 @@
{ {
age.secrets = { age.secrets = {
andromeda-pw.file = ./secrets/andromeda-pw.age; secret0.file = ./secrets/secret0.age;
mtgmonkey-pw.file = ./secrets/mtgmonkey-pw.age; secret1.file = ./secrets/secret1.age;
mailserver-acc-test-pw.file = ./secrets/mailserver-acc-test-pw.age; secret2.file = ./secrets/secret2.age;
secret3.file = ./secrets/secret3.age;
}; };
pub-keys = { pub-keys = {
ssh = { ssh = {

BIN
secrets/secret2.age Normal file

Binary file not shown.

View File

@@ -4,7 +4,8 @@ let
lenovo = pub-keys.ssh.lenovo; lenovo = pub-keys.ssh.lenovo;
_109-199-104-83 = pub-keys.ssh._109-199-104-83; _109-199-104-83 = pub-keys.ssh._109-199-104-83;
in { in {
"andromeda-pw.age".publicKeys = [andromeda lenovo]; "secret0.age".publicKeys = [andromeda lenovo];
"mtgmonkey-pw.age".publicKeys = [andromeda lenovo]; "secret1.age".publicKeys = [andromeda lenovo];
"mailserver-acc-test-pw.age".publicKeys = [andromeda lenovo _109-199-104-83]; "secret2.age".publicKeys = [andromeda lenovo _109-199-104-83];
"secret3.age".publicKeys = [andromeda lenovo _109-199-104-83];
} }

View File

@@ -13,7 +13,7 @@ in {
"andromeda" = { "andromeda" = {
isNormalUser = true; isNormalUser = true;
description = "andromeda"; description = "andromeda";
hashedPasswordFile = builtins.toString config.age.secrets.andromeda-pw.path; hashedPasswordFile = builtins.toString config.age.secrets.secret0.path;
extraGroups = [ extraGroups = [
"networkmanager" "networkmanager"
"wheel" "wheel"
@@ -22,7 +22,7 @@ in {
"mtgmonkey" = { "mtgmonkey" = {
isNormalUser = true; isNormalUser = true;
description = "mtgmonkey"; description = "mtgmonkey";
hashedPasswordFile = builtins.toString config.age.secrets.mtgmonkey-pw.path; hashedPasswordFile = builtins.toString config.age.secrets.secret1.path;
extraGroups = [ extraGroups = [
(lib.mkIf (lib.mkIf
(machine == machines.lenovo) (machine == machines.lenovo)