machine/serverle: switch to disko config

This commit is contained in:
Felix Buehler 2023-09-07 00:00:34 +02:00
parent 95a5e4cc78
commit 08ffb1865a
6 changed files with 92 additions and 45 deletions

View file

@ -131,8 +131,6 @@ used flakes:
root@<host> root@<host>
``` ```
</details>
## Inspired by ## Inspired by
- [Nix config by Mic92](https://github.com/Mic92/dotfiles) - [Nix config by Mic92](https://github.com/Mic92/dotfiles)

View file

@ -2,13 +2,17 @@
{ {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
./disks.nix
./network.nix ./network.nix
./services.nix ./services.nix
./syncthing.nix ./syncthing.nix
./system.nix ./system.nix
./wifi.nix ./wifi.nix
]; ];
disko.devices = import ./disko-config.nix {
disks = [ "/dev/disk/by-id/usb-Seagate_Expansion_2HC015KJ-0:0" ];
};
networking.hostName = "serverle"; networking.hostName = "serverle";
sops = { sops = {

View file

@ -0,0 +1,74 @@
{ disks ? [ "/dev/sda" ], ... }:
{
disk = {
vdb = {
type = "disk";
device = builtins.head disks;
content = {
type = "gpt";
partitions = {
boot = {
size = "1M";
type = "EF02"; # for grub MBR
};
ESP = {
size = "512M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [
"defaults"
];
};
};
luks = {
size = "100%";
content = {
type = "luks";
name = "encrypted";
extraOpenArgs = [ "--allow-discards" ];
passwordFile = "/tmp/disk.key";
content = {
type = "lvm_pv";
vg = "pool";
};
};
};
};
};
};
};
lvm_vg = {
pool = {
type = "lvm_vg";
lvs = {
root = {
size = "50G";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
data = {
size = "350G";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/data";
};
};
swap = {
size = "4G";
content = {
type = "swap";
randomEncryption = true;
resumeDevice = true;
};
};
};
};
};
}

View file

@ -1,29 +0,0 @@
{ config, lib, pkgs, ... }:
{
boot.initrd.luks.devices."luks-drive" = {
name = "luks-drive";
device = "/dev/disk/by-partlabel/Crypt";
preLVM = true;
allowDiscards = true;
};
fileSystems."/" = {
device = "/dev/disk/by-label/serverle-root";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-label/serverle-bo";
fsType = "vfat";
};
fileSystems."/srv" = {
device = "/dev/disk/by-label/serverle-srv";
fsType = "ext4";
};
swapDevices = [{
device = "/dev/disk/by-label/serverle-swap";
}];
}

View file

@ -5,12 +5,12 @@
# make sure folders exist writable # make sure folders exist writable
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"d /srv/data/ 0755 syncthing syncthing" "d /data/ 0755 syncthing syncthing"
"d /srv/data/computer 0755 syncthing syncthing" "d /data/computer 0755 syncthing syncthing"
"d /srv/data/phone 0755 syncthing syncthing" "d /data/phone 0755 syncthing syncthing"
"d /srv/data/music 0755 syncthing syncthing" "d /data/music 0755 syncthing syncthing"
"d /srv/data/photos 0755 syncthing syncthing" "d /data/photos 0755 syncthing syncthing"
"d /srv/data/tmp/aria2 0755 syncthing syncthing" "d /data/tmp/aria2 0755 syncthing syncthing"
]; ];
services.syncthing = { services.syncthing = {
@ -37,7 +37,7 @@
folders = { folders = {
"Computer" = { "Computer" = {
id = "djdxo-1akub"; id = "djdxo-1akub";
path = "/srv/data/computer"; path = "/data/computer";
devices = [ devices = [
"thinkman" "thinkman"
"birdman" "birdman"
@ -46,7 +46,7 @@
}; };
"Phone" = { "Phone" = {
id = "4hds7-gpypp"; id = "4hds7-gpypp";
path = "/srv/data/phone"; path = "/data/phone";
devices = [ devices = [
"thinkman" "thinkman"
"birdman" "birdman"
@ -55,7 +55,7 @@
}; };
"Music" = { "Music" = {
id = "mphdq-n6q7y"; id = "mphdq-n6q7y";
path = "/srv/data/music"; path = "/data/music";
watch = false; watch = false;
devices = [ devices = [
"thinkman" "thinkman"
@ -65,7 +65,7 @@
}; };
"Pictures" = { "Pictures" = {
id = "cujyo-yiabu"; id = "cujyo-yiabu";
path = "/srv/data/photos"; path = "/data/photos";
watch = false; watch = false;
devices = [ devices = [
"thinkman" "thinkman"
@ -74,7 +74,7 @@
}; };
"Aria2" = { "Aria2" = {
id = "jjnzq-pgzua"; id = "jjnzq-pgzua";
path = "/srv/data/tmp/aria2"; path = "/data/tmp/aria2";
devices = [ devices = [
"thinkman" "thinkman"
]; ];

View file

@ -101,8 +101,8 @@ in
"/var/run" "/var/run"
"/var/tmp" "/var/tmp"
"/srv/data/tmp" "/data/tmp"
"/srv/data/todo" "/data/todo"
"/home/*/.cache" "/home/*/.cache"
"/home/*/.gvfs" "/home/*/.gvfs"