Compare commits

..

No commits in common. "4b520563d4db72cef83b47f3257d548bf8fca48d" and "dda9c7dad7680ee84be0ea4bcbe06aa0c856ad85" have entirely different histories.

13 changed files with 72 additions and 158 deletions

View file

@ -138,7 +138,7 @@
config.nixosModules.mantle config.nixosModules.mantle
config.nixosModules.crust config.nixosModules.crust
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
# inputs.lix-module.nixosModules.default inputs.lix-module.nixosModules.default
inputs.nur.modules.nixos.default inputs.nur.modules.nixos.default
inputs.sops-nix.nixosModules.sops inputs.sops-nix.nixosModules.sops
]; ];
@ -149,6 +149,7 @@
config.nixosModules.core config.nixosModules.core
config.nixosModules.mantle config.nixosModules.mantle
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
inputs.impermanence.nixosModules.impermanence
# inputs.lix-module.nixosModules.default # inputs.lix-module.nixosModules.default
inputs.microvm.nixosModules.host inputs.microvm.nixosModules.host
inputs.sops-nix.nixosModules.sops inputs.sops-nix.nixosModules.sops
@ -160,7 +161,7 @@
config.nixosModules.core config.nixosModules.core
config.nixosModules.mantle config.nixosModules.mantle
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
# inputs.lix-module.nixosModules.default inputs.lix-module.nixosModules.default
inputs.sops-nix.nixosModules.sops inputs.sops-nix.nixosModules.sops
]; ];
iso = inputs.self.lib.mkLinuxSystem [ iso = inputs.self.lib.mkLinuxSystem [

View file

@ -42,8 +42,10 @@ in
gparted gparted
heroic heroic
imageViewing imageViewing
# plasma
hypr hypr
wayland wayland
ivpn
kolourPaint kolourPaint
ledger ledger
libreOffice libreOffice

View file

@ -17,13 +17,11 @@ let
}) (builtins.map (service: instances.${service}.name) services); }) (builtins.map (service: instances.${service}.name) services);
instanceList = [ instanceList = [
instances.firefly-iii.name
instances.forgejo.name instances.forgejo.name
instances.jellyfin.name instances.jellyfin.name
instances.mastodon.name instances.mastodon.name
instances.ollama.name
instances.qbittorrent.name
instances.vaultwarden.name instances.vaultwarden.name
instances.firefly-iii.name
]; ];
bookmarkConfigs = [ bookmarkConfigs = [
{ {

View file

@ -2,16 +2,6 @@
name = "Tools"; name = "Tools";
toolbar = false; toolbar = false;
bookmarks = [ bookmarks = [
{
name = "Backblaze";
url = "https://secure.backblaze.com/b2_buckets.htm";
tags = [
"backblaze"
"cloud"
"storage"
];
keyword = "Back";
}
{ {
name = "Google Docs"; name = "Google Docs";
url = "https://docs.google.com"; url = "https://docs.google.com";
@ -30,6 +20,15 @@
]; ];
keyword = "Sheets"; keyword = "Sheets";
} }
{
name = "IVPN";
url = "https://www.ivpn.net";
tags = [
"ivpn"
"vpn"
];
keyword = "IVPN";
}
{ {
name = "Mega"; name = "Mega";
url = "https://mega.io"; url = "https://mega.io";
@ -48,6 +47,16 @@
]; ];
keyword = "Migadu"; keyword = "Migadu";
} }
{
name = "Mullvad";
url = "https://mullvad.net";
tags = [
"mullvad"
"vpn"
];
keyword = "Mull";
}
{ {
name = "Monkeytype"; name = "Monkeytype";
url = "https://monkeytype.com/"; url = "https://monkeytype.com/";

View file

@ -10,7 +10,9 @@ in
flatpak flatpak
hypr hypr
wayland wayland
ivpn
network network
ollamaMars
plymouth plymouth
tuios tuios
wireguard wireguard
@ -50,16 +52,15 @@ in
comfyui comfyui
firefly-iii firefly-iii
forgejo forgejo
impermanence
jellyfin jellyfin
mastodon mastodon
microvm microvm
minecraft minecraft
ollama ollama
projectSite projectSite
qbittorrent
restic restic
sambaCeres sambaCeres
torrent
vaultwarden vaultwarden
website website
zookeeper zookeeper
@ -72,9 +73,10 @@ in
inherit (modules) inherit (modules)
acme acme
caddy caddy
impermanence logrotate
microvm microvm
sambaEris sambaEris
postgresEris
; ;
}; };
}; };

