added nasty system config
This commit is contained in:
parent
a93d9736a9
commit
9eb125dad1
5 changed files with 398 additions and 0 deletions
65
systems/nasty/configuration.nix
Normal file
65
systems/nasty/configuration.nix
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
./hardware-configuration.nix
|
||||||
|
./modules/generic.nix
|
||||||
|
./modules/physical.nix
|
||||||
|
./modules/borg-serve.nix
|
||||||
|
./modules/jellyfin.nix
|
||||||
|
./modules/arrstack.nix
|
||||||
|
./modules/authentik-proxy.nix
|
||||||
|
./modules/stash.nix
|
||||||
|
#./modules/nextcloud-aio.nix
|
||||||
|
./samba.nix
|
||||||
|
./modules/navidrome.nix
|
||||||
|
./modules/feishin.nix
|
||||||
|
./modules/tvproxy.nix
|
||||||
|
./modules/calibre-web.nix
|
||||||
|
./modules/borg.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
system.autoUpgrade = {
|
||||||
|
allowReboot = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
sops.secrets."authentik/proxy/nasty" = {};
|
||||||
|
services.authentik-proxy.token = builtins.readFile config.sops.secrets."authentik/proxy/nasty".path;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
mediainfo
|
||||||
|
mergerfs
|
||||||
|
mergerfs-tools
|
||||||
|
filezilla
|
||||||
|
firefox
|
||||||
|
ffmpeg_6-full
|
||||||
|
_7zz
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.fuse.userAllowOther = true;
|
||||||
|
|
||||||
|
users.users.mc-fucker.extraGroups = [ "render" ];
|
||||||
|
|
||||||
|
zramSwap.memoryPercent = 50;
|
||||||
|
|
||||||
|
programs.atop.netatop.enable = false;
|
||||||
|
programs.java.enable = true;
|
||||||
|
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
desktopManager = {
|
||||||
|
xterm.enable = false;
|
||||||
|
xfce.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.xrdp = {
|
||||||
|
enable = true;
|
||||||
|
defaultWindowManager = "xfce4-session";
|
||||||
|
};
|
||||||
|
|
||||||
|
#system.stateVersion = "24.11";
|
||||||
|
|
||||||
|
}
|
||||||
|
# vim: set et ts=2 sw=2 ai:
|
||||||
130
systems/nasty/drives.nix
Normal file
130
systems/nasty/drives.nix
Normal file
|
|
@ -0,0 +1,130 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
environment.etc.crypttab = {
|
||||||
|
text = ''
|
||||||
|
1EJZN6MZ UUID=8264b529-17a9-4167-8e34-3774b5074a4e /var/lib/keyfiles/8264b529-17a9-4167-8e34-3774b5074a4e nofail
|
||||||
|
1EKR513Z UUID=80483157-7aa4-42a4-af5d-bbd7474a29b3 /var/lib/keyfiles/80483157-7aa4-42a4-af5d-bbd7474a29b3 nofail
|
||||||
|
1EKVK21Z UUID=438e7e6b-4faa-4fc5-b7ba-3d7af0c9e184 /var/lib/keyfiles/438e7e6b-4faa-4fc5-b7ba-3d7af0c9e184 nofail
|
||||||
|
43P0A00AFJDH UUID=eff697b4-86bc-4a0e-833f-cc40e6aa001e /var/lib/keyfiles/eff697b4-86bc-4a0e-833f-cc40e6aa001e nofail
|
||||||
|
43P0A00FFJDH UUID=eae95261-2600-4935-93ba-6cd8e54773e0 /var/lib/keyfiles/eae95261-2600-4935-93ba-6cd8e54773e0 nofail
|
||||||
|
53F0A0SBFJDH UUID=f443a535-ca5a-4093-9f29-6ab0699e3527 /var/lib/keyfiles/f443a535-ca5a-4093-9f29-6ab0699e3527 nofail
|
||||||
|
53G0A2AXFJDH UUID=2fc7874c-ef0e-41d7-85f6-a8364041c51b /var/lib/keyfiles/2fc7874c-ef0e-41d7-85f6-a8364041c51b nofail
|
||||||
|
53J0A016FJDH UUID=95f84b21-d3d3-4241-8a9b-5ac46afea1e1 /var/lib/keyfiles/95f84b21-d3d3-4241-8a9b-5ac46afea1e1 nofail
|
||||||
|
92F0A079FJDH UUID=b915263e-082d-4954-845d-4bdf4fbf049a /var/lib/keyfiles/b915263e-082d-4954-845d-4bdf4fbf049a nofail
|
||||||
|
X2N0A0AXFJDH UUID=60e3e109-d7e0-4587-ba08-ba69eb6cd957 /var/lib/keyfiles/60e3e109-d7e0-4587-ba08-ba69eb6cd957 nofail
|
||||||
|
X2N0A0AZFJDH UUID=d57c6d8f-26cd-4387-8aaa-37dcedb1eadf /var/lib/keyfiles/d57c6d8f-26cd-4387-8aaa-37dcedb1eadf nofail
|
||||||
|
ZA1D9307 UUID=4d4621d3-0b75-4779-8548-a4836e68469e /var/lib/keyfiles/4d4621d3-0b75-4779-8548-a4836e68469e nofail
|
||||||
|
'';
|
||||||
|
#unused
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
"/" = {
|
||||||
|
device = "/dev/disk/by-uuid/ad716602-9e0d-4c07-9fb5-e15cb6df3004";
|
||||||
|
fsType = "ext4";
|
||||||
|
#options = [ "compress-force=zstd" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/boot/efi" = {
|
||||||
|
device = "/dev/disk/by-uuid/2427-55B1";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/drives/1EJZN6MZ" = {
|
||||||
|
label = "1EJZN6MZ";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress-force=zstd" "nofail" "x-systemd.mount-timeout=5m" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/drives/1EKR513Z" = {
|
||||||
|
label = "1EKR513Z";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress-force=zstd" "nofail" "x-systemd.mount-timeout=5m" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/drives/1EKVK21Z" = {
|
||||||
|
label = "1EKVK21Z";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress-force=zstd" "nofail" "x-systemd.mount-timeout=5m" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/drives/53F0A0SBFJDH" = {
|
||||||
|
label = "53F0A0SBFJDH";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress-force=zstd" "nofail" "x-systemd.mount-timeout=5m" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/drives/53G0A2AXFJDH" = {
|
||||||
|
label = "53G0A2AXFJDH";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress-force=zstd" "nofail" "x-systemd.mount-timeout=5m" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/drives/53J0A016FJDH" = {
|
||||||
|
label = "53J0A016FJDH";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress-force=zstd" "nofail" "x-systemd.mount-timeout=5m" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/drives/92F0A079FJDH" = {
|
||||||
|
label = "92F0A079FJDH";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress-force=zstd" "nofail" "x-systemd.mount-timeout=5m" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/drives/43P0A00FFJDH" = {
|
||||||
|
label = "43P0A00FFJDH";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress-force=zstd" "nofail" "x-systemd.mount-timeout=5m" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/drives/43P0A00AFJDH" = {
|
||||||
|
label = "43P0A00AFJDH";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress-force=zstd" "nofail" "x-systemd.mount-timeout=5m" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/drives/X2N0A0AXFJDH" = {
|
||||||
|
label = "X2N0A0AXFJDH";
|
||||||
|
fsType = "ext4";
|
||||||
|
options = [ "nofail" "x-systemd.mount-timeout=5m" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/drives/X2N0A0AZFJDH" = {
|
||||||
|
label = "X2N0A0AZFJDH";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress-force=zstd" "nofail" "x-systemd.mount-timeout=5m" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/drives/ZA1D9307" = {
|
||||||
|
label = "ZA1D9307";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress-force=zstd" "nofail" "x-systemd.mount-timeout=5m" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/mergerfs" = {
|
||||||
|
device = "/mnt/drives/X2N0A0AXFJDH:/mnt/drives/92F0A079FJDH:/mnt/drives/43P0A00FFJDH:/mnt/drives/43P0A00AFJDH:/mnt/drives/53J0A016FJDH:/mnt/drives/53F0A0SBFJDH:/mnt/drives/53G0A2AXFJDH:/mnt/drives/1EKVK21Z:/mnt/drives/1EJZN6MZ:/mnt/drives/1EKR513Z";
|
||||||
|
fsType = "fuse.mergerfs";
|
||||||
|
options = [ "cache.files=full,,dropcacheonclose=true,category.create=mfs" "nofail" ];
|
||||||
|
depends = [ "/mnt/drives/X2N0A0AXFJDH" "/mnt/drives/92F0A079FJDH" "/mnt/drives/43P0A00FFJDH" "/mnt/drives/43P0A00AFJDH" "/mnt/drives/53J0A016FJDH" "/mnt/drives/53F0A0SBFJDH" "/mnt/drives/53G0A2AXFJDH" "/mnt/drives/1EKVK21Z" "/mnt/drives/1EJZN6MZ" "/mnt/drives/1EKR513Z" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
#"/mnt/box" = {
|
||||||
|
# device = "seedbox:";
|
||||||
|
# fsType = "fuse.rclone";
|
||||||
|
# options = [ "user_id=1000" "group_id=100" ];
|
||||||
|
#};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nfs.server = {
|
||||||
|
enable = true;
|
||||||
|
exports = ''
|
||||||
|
/mnt/mergerfs 100.64.0.13(no_subtree_check,fsid=0)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
# vim: set et ts=2 sw=2 ai:
|
||||||
66
systems/nasty/hardware-configuration.nix
Normal file
66
systems/nasty/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
system.stateVersion = "24.11";
|
||||||
|
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
./drives.nix
|
||||||
|
./snapraid.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "uas" "usbhid" "usb_storage" "sd_mod" "igc" ];
|
||||||
|
boot.initrd.kernelModules = [ "dm-snapshot" ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
|
boot.extraModprobeConfig = ''
|
||||||
|
options usb-storage quirks=174c:1356:u
|
||||||
|
'';
|
||||||
|
|
||||||
|
hardware.opengl = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
intel-media-driver
|
||||||
|
vaapiIntel
|
||||||
|
vaapiVdpau
|
||||||
|
libvdpau-va-gl
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.hostName = "nasty";
|
||||||
|
|
||||||
|
boot.initrd.network = {
|
||||||
|
enable = true;
|
||||||
|
ssh = {
|
||||||
|
enable = true;
|
||||||
|
port = 2222;
|
||||||
|
hostKeys = [ "/root/ssh_host_ed25519_key" ];
|
||||||
|
};
|
||||||
|
postCommands = ''
|
||||||
|
echo "cryptsetup-askpass" >> /root/.profile
|
||||||
|
'';
|
||||||
|
udhcpc.extraArgs = [ "--timeout=10" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.initrd.luks.devices."nixos".device = "/dev/disk/by-uuid/58fc6ad3-8b7c-4448-8f07-5fedac404442";
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp86s0.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
|
#hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
||||||
|
# vim: set et ts=2 sw=2 ai:
|
||||||
50
systems/nasty/samba.nix
Normal file
50
systems/nasty/samba.nix
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
users.groups = {
|
||||||
|
dummesos = { gid = 1100; };
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users = {
|
||||||
|
dummesos = {
|
||||||
|
uid = 1100;
|
||||||
|
isSystemUser = true;
|
||||||
|
group = "dummesos";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.samba-wsdd = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.samba = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
shares = {
|
||||||
|
"private" = {
|
||||||
|
path = "/mnt/mergerfs/smb/%u";
|
||||||
|
"read only" = "no";
|
||||||
|
"create mask" = "0600";
|
||||||
|
"directory mask" = "0700";
|
||||||
|
};
|
||||||
|
"software" = {
|
||||||
|
path = "/mnt/mergerfs/media/software";
|
||||||
|
"guest ok" = "yes";
|
||||||
|
};
|
||||||
|
"movies" = {
|
||||||
|
path = "/mnt/mergerfs/media/movies";
|
||||||
|
"guest ok" = "yes";
|
||||||
|
};
|
||||||
|
"Serien" = {
|
||||||
|
path = "/mnt/mergerfs/media/Serien";
|
||||||
|
"guest ok" = "yes";
|
||||||
|
};
|
||||||
|
#"software" = {
|
||||||
|
# path = "/mnt/mergerfs/media/software";
|
||||||
|
# "guest ok" = "yes";
|
||||||
|
#};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
# vim: set et ts=2 sw=2 ai:
|
||||||
87
systems/nasty/snapraid.nix
Normal file
87
systems/nasty/snapraid.nix
Normal file
|
|
@ -0,0 +1,87 @@
|
||||||
|
{ ... }:
|
||||||
|
let
|
||||||
|
excludes = [
|
||||||
|
"/media/usenet/incomplete/"
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
#systemd.timers."snapraid-sync".enable = false; #temporarily
|
||||||
|
#services.snapraid = {
|
||||||
|
# enable = true;
|
||||||
|
# scrub.plan = 5;
|
||||||
|
# parityFiles = [
|
||||||
|
# "/mnt/drives/X2N0A0AZFJDH/snapraid.parity"
|
||||||
|
# ];
|
||||||
|
# dataDisks = {
|
||||||
|
# d1 = "/mnt/drives/43P0A00AFJDH";
|
||||||
|
# d2 = "/mnt/drives/43P0A00FFJDH";
|
||||||
|
# d3 = "/mnt/drives/53F0A0SBFJDH";
|
||||||
|
# d4 = "/mnt/drives/53G0A2AXFJDH";
|
||||||
|
# d5 = "/mnt/drives/53J0A016FJDH";
|
||||||
|
# d6 = "/mnt/drives/92F0A079FJDH";
|
||||||
|
# d7 = "/mnt/drives/X2N0A0AXFJDH";
|
||||||
|
# #d3 = "/mnt/drives/1EKVK21Z";
|
||||||
|
# };
|
||||||
|
# contentFiles = [
|
||||||
|
# "/mnt/snapraid-18tb1.content"
|
||||||
|
# "/mnt/snapraid-18tb2.content"
|
||||||
|
# #"/mnt/drives/43P0A00AFJDH/snapraid.content"
|
||||||
|
# #"/mnt/drives/43P0A00FFJDH/snapraid.content"
|
||||||
|
# #"/mnt/drives/53F0A0SBFJDH/snapraid.content"
|
||||||
|
# #"/mnt/drives/53G0A2AXFJDH/snapraid.content"
|
||||||
|
# #"/mnt/drives/53J0A016FJDH/snapraid.content"
|
||||||
|
# #"/mnt/drives/92F0A079FJDH/snapraid.content"
|
||||||
|
# #"/mnt/drives/X2N0A0AXFJDH/snapraid.content"
|
||||||
|
# #"/mnt/drives/1EKVK21Z/snapraid.content"
|
||||||
|
# ];
|
||||||
|
# exclude = [
|
||||||
|
# "/media/usenet/incomplete/"
|
||||||
|
# ];
|
||||||
|
#};
|
||||||
|
|
||||||
|
imports = [ ./modules/snapraid.nix ];
|
||||||
|
|
||||||
|
services.snapraidnew = {
|
||||||
|
"8tb" = {
|
||||||
|
arrayName = "8tb";
|
||||||
|
enable = true;
|
||||||
|
scrub.plan = 5;
|
||||||
|
parityFiles = [
|
||||||
|
"/mnt/drives/ZA1D9307/snapraid-8tb.parity"
|
||||||
|
];
|
||||||
|
dataDisks = {
|
||||||
|
d1 = "/mnt/drives/1EJZN6MZ";
|
||||||
|
d2 = "/mnt/drives/1EKR513Z";
|
||||||
|
d3 = "/mnt/drives/1EKVK21Z";
|
||||||
|
};
|
||||||
|
contentFiles = [
|
||||||
|
"/mnt/snapraid-8tb1.content"
|
||||||
|
"/mnt/drives/X2N0A0AZFJDH/snapraid-8tb2.content"
|
||||||
|
];
|
||||||
|
exclude = excludes;
|
||||||
|
};
|
||||||
|
"18tb" = {
|
||||||
|
enable = true;
|
||||||
|
scrub.plan = 5;
|
||||||
|
parityFiles = [
|
||||||
|
"/mnt/drives/X2N0A0AZFJDH/snapraid.parity"
|
||||||
|
];
|
||||||
|
dataDisks = {
|
||||||
|
d1 = "/mnt/drives/43P0A00AFJDH";
|
||||||
|
d2 = "/mnt/drives/43P0A00FFJDH";
|
||||||
|
d3 = "/mnt/drives/53F0A0SBFJDH";
|
||||||
|
d4 = "/mnt/drives/53G0A2AXFJDH";
|
||||||
|
d5 = "/mnt/drives/53J0A016FJDH";
|
||||||
|
d6 = "/mnt/drives/92F0A079FJDH";
|
||||||
|
d7 = "/mnt/drives/X2N0A0AXFJDH";
|
||||||
|
};
|
||||||
|
contentFiles = [
|
||||||
|
"/mnt/snapraid-18tb1.content"
|
||||||
|
"/mnt/drives/ZA1D9307/snapraid-18tb2.content"
|
||||||
|
];
|
||||||
|
exclude = excludes;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
# vim: set et ts=2 sw=2 ai:
|
||||||
Loading…
Add table
Reference in a new issue