View file

@ -7,8 +7,8 @@
let let
inherit (flake.config.people) user0; inherit (flake.config.people) user0;
inherit (flake.config.services) instances; inherit (flake.config.services) instances;
serviceCfg = instances.qbittorrent; serviceCfg = instances.torrent;
host = instances.qbittorrent.domains.url0; host = instances.torrent.domains.url0;
dns0 = instances.web.dns.provider0; dns0 = instances.web.dns.provider0;
dns0Path = "dns/${dns0}"; dns0Path = "dns/${dns0}";
torrentPort = 51820; torrentPort = 51820;

View file

@ -1,6 +0,0 @@
{ flake, ... }:
{
imports = [
flake.inputs.impermanence.nixosModules.impermanence
];
}

View file

@ -29,24 +29,10 @@ in
"force create mode" = "0664"; "force create mode" = "0664";
"force directory mode" = "0775"; "force directory mode" = "0775";
}; };
"transfer" = {
path = "/mnt/transfer";
browseable = "yes";
"read only" = "no";
"guest ok" = "no";
"create mask" = "0664";
"directory mask" = "0775";
"force user" = user0;
"force group" = "users";
};
}; };
}; };
}; };
systemd.tmpfiles.rules = [
"d /mnt/transfer 2775 ${user0} users -"
];
networking = { networking = {
firewall = { firewall = {
allowedTCPPorts = [ allowedTCPPorts = [

View file

@ -29,16 +29,10 @@
enable = true; enable = true;
enable32Bit = true; enable32Bit = true;
extraPackages = builtins.attrValues { extraPackages = builtins.attrValues {
inherit (pkgs) inherit (pkgs) nvidia-vaapi-driver libva-vdpau-driver;
nvidia-vaapi-driver
libva-vdpau-driver
;
}; };
extraPackages32 = builtins.attrValues { extraPackages32 = builtins.attrValues {
inherit (pkgs.pkgsi686Linux) inherit (pkgs.pkgsi686Linux) nvidia-vaapi-driver libva-vdpau-driver;
nvidia-vaapi-driver
libva-vdpau-driver
;
}; };
}; };
nvidia = { nvidia = {

View file

@ -1,45 +1,42 @@
{ {
flake, flake,
config, config,
lib,
... ...
}: }:
let let
inherit (flake.config.people) user0; inherit (flake.config.machines.devices) ceres;
rootDevice = "/dev/disk/by-label/root"; ceresSecrets = config.sops.secrets."network/server".path;
bootDevice = "/dev/disk/by-label/BOOT";
sambaDrives = [
"samba0"
];
sambaFolders = [
"storage"
];
sambaMounts = sambaDrive: folder: {
name = "${ceres.${sambaDrive}.mount}/${folder}";
value = {
device = "${ceres.${sambaDrive}.device}/${folder}";
fsType = "cifs";
options = ceres.${sambaDrive}.options ++ [
"credentials=${ceresSecrets}"
];
};
};
in in
{ {
fileSystems = { fileSystems = {
"/" = { "/" = {
device = rootDevice; device = "/dev/disk/by-uuid/df2d42e7-e91c-4525-a8d9-80aa0897b1be";
fsType = "btrfs"; fsType = "ext4";
options = [
"subvol=root"
];
};
"/nix" = {
device = rootDevice;
fsType = "btrfs";
options = [
"subvol=nix"
];
};
"/persist" = {
device = rootDevice;
fsType = "btrfs";
neededForBoot = true;
options = [
"subvol=persist"
];
}; };
"/boot" = { "/boot" = {
device = bootDevice; device = "/dev/disk/by-uuid/B645-7527";
fsType = "vfat"; fsType = "vfat";
options = [
"fmask=0077"
"dmask=0077"
];
}; };
"/mnt/storage" = { "/mnt/storage" = {
device = "/dev/md0"; device = "/dev/md0";
@ -50,91 +47,23 @@ in
"x-systemd.device-timeout=10" "x-systemd.device-timeout=10"
]; ];
}; };
"/etc/ssh" = { }
neededForBoot = true; // (builtins.listToAttrs (
}; builtins.concatMap (drive: map (folder: sambaMounts drive folder) sambaFolders) sambaDrives
}; ));
environment.persistence."/persist" = {
directories = [
"/var/cache"
"/var/lib"
{
directory = "/etc/ssh";
mode = "u=rwx,g=rx,o=rx";
user = "root";
}
];
hideMounts = true;
users.${user0} = {
directories = [
".cache"
".config"
".local/share/direnv"
".local/state/nix"
{
directory = ".ssh";
mode = "u=rwx,g=,o=";
}
];
};
};
boot = {
initrd.postResumeCommands = lib.mkAfter ''
mkdir /btrfs_tmp
mount -o subvolid=5 ${rootDevice} /btrfs_tmp
if [[ -e /btrfs_tmp/root ]]; then swapDevices = [
mkdir -p /btrfs_tmp/old_roots { device = "/dev/disk/by-uuid/9a2e032d-8627-49cf-8f3f-8fdf2be5fed4"; }
timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S") ];
mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp"
fi
delete_subvolume_recursively() { boot.swraid.enable = true;
IFS=$'\n' boot.swraid.mdadmConf = ''
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do ARRAY /dev/md0 metadata=1.2 name=eris:storage UUID=64659038:a939a18d:8cdc0f3f:97171a50
delete_subvolume_recursively "/btrfs_tmp/$i" '';
done
btrfs subvolume delete "$1"
}
for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do
delete_subvolume_recursively "$i"
done
btrfs subvolume create /btrfs_tmp/root
umount /btrfs_tmp
'';
swraid.enable = true;
# mdadmConf = ''
# ARRAY /dev/md0 metadata=1.2 name=eris:storage UUID=64659038:a939a18d:8cdc0f3f:97171a50
# '';
};
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"Z ${config.home-manager.users.${user0}.home.homeDirectory} 0755 ${user0} users -"
"d /mnt/storage 2775 root root -" "d /mnt/storage 2775 root root -"
]; ];
services.udisks2.enable = true; services.udisks2.enable = true;
} }
# sudo mount /dev/disk/by-label/root /mnt
# sudo btrfs subvolume create /mnt/persist
# sudo btsfs subvolume create /mnt/root
# sudo btrfs subvolume create /mnt/nix
# sudo umount /mnt
# sudo mount -o subvol=root /dev/disk/by-label/root /mnt
# sudo mount -o subvol=nix /dev/disk/by-label/root /mnt/nix
# sudo mount -o subvol=persist /dev/disk/by-label/root /mnt/persist
# sudo mount /dev/disk/by-label/BOOT /mnt/boot
# sudo nixos-generate-config --root /mnt
# sudo nixos-install --root /mnt
# sudo nixos-enter --root /mnt
# nixos-rebuild boot
# exit
# sudo reboot

View file

@ -26,7 +26,6 @@ in
]; ];
ceresFolders = [ ceresFolders = [
"storage" "storage"
"transfer"
]; ];
storageMounts = storageDrive: { storageMounts = storageDrive: {
name = "${mars.${storageDrive}.mount}"; name = "${mars.${storageDrive}.mount}";