Modify like, basically everything idk, probably a lot of secrets and url names and colmena and whatnot

This commit is contained in:
Bun 2025-06-20 20:20:48 -04:00
parent 0ab856b18e
commit b3ba7481d8
107 changed files with 437 additions and 696 deletions

View file

@ -6,7 +6,7 @@ This config is primarily organized for my own use, you may find individual servi
### Installation ### Installation
You can install this flake from any system with the Nix package manager installed, including any official images. You can install this flake from any system with the Nix package manager installed, including any official images.
Disko is used to automatically format your drive according to a declared config. Disko is used to automatically format your drive according to a declared config.
Use ``nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode destroy,format,mount ./filename.nix`` to format the disk with Disko. Use ``nix-shell -p disko --run "sudo disko --mode destroy,format,mount ./disko.nix"`` to format the disk with Disko.
You will likely want to generate a per hardware nix file using ``nixos-generate-config --root ./ --no-filesystems``, and adapt it to fit the format of ``/hosts``, to ensure essential drivers are loaded on boot. You will likely want to generate a per hardware nix file using ``nixos-generate-config --root ./ --no-filesystems``, and adapt it to fit the format of ``/hosts``, to ensure essential drivers are loaded on boot.
Once formatted and adjusted, NixOS can be installed to the mounted drive with ``nixos-install --root /mnt --flake .#host``, where ``host`` is a hostname defined in this flake. Once formatted and adjusted, NixOS can be installed to the mounted drive with ``nixos-install --root /mnt --flake .#host``, where ``host`` is a hostname defined in this flake.

84
flake.lock generated
View file

@ -40,11 +40,11 @@
}, },
"crane": { "crane": {
"locked": { "locked": {
"lastModified": 1746291859, "lastModified": 1748970125,
"narHash": "sha256-DdWJLA+D5tcmrRSg5Y7tp/qWaD05ATI4Z7h22gd1h7Q=", "narHash": "sha256-UDyigbDGv8fvs9aS95yzFfOKkEjx1LO3PL3DsKopohA=",
"owner": "ipetkov", "owner": "ipetkov",
"repo": "crane", "repo": "crane",
"rev": "dfd9a8dfd09db9aad544c4d3b6c47b12562544a5", "rev": "323b5746d89e04b22554b061522dfce9e4c49b18",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -60,11 +60,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1748225455, "lastModified": 1749436314,
"narHash": "sha256-AzlJCKaM4wbEyEpV3I/PUq5mHnib2ryEy32c+qfj6xk=", "narHash": "sha256-CqmqU5FRg5AadtIkxwu8ulDSOSoIisUMZRLlcED3Q5w=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "a894f2811e1ee8d10c50560551e50d6ab3c392ba", "rev": "dfa4d1b9c39c0342ef133795127a3af14598017a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -76,11 +76,11 @@
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1733328505, "lastModified": 1747046372,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -108,11 +108,11 @@
"flake-compat_3": { "flake-compat_3": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1733328505, "lastModified": 1747046372,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -129,11 +129,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1743550720, "lastModified": 1749398372,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "c621e8422220273271f52058f618c94e405bb0f5", "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -276,11 +276,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1748665073, "lastModified": 1749154018,
"narHash": "sha256-RMhjnPKWtCoIIHiuR9QKD7xfsKb3agxzMfJY8V9MOew=", "narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "282e1e029cb6ab4811114fc85110613d72771dea", "rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -313,11 +313,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1748683484, "lastModified": 1749495634,
"narHash": "sha256-RXiY6t9E9oLEtfdGChHk/OIPqxYg1tu8XLvbPnJlfi4=", "narHash": "sha256-NPifVq2XZGRCsLBoUt6M5YUTiIh23+ubq57w7mSODt8=",
"owner": "Jovian-Experiments", "owner": "Jovian-Experiments",
"repo": "Jovian-NixOS", "repo": "Jovian-NixOS",
"rev": "6f6bd4a27fb01c9dd623a157d769f34561407f47", "rev": "c40d2f31f92571bf341497884174a132829ef0fc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -338,11 +338,11 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1747056319, "lastModified": 1749471908,
"narHash": "sha256-qSKcBaISBozadtPq6BomnD+wIYTZIkiua3UuHLaD52c=", "narHash": "sha256-uGfPqd43KTomeIVWUzHu3hGLWFsqYibhWLt2OaRic28=",
"owner": "nix-community", "owner": "nix-community",
"repo": "lanzaboote", "repo": "lanzaboote",
"rev": "2e425f3da6ce7f5b34fa6eaf7a2a7f78dbabcc85", "rev": "00292388ad3b497763b81568d6ee5e1c4a2bcf85",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -385,11 +385,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1748570485, "lastModified": 1749607590,
"narHash": "sha256-oDnEc/rxyDf+uUXO56Z2TJtrrQoBe0Z4MCIRaY6lVZ0=", "narHash": "sha256-vvu9zoaYuuPIGG9YKRBMNqOELGN+x2qHbEK6PrZ/Ky0=",
"owner": "Infinidoge", "owner": "Infinidoge",
"repo": "nix-minecraft", "repo": "nix-minecraft",
"rev": "6c961ee42ff2301ee61c75aa42cbe8c8adecf3c8", "rev": "83aaf9c7e3caa39608992e723cfb997624920a35",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -445,11 +445,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1748748623, "lastModified": 1749614785,
"narHash": "sha256-ajFTvgFyRxLMjpJxK+KOEp2+dNRl/Bc8Mnby7W8uPk4=", "narHash": "sha256-yn6eDwnUr9vZYpneg+XNh0/tC1KA9a+yXxvFMEzOfco=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "58a80c3ede0cdfa480f3bd8f0e79c010677f2a07", "rev": "14f8439ad1190d3dd09f9fcc6a033d9710d68806",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -471,11 +471,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1746537231, "lastModified": 1747372754,
"narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=", "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
"owner": "cachix", "owner": "cachix",
"repo": "pre-commit-hooks.nix", "repo": "pre-commit-hooks.nix",
"rev": "fa466640195d38ec97cf0493d6d6882bc4d14969", "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -508,11 +508,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747017456, "lastModified": 1749436897,
"narHash": "sha256-C/U12fcO+HEF071b5mK65lt4XtAIZyJSSJAg9hdlvTk=", "narHash": "sha256-OkDtaCGQQVwVFz5HWfbmrMJR99sFIMXHCHEYXzUJEJY=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "5b07506ae89b025b14de91f697eba23b48654c52", "rev": "e7876c387e35dc834838aff254d8e74cf5bd4f19",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -523,11 +523,11 @@
}, },
"stable": { "stable": {
"locked": { "locked": {
"lastModified": 1749024892, "lastModified": 1750005367,
"narHash": "sha256-OGcDEz60TXQC+gVz5sdtgGJdKVYr6rwdzQKuZAJQpCA=", "narHash": "sha256-h/aac1dGLhS3qpaD2aZt25NdKY7b+JT0ZIP2WuGsJMU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "8f1b52b04f2cb6e5ead50bd28d76528a2f0380ef", "rev": "6c64dabd3aa85e0c02ef1cdcb6e1213de64baee3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -589,11 +589,11 @@
}, },
"unstable": { "unstable": {
"locked": { "locked": {
"lastModified": 1748929857, "lastModified": 1749794982,
"narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=", "narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4", "rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -65,7 +65,14 @@
name = "bunhive"; name = "bunhive";
# NixPKGs # NixPKGs
nixpkgs = import stable { system = "x86_64-linux"; }; nixpkgs = import stable {
overlays = [
blender.overlays.default
minecraft.overlay
];
system = "x86_64-linux";
};
specialArgs = inputs; specialArgs = inputs;
# Use a different Nixpkgs import on some systems # Use a different Nixpkgs import on some systems
@ -73,7 +80,15 @@
}; };
# Import the default config to all hosts # Import the default config to all hosts
defaults.imports = [ ./modules/system ]; defaults.imports = [
./modules/system
disko.nixosModules.disko
hm.nixosModules.home-manager
impermanence.nixosModules.impermanence
jovian.nixosModules.default
lanzaboote.nixosModules.lanzaboote
minecraft.nixosModules.minecraft-servers
];
# Desktops # Desktops
tower.imports = [ ./hosts/tower ]; tower.imports = [ ./hosts/tower ];
@ -88,7 +103,6 @@
midas.imports = [ ./hosts/midas ]; midas.imports = [ ./hosts/midas ];
kitty.imports = [ ./hosts/kitty ]; kitty.imports = [ ./hosts/kitty ];
detritus.imports = [ ./hosts/detritus ]; detritus.imports = [ ./hosts/detritus ];
elder.imports = [ ./hosts/elder ];
prophet.imports = [ ./hosts/prophet ]; prophet.imports = [ ./hosts/prophet ];
}; };
} }

View file

@ -2,10 +2,6 @@
{ {
boot = { boot = {
kernelPackages = pkgs.linuxPackages_hardened; kernelPackages = pkgs.linuxPackages_hardened;
kernelParams = [ loader.limine.enable = true;
"amdgpu.si_support=1"
"radeon.si_support=0"
];
loader.systemd-boot.enable = true;
}; };
} }

View file

@ -12,9 +12,11 @@
stateVersion = "25.05"; stateVersion = "25.05";
}; };
deployment.targetHost = "5dd:9cd7:f286:e2c7:4c3b:c2e1:7832:97a3"; deployment.targetHost = "53a:2092:12ff:889c:2e1f:1d79:f05a:cadd";
networking.hostId = "0917a5c1"; networking.hostId = "0917a5c1";
services.nfs.server.enable = true; services.nfs.server.enable = true;
virtualisation.libvirtd.enable = true;
} }

View file

@ -1,16 +1,15 @@
{ config, disko, ... }: { config, name, ... }:
{ {
imports = [ disko.nixosModules.disko ];
disko.devices = { disko.devices = {
disk = { disk = {
"${config.networking.hostName}" = { "${name}" = {
type = "disk"; type = "disk";
device = "/dev/sda"; device = "/dev/sda";
content = { content = {
type = "gpt"; type = "gpt";
partitions = { partitions = {
boot = { boot = {
priority = 1;
size = "1M"; size = "1M";
type = "EF02"; type = "EF02";
}; };
@ -28,7 +27,7 @@
size = "100%"; size = "100%";
content = { content = {
type = "lvm_pv"; type = "lvm_pv";
vg = "${config.networking.hostName}"; vg = "${name}";
}; };
}; };
}; };
@ -37,7 +36,7 @@
}; };
lvm_vg = { lvm_vg = {
"${config.networking.hostName}" = { "${name}" = {
type = "lvm_vg"; type = "lvm_vg";
lvs = { lvs = {
root = { root = {

View file

@ -10,7 +10,5 @@
"subvol=storage" "subvol=storage"
]; ];
}; };
"detritus".enable = false;
}; };
} }

View file

@ -1,11 +0,0 @@
{ pkgs, ... }:
{
boot = {
kernelPackages = pkgs.linuxPackages_hardened;
kernelParams = [
"amdgpu.si_support=1"
"radeon.si_support=0"
];
loader.grub.enable = true;
};
}

View file

@ -1,20 +0,0 @@
{ ... }:
{
imports = [
./boot
./disko
./filesystems
./hardware
];
system = {
nixos.tags = [ "server" ];
stateVersion = "25.05";
};
deployment.targetHost = "570:3651:7f2:c26b:bccd:725b:be00:8a18";
networking.hostId = "447645a9";
services.nfs.server.enable = true;
}

View file

@ -1,100 +0,0 @@
{ config, disko, ... }:
{
imports = [ disko.nixosModules.disko ];
disko.devices = {
disk = {
"${config.networking.hostName}" = {
type = "disk";
device = "/dev/sda";
content = {
type = "gpt";
partitions = {
boot = {
size = "1M";
type = "EF02";
};
ESP = {
size = "2G";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
};
};
main = {
size = "100%";
content = {
type = "lvm_pv";
vg = "${config.networking.hostName}";
};
};
};
};
};
};
lvm_vg = {
"${config.networking.hostName}" = {
type = "lvm_vg";
lvs = {
root = {
size = "100%";
content = {
type = "btrfs";
extraArgs = [ "-f" ];
subvolumes = {
"/root" = {
mountpoint = "/";
mountOptions = [
"compress=zstd"
"ssd"
];
};
"/prev" = {
mountpoint = "/prev";
mountOptions = [
"compress=zstd"
"noexec"
"ssd"
];
};
"/nix" = {
mountpoint = "/nix";
mountOptions = [
"compress=zstd"
"ssd"
];
};
# Impermanence
"/persist" = {
mountpoint = "/persist";
mountOptions = [
"compress=zstd"
"ssd"
];
};
"/persist/.snapshots" = { };
"/persist/home" = { };
"/persist/home/.snapshots" = { };
};
};
};
swap = {
size = "8G";
content = {
type = "swap";
discardPolicy = "both";
};
};
};
};
};
};
# Needed for impermanence
fileSystems."/persist".neededForBoot = true;
}

View file

@ -1,16 +0,0 @@
{ ... }:
{
fileSystems = {
"/persist/storage" = {
device = "/dev/disk/by-uuid/5c3c533b-1c70-4411-854a-37fa794fc17c";
fsType = "btrfs";
options = [
"nofail"
"nosuid"
"subvol=storage"
];
};
"elder".enable = false;
};
}

View file

@ -1,23 +0,0 @@
{ modulesPath, ... }:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot = {
initrd = {
availableKernelModules = [
"ahci"
"ehci_pci"
"sd_mod"
"sr_mod"
"uhci_hcd"
"usbhid"
];
kernelModules = [ "dm-snapshot" ];
};
kernelModules = [ "kvm-intel" ];
};
hardware.cpu.intel.updateMicrocode = true;
nixpkgs.hostPlatform = "x86_64-linux";
}

View file

@ -1,8 +1,11 @@
{ pkgs, ... }: { lib, pkgs, ... }:
{ {
boot = { boot = {
kernelPackages = pkgs.linuxPackages_latest; kernelPackages = pkgs.linuxPackages;
loader.grub.enable = true; loader.limine = {
enable = true;
biosDevice = lib.mkForce "/dev/disk/by-id/ata-XSTAR_SSD_64GB_XSFA2011000462";
};
plymouth.enable = true; plymouth.enable = true;
}; };
} }

View file

@ -2,10 +2,9 @@
{ {
imports = [ imports = [
./boot ./boot
./disko
./filesystems ./filesystems
./hardware ./hardware
./services ./root
./user ./user
]; ];
@ -14,5 +13,5 @@
stateVersion = "25.05"; stateVersion = "25.05";
}; };
deployment.targetHost = ""; deployment.targetHost = "409:b2b1:966c:b13:6d67:2d6b:45e2:f048";
} }

View file

@ -1,106 +0,0 @@
{ config, disko, ... }:
{
imports = [ disko.nixosModules.disko ];
disko.devices = {
disk = {
"${config.networking.hostName}" = {
type = "disk";
device = "/dev/sda";
content = {
type = "gpt";
partitions = {
boot = {
size = "1M";
type = "EF02";
};
ESP = {
size = "2G";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
};
};
luks = {
size = "100%";
content = {
type = "luks";
name = "${config.networking.hostName}-disk";
settings.allowDiscards = true;
passwordFile = "/tmp/secret.key";
content = {
type = "lvm_pv";
vg = "${config.networking.hostName}";
};
};
};
};
};
};
};
lvm_vg = {
"${config.networking.hostName}" = {
type = "lvm_vg";
lvs = {
root = {
size = "100%";
content = {
type = "btrfs";
extraArgs = [ "-f" ];
subvolumes = {
"/root" = {
mountpoint = "/";
mountOptions = [
"compress=zstd"
"ssd"
];
};
"/prev" = {
mountpoint = "/prev";
mountOptions = [
"compress=zstd"
"noexec"
"ssd"
];
};
"/nix" = {
mountpoint = "/nix";
mountOptions = [
"compress=zstd"
"ssd"
];
};
# Impermanence
"/persist" = {
mountpoint = "/persist";
mountOptions = [
"compress=zstd"
"ssd"
];
};
"/persist/.snapshots" = { };
"/persist/home" = { };
"/persist/home/.snapshots" = { };
};
};
};
swap = {
size = "8G";
content = {
type = "swap";
discardPolicy = "both";
};
};
};
};
};
};
# Needed for impermanence
fileSystems."/persist".neededForBoot = true;
}

View file

@ -2,7 +2,7 @@
{ {
fileSystems = { fileSystems = {
"/persist/storage" = { "/persist/storage" = {
device = "/dev/disk/by-uuid/d0d6783f-ad51-4d85-b8a9-3374f6460ef6"; device = "/dev/disk/by-uuid/3d6f81f2-7fa5-40a2-85bb-56f4cab63773";
fsType = "btrfs"; fsType = "btrfs";
options = [ options = [
"nofail" "nofail"

View file

@ -1,22 +1,35 @@
{ modulesPath, ... }: { config, modulesPath, ... }:
{ {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot = { boot = {
initrd = { initrd = {
availableKernelModules = [ availableKernelModules = [
"ahci"
"ehci_pci" "ehci_pci"
"ahci"
"xhci_pci"
"usb_storage"
"sd_mod" "sd_mod"
"sr_mod" "sr_mod"
"xhci_pci"
]; ];
kernelModules = [ "dm-snapshot" ]; kernelModules = [ "dm-snapshot" ];
}; };
kernelModules = [ "kvm-intel" ]; kernelModules = [ "kvm-intel" ];
}; };
hardware.cpu.intel.updateMicrocode = true; services.xserver.videoDrivers = [ "nvidia" ];
hardware = {
cpu.intel.updateMicrocode = true;
nvidia = {
package = config.boot.kernelPackages.nvidiaPackages.legacy_390;
prime = {
sync.enable = true;
intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
};
};
};
nixpkgs.hostPlatform = "x86_64-linux"; nixpkgs.hostPlatform = "x86_64-linux";
} }

View file

@ -0,0 +1,54 @@
{ config, name, ... }:
{
boot.initrd.luks.devices."${name}-disk".device = "/dev/disk/by-uuid/0fc43c11-c382-4e37-812b-8866b1b20e68";
fileSystems = {
"/boot" = {
device = "/dev/disk/by-uuid/FA96-EF11";
fsType = "vfat";
options = [ "umask=0077" ];
};
"/" = {
device = "/dev/disk/by-uuid/bbaf733b-14af-417b-b1c8-2f0534995483";
fsType = "btrfs";
options = [
"compress=zstd"
"ssd"
"subvol=root"
];
};
"/prev" = {
device = "/dev/disk/by-uuid/bbaf733b-14af-417b-b1c8-2f0534995483";
fsType = "btrfs";
options = [
"compress=zstd"
"noexec"
"ssd"
"subvol=prev"
];
};
"/nix" = {
device = "/dev/disk/by-uuid/bbaf733b-14af-417b-b1c8-2f0534995483";
fsType = "btrfs";
options = [
"compress=zstd"
"ssd"
"subvol=nix"
];
};
"/persist" = {
device = "/dev/disk/by-uuid/bbaf733b-14af-417b-b1c8-2f0534995483";
fsType = "btrfs";
neededForBoot = true;
options = [
"compress=zstd"
"ssd"
"subvol=persist"
];
};
};
swapDevices = [ { device = "/dev/disk/by-uuid/93ac8c5c-c947-4b45-a12a-146e87398517"; } ];
}

View file

@ -1,11 +0,0 @@
{ lib, ... }:
{
networking.useNetworkd = lib.mkForce false;
services.globalprotect.enable = true;
virtualisation = {
libvirtd.enable = true;
vmware.host.enable = true;
};
}

View file

@ -1,8 +1,7 @@
{ config, ... }: { config, lib, ... }:
{ {
home-manager.users."${config.vars.mainUser}".home = { home-manager.users."${config.vars.mainUser}" = {
guifull.enable = true; home.guifull.enable = true;
school.enable = true; wayland.windowManager.sway.extraSessionCommands = lib.mkForce "";
enableNixpkgsReleaseCheck = false;
}; };
} }

View file

@ -2,7 +2,7 @@
{ {
boot = { boot = {
kernelPackages = pkgs.linuxPackages_6_14; kernelPackages = pkgs.linuxPackages_6_14;
loader.systemd-boot.enable = true; loader.limine.enable = true;
plymouth.enable = true; plymouth.enable = true;
}; };
} }

View file

@ -1,16 +1,15 @@
{ config, disko, ... }: { config, name, ... }:
{ {
imports = [ disko.nixosModules.disko ];
disko.devices = { disko.devices = {
disk = { disk = {
"${config.networking.hostName}" = { "${name}" = {
type = "disk"; type = "disk";
device = "/dev/sda"; device = "/dev/sda";
content = { content = {
type = "gpt"; type = "gpt";
partitions = { partitions = {
boot = { boot = {
priority = 1;
size = "1M"; size = "1M";
type = "EF02"; type = "EF02";
}; };
@ -28,12 +27,12 @@
size = "100%"; size = "100%";
content = { content = {
type = "luks"; type = "luks";
name = "${config.networking.hostName}-disk"; name = "${name}-disk";
settings.allowDiscards = true; settings.allowDiscards = true;
passwordFile = "/tmp/secret.key"; passwordFile = "/tmp/secret.key";
content = { content = {
type = "lvm_pv"; type = "lvm_pv";
vg = "${config.networking.hostName}"; vg = "${name}";
}; };
}; };
}; };
@ -43,7 +42,7 @@
}; };
lvm_vg = { lvm_vg = {
"${config.networking.hostName}" = { "${name}" = {
type = "lvm_vg"; type = "lvm_vg";
lvs = { lvs = {
root = { root = {

View file

@ -1,16 +1,15 @@
{ config, disko, ... }: { config, name, ... }:
{ {
imports = [ disko.nixosModules.disko ];
disko.devices = { disko.devices = {
disk = { disk = {
"${config.networking.hostName}" = { "${name}" = {
type = "disk"; type = "disk";
device = "/dev/sda"; device = "/dev/sda";
content = { content = {
type = "gpt"; type = "gpt";
partitions = { partitions = {
boot = { boot = {
priority = 1;
size = "1M"; size = "1M";
type = "EF02"; type = "EF02";
}; };
@ -28,12 +27,12 @@
size = "100%"; size = "100%";
content = { content = {
type = "luks"; type = "luks";
name = "${config.networking.hostName}-disk"; name = "${name}-disk";
settings.allowDiscards = true; settings.allowDiscards = true;
passwordFile = "/tmp/secret.key"; passwordFile = "/tmp/secret.key";
content = { content = {
type = "lvm_pv"; type = "lvm_pv";
vg = "${config.networking.hostName}"; vg = "${name}";
}; };
}; };
}; };
@ -43,7 +42,7 @@
}; };
lvm_vg = { lvm_vg = {
"${config.networking.hostName}" = { "${name}" = {
type = "lvm_vg"; type = "lvm_vg";
lvs = { lvs = {
root = { root = {

View file

@ -2,7 +2,7 @@
{ {
boot = { boot = {
kernelPackages = pkgsStable.linuxPackages_6_14; kernelPackages = pkgsStable.linuxPackages_6_14;
loader.systemd-boot.enable = true; loader.limine.enable = true;
plymouth.enable = true; plymouth.enable = true;
}; };
} }

View file

@ -17,5 +17,5 @@
deployment.targetHost = "5ce:969c:40d1:9575:f5e:591d:c377:a20b"; deployment.targetHost = "5ce:969c:40d1:9575:f5e:591d:c377:a20b";
#jovian.steam.enable = true; jovian.steam.enable = true;
} }

View file

@ -1,16 +1,15 @@
{ config, disko, ... }: { config, name, ... }:
{ {
imports = [ disko.nixosModules.disko ];
disko.devices = { disko.devices = {
disk = { disk = {
"${config.networking.hostName}" = { "${name}" = {
type = "disk"; type = "disk";
device = "/dev/nvme0n1"; device = "/dev/nvme0n1";
content = { content = {
type = "gpt"; type = "gpt";
partitions = { partitions = {
boot = { boot = {
priority = 1;
size = "1M"; size = "1M";
type = "EF02"; type = "EF02";
}; };
@ -28,7 +27,7 @@
size = "100%"; size = "100%";
content = { content = {
type = "lvm_pv"; type = "lvm_pv";
vg = "${config.networking.hostName}"; vg = "${name}";
}; };
}; };
}; };
@ -37,7 +36,7 @@
}; };
lvm_vg = { lvm_vg = {
"${config.networking.hostName}" = { "${name}" = {
type = "lvm_vg"; type = "lvm_vg";
lvs = { lvs = {
root = { root = {

View file

@ -1,9 +1,6 @@
{ config, lib, pkgs, jovian, ... }: { config, lib, pkgs, jovian, ... }:
{ {
imports = [ imports = [ ./desktop ];
./gnome
jovian.nixosModules.default
];
config = lib.mkIf config.jovian.steam.enable { config = lib.mkIf config.jovian.steam.enable {
jovian = { jovian = {
@ -21,23 +18,31 @@
}; };
}; };
boot = { # Evil kernel
kernelPackages = lib.mkForce pkgs.linuxPackages_jovian; boot.kernelPackages = lib.mkForce pkgs.linuxPackages_jovian;
kernelParams = [ "amd_pstate=active" ];
};
programs.steam.extest.enable = true; programs.steam.extest.enable = true;
hardware.xone.enable = true;
# Use networkmanager for ui compatibility
networking = {
networkmanager.enable = true;
wireless.enable = lib.mkForce false;
};
# Disable conflicting services
services = { services = {
keyd.enable = lib.mkForce false; keyd.enable = lib.mkForce false;
tlp.enable = lib.mkForce false; tlp.enable = lib.mkForce false;
}; };
hardware.xone.enable = true; # Disable network filesystems
fileSystems = {
networking = { "midas".enable = false;
networkmanager.enable = true; "kitty".enable = false;
wireless.enable = lib.mkForce false; "detritus".enable = false;
"prophet".enable = false;
}; };
environment.persistence."/persist".directories = [ environment.persistence."/persist".directories = [

View file

@ -2,6 +2,6 @@
{ {
boot = { boot = {
kernelPackages = pkgs.linuxPackages_hardened; kernelPackages = pkgs.linuxPackages_hardened;
loader.systemd-boot.enable = true; loader.limine.enable = true;
}; };
} }

View file

@ -1,16 +1,15 @@
{ config, disko, ... }: { config, name, ... }:
{ {
imports = [ disko.nixosModules.disko ];
disko.devices = { disko.devices = {
disk = { disk = {
"${config.networking.hostName}" = { "${name}" = {
type = "disk"; type = "disk";
device = "/dev/sda"; device = "/dev/disk/by-id/ata-KINGSTON_SA400S37120G_50026B7783DBB232";
content = { content = {
type = "gpt"; type = "gpt";
partitions = { partitions = {
boot = { boot = {
priority = 1;
size = "1M"; size = "1M";
type = "EF02"; type = "EF02";
}; };
@ -28,7 +27,7 @@
size = "100%"; size = "100%";
content = { content = {
type = "lvm_pv"; type = "lvm_pv";
vg = "${config.networking.hostName}"; vg = "${name}";
}; };
}; };
}; };
@ -37,7 +36,7 @@
}; };
lvm_vg = { lvm_vg = {
"${config.networking.hostName}" = { "${name}" = {
type = "lvm_vg"; type = "lvm_vg";
lvs = { lvs = {
root = { root = {

View file

@ -9,7 +9,5 @@
"nosuid" "nosuid"
]; ];
}; };
"kitty".enable = false;
}; };
} }

View file

@ -1,16 +1,15 @@
{ config, disko, ... }: { config, name, ... }:
{ {
imports = [ disko.nixosModules.disko ];
disko.devices = { disko.devices = {
disk = { disk = {
"${config.networking.hostName}" = { "${name}" = {
type = "disk"; type = "disk";
device = "/dev/nvme0n1"; device = "/dev/disk/by-id/nvme-eui.00080d03001365cc";
content = { content = {
type = "gpt"; type = "gpt";
partitions = { partitions = {
boot = { boot = {
priority = 1;
size = "1M"; size = "1M";
type = "EF02"; type = "EF02";
}; };
@ -28,12 +27,12 @@
size = "100%"; size = "100%";
content = { content = {
type = "luks"; type = "luks";
name = "${config.networking.hostName}-disk"; name = "${name}-disk";
settings.allowDiscards = true; settings.allowDiscards = true;
passwordFile = "/tmp/secret.key"; passwordFile = "/tmp/secret.key";
content = { content = {
type = "lvm_pv"; type = "lvm_pv";
vg = "${config.networking.hostName}"; vg = "${name}";
}; };
}; };
}; };
@ -43,7 +42,7 @@
}; };
lvm_vg = { lvm_vg = {
"${config.networking.hostName}" = { "${name}" = {
type = "lvm_vg"; type = "lvm_vg";
lvs = { lvs = {
root = { root = {

View file

@ -10,7 +10,5 @@
"subvol=persist" "subvol=persist"
]; ];
}; };
"midas".enable = false;
}; };
} }

View file

@ -5,6 +5,7 @@
services = { services = {
cloudflare-dyndns.enable = true; cloudflare-dyndns.enable = true;
forgejo.enable = true; forgejo.enable = true;
hedgedoc.enable = true;
icecast.enable = true; icecast.enable = true;
jellyfin.enable = true; jellyfin.enable = true;
mastodon.enable = true; mastodon.enable = true;

View file

@ -3,6 +3,6 @@
boot = { boot = {
binfmt.emulatedSystems = [ "x86_64-linux" ]; binfmt.emulatedSystems = [ "x86_64-linux" ];
kernelPackages = pkgs.linuxPackages_hardened; kernelPackages = pkgs.linuxPackages_hardened;
loader.systemd-boot.enable = true; loader.limine.enable = true;
}; };
} }

View file

@ -1,16 +1,15 @@
{ config, disko, ... }: { config, name, ... }:
{ {
imports = [ disko.nixosModules.disko ];
disko.devices = { disko.devices = {
disk = { disk = {
"${config.networking.hostName}" = { "${name}" = {
type = "disk"; type = "disk";
device = "/dev/nvme0n1"; device = "/dev/disk/by-id/scsi-3609c958403f14cd29ff94a5a2e405cc2";
content = { content = {
type = "gpt"; type = "gpt";
partitions = { partitions = {
boot = { boot = {
priority = 1;
size = "1M"; size = "1M";
type = "EF02"; type = "EF02";
}; };
@ -28,7 +27,7 @@
size = "100%"; size = "100%";
content = { content = {
type = "lvm_pv"; type = "lvm_pv";
vg = "${config.networking.hostName}"; vg = "${name}";
}; };
}; };
}; };
@ -37,7 +36,7 @@
}; };
lvm_vg = { lvm_vg = {
"${config.networking.hostName}" = { "${name}" = {
type = "lvm_vg"; type = "lvm_vg";
lvs = { lvs = {
root = { root = {

View file

@ -9,7 +9,5 @@
"nosuid" "nosuid"
]; ];
}; };
"prophet".enable = false;
}; };
} }

View file

@ -15,7 +15,5 @@
deployment.targetHost = "4e4:535:9d47:f367:becd:6557:458d:5b1b"; deployment.targetHost = "4e4:535:9d47:f367:becd:6557:458d:5b1b";
services.xserver.videoDrivers = [ "nvidia" ];
virtualisation.libvirtd.enable = true; virtualisation.libvirtd.enable = true;
} }

View file

@ -1,16 +1,15 @@
{ config, disko, ... }: { config, name, ... }:
{ {
imports = [ disko.nixosModules.disko ];
disko.devices = { disko.devices = {
disk = { disk = {
"${config.networking.hostName}" = { "${name}" = {
type = "disk"; type = "disk";
device = "/dev/nvme0n1"; device = "/dev/disk/by-id/nvme-INTEL_SSDPEKNU512GZ_BTKA20550TKC512A";
content = { content = {
type = "gpt"; type = "gpt";
partitions = { partitions = {
boot = { boot = {
priority = 1;
size = "1M"; size = "1M";
type = "EF02"; type = "EF02";
}; };
@ -28,12 +27,12 @@
size = "100%"; size = "100%";
content = { content = {
type = "luks"; type = "luks";
name = "${config.networking.hostName}-disk"; name = "${name}-disk";
settings.allowDiscards = true; settings.allowDiscards = true;
passwordFile = "/tmp/secret.key"; passwordFile = "/tmp/secret.key";
content = { content = {
type = "lvm_pv"; type = "lvm_pv";
vg = "${config.networking.hostName}"; vg = "${name}";
}; };
}; };
}; };
@ -43,7 +42,7 @@
}; };
lvm_vg = { lvm_vg = {
"${config.networking.hostName}" = { "${name}" = {
type = "lvm_vg"; type = "lvm_vg";
lvs = { lvs = {
root = { root = {

View file

@ -3,24 +3,32 @@
fileSystems = { fileSystems = {
# Games and such # Games and such
"/mnt/Linux1" = { "/mnt/Linux1" = {
device = "/dev/disk/by-uuid/b2901f8c-ffda-4b88-bb63-a9ea0c96ccb4"; device = "/dev/disk/by-label/Linux1";
fsType = "ext4"; fsType = "btrfs";
options = [ options = [
"nofail" "nofail"
"nosuid" "nosuid"
]; ];
}; };
"/mnt/Linux2" = { "/mnt/Linux2" = {
device = "/dev/disk/by-uuid/f08e4f38-162c-402f-ba2a-5925151b78bf"; device = "/dev/disk/by-label/Linux2";
fsType = "ext4"; fsType = "btrfs";
options = [ options = [
"nofail" "nofail"
"nosuid" "nosuid"
]; ];
}; };
"/mnt/Linux3" = { "/mnt/Linux3" = {
device = "/dev/disk/by-uuid/e7bc75bd-c371-4b28-b212-7be9b1fad339"; device = "/dev/disk/by-label/Linux3";
fsType = "ext4"; fsType = "btrfs";
options = [
"nofail"
"nosuid"
];
};
"/mnt/Linux4" = {
device = "/dev/disk/by-label/Linux4";
fsType = "btrfs";
options = [ options = [
"nofail" "nofail"
"nosuid" "nosuid"

View file

@ -16,6 +16,8 @@
kernelModules = [ "kvm-amd" ]; kernelModules = [ "kvm-amd" ];
}; };
services.xserver.videoDrivers = [ "nvidia" ];
hardware.cpu.amd.updateMicrocode = true; hardware.cpu.amd.updateMicrocode = true;
nixpkgs.hostPlatform = "x86_64-linux"; nixpkgs.hostPlatform = "x86_64-linux";

View file

@ -1,7 +1,4 @@
{ config, lib, ... }: { config, ... }:
{ {
home-manager.users."${config.vars.mainUser}" = { home-manager.users."${config.vars.mainUser}".home.guifull.enable = true;
home.guifull.enable = true;
services.swayidle.enable = lib.mkForce false;
};
} }

View file

@ -1,11 +1,11 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, pkgsUnstable, ... }:
{ {
programs.ranger = { programs.ranger = {
enable = true; enable = true;
#package = pkgs.ranger; package = pkgsUnstable.ranger;
settings = { settings = {
preview_images = true; preview_images = true;
#preview_images_method = "sixel"; preview_images_method = "sixel";
dirname_in_tabs = true; dirname_in_tabs = true;
autosave_bookmarks = false; autosave_bookmarks = false;
show_hidden = true; show_hidden = true;

View file

@ -2,11 +2,11 @@
{ {
vars.displays = { vars.displays = {
tower1 = "Microstep MSI G24C 0000000000001"; tower1 = "Microstep MSI G24C 0000000000001";
tower2 = "BNQ BenQ GW2270 6CH00781019"; tower2 = "Dell Inc. DELL P2214H KW14V4965YKS";
tower3 = "Eizo Nanao Corporation CG223W 23252050"; tower3 = "Eizo Nanao Corporation CG223W 23252050";
tower4 = "Samsung Electric Company SAMSUNG Unknown"; tower4 = "Sony SONY TV 0x01010101";
detritus1 = "Dell Inc. DELL P2214H KW14V4965YKS"; intuos1 = "Wacom Tech Cintiq W1310 MIRACULIX";
detritus2 = "HannStar Display Corp iP192A 051AW1WY03797"; intuos2 = "BNQ BenQ GW2270 6CH00781019";
}; };
} }

View file

@ -11,6 +11,13 @@
mode = "1920x1080@143.979996Hz"; mode = "1920x1080@143.979996Hz";
}; };
} }
{
output = {
criteria = tower3;
mode = "1680x1050@59.883";
transform = "90";
};
}
# Profiles # Profiles
{ {
@ -20,19 +27,22 @@
{ {
criteria = tower1; criteria = tower1;
position = "3840,405"; position = "3840,405";
status = "enable";
} }
{ {
criteria = tower2; criteria = tower2;
position = "1920,405"; position = "1920,405";
status = "enable";
} }
{ {
criteria = tower3; criteria = tower3;
position = "5760,0"; position = "5760,0";
transform = "90"; status = "enable";
} }
{ {
criteria = tower4; criteria = tower4;
position = "0,405"; position = "0,405";
status = "enable";
} }
]; ];
}; };
@ -44,49 +54,34 @@
{ {
criteria = tower1; criteria = tower1;
position = "1920,405"; position = "1920,405";
status = "enable";
} }
{ {
criteria = tower2; criteria = tower2;
position = "0,405"; position = "0,405";
status = "enable";
} }
{ {
criteria = tower3; criteria = tower3;
position = "3840,0"; position = "3840,0";
transform = "90";
}
];
};
}
{
profile = {
name = "detritus";
outputs = [
{
criteria = detritus1;
position = "0,0";
}
{
criteria = detritus2;
position = "1920,0";
scale = 0.85;
}
];
};
}
{
profile = {
name = "byod";
outputs = [
{
criteria = "Dell Inc. DELL U3423WE H8LGMP3";
scale = 1.15;
status = "enable"; status = "enable";
} }
];
};
}
{
profile = {
name = "intuos";
outputs = [
{ {
criteria = "eDP-1"; criteria = intuos1;
status = "disable"; position = "1920,278";
scale = 1.80;
}
{
criteria = intuos2;
position = "0,0";
} }
]; ];
}; };

View file

@ -238,7 +238,7 @@
output = [ output = [
"!${config.vars.displays.tower2}" "!${config.vars.displays.tower2}"
"!${config.vars.displays.tower3}" "!${config.vars.displays.tower3}"
"!${config.vars.displays.detritus2}" "!${config.vars.displays.intuos2}"
"*" "*"
]; ];
modules-left = [ modules-left = [
@ -273,7 +273,7 @@
output = [ output = [
config.vars.displays.tower2 config.vars.displays.tower2
config.vars.displays.tower3 config.vars.displays.tower3
config.vars.displays.detritus2 config.vars.displays.intuos2
]; ];
modules-left = [ modules-left = [
"sway/workspaces" "sway/workspaces"

View file

@ -1,13 +1,12 @@
{ ... }: { config, ... }:
{ {
# HID devices # HID devices
wayland.windowManager.sway.config.input = { wayland.windowManager.sway.config.input = {
"9610:4103:SINOWEALTH_Game_Mouse" = { "9610:4103:SINOWEALTH_Game_Mouse".pointer_accel = "-0.9";
pointer_accel = "-0.9"; "9639:64097:Compx_2.4G_Receiver_Mouse".pointer_accel = "-0.82";
}; "type:touch".map_to_output = ''"${config.vars.displays.intuos1}"'';
"9639:64097:Compx_2.4G_Receiver_Mouse" = {
pointer_accel = "-0.82"; # Wildcard, affects everything
};
"*" = { "*" = {
accel_profile = "flat"; accel_profile = "flat";
dwt = "disabled"; dwt = "disabled";

View file

@ -38,6 +38,11 @@
(assign "${tower1}" workspaces1) ++ (assign "${tower1}" workspaces1) ++
(assign "${tower2}" workspaces2) ++ (assign "${tower2}" workspaces2) ++
(assign "${tower3}" workspaces3) ++ (assign "${tower3}" workspaces3) ++
(assign "${tower4}" workspaces4); (assign "${tower4}" workspaces4) ++
(assign "${intuos2}" workspaces1) ++
(assign "${intuos2}" workspaces2) ++
(assign "${intuos1}" workspaces3) ++
(assign "${intuos1}" workspaces4);
}; };
} }

View file

@ -1,19 +1,16 @@
{ lib, pkgs, ... }: { lib, pkgs, ... }:
{ {
imports = [ imports = [
./grub
./lanzaboote ./lanzaboote
./limine
./plymouth ./plymouth
./services ./services
./systemd
]; ];
boot = { boot = {
kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
blacklistedKernelModules = [ "pcspkr" ]; blacklistedKernelModules = [ "pcspkr" ];
kernel.sysctl = { kernel.sysctl."vm.max_map_count" = 2147483642;
"vm.max_map_count" = 2147483642; kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
"kernel.sysrq" = 1; loader.systemd-boot.editor = false;
};
}; };
} }

View file

@ -1,8 +0,0 @@
{ lib, ... }:
{
boot.loader.grub = {
enable = lib.mkDefault false;
efiSupport = true;
efiInstallAsRemovable = true;
};
}

View file

@ -1,7 +1,5 @@
{ config, pkgs, lanzaboote, ... }: { config, pkgs, ... }:
{ {
imports = [ lanzaboote.nixosModules.lanzaboote ];
boot.lanzaboote.pkiBundle = "/etc/secureboot"; boot.lanzaboote.pkiBundle = "/etc/secureboot";
environment = { environment = {

View file

@ -0,0 +1,8 @@
{ config, pkgs, name, ... }:
{
boot.loader.limine = {
biosSupport = !pkgs.stdenv.hostPlatform.isAarch64;
efiInstallAsRemovable = true;
efiSupport = true;
};
}

View file

@ -2,7 +2,6 @@
{ {
config.boot = lib.mkIf config.boot.plymouth.enable { config.boot = lib.mkIf config.boot.plymouth.enable {
consoleLogLevel = 0; consoleLogLevel = 0;
loader.timeout = 0;
initrd.verbose = false; initrd.verbose = false;
kernelParams = [ kernelParams = [
"loglevel=3" "loglevel=3"

View file

@ -1,4 +1,4 @@
{ config, ... }: { config, name, ... }:
{ {
boot.initrd.systemd.services.root-reset = { boot.initrd.systemd.services.root-reset = {
enable = config.environment.persistence."/persist".enable; enable = config.environment.persistence."/persist".enable;
@ -10,7 +10,7 @@
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
script = '' script = ''
mkdir -p /mnt mkdir -p /mnt
mount -t btrfs /dev/${config.networking.hostName}/root /mnt mount -t btrfs /dev/${name}/root /mnt
if [[ -e /mnt/prev ]]; then if [[ -e /mnt/prev ]]; then
btrfs subvolume delete /mnt/prev btrfs subvolume delete /mnt/prev

View file

@ -1,7 +0,0 @@
{ ... }:
{
boot.loader.systemd-boot = {
editor = false;
graceful = true;
};
}

View file

@ -11,9 +11,9 @@
}; };
}; };
services = lib.mkIf config.environment.persistence."/persist".enable { services = {
btrfs.autoScrub = { btrfs.autoScrub = {
enable = true; enable = (config.fileSystems."/".fsType == "btrfs");
interval = "weekly"; interval = "weekly";
}; };
fstrim.enable = true; fstrim.enable = true;

View file

@ -1,12 +1,17 @@
{ impermanence, ... }: { ... }:
{ {
imports = [ impermanence.nixosModules.impermanence ];
environment.persistence."/persist" = { environment.persistence."/persist" = {
hideMounts = true; hideMounts = true;
directories = [ directories = [
"/storage" "/storage"
"/var/lib/nixos" {
directory = "/var/lib/nixos";
mode = "0700";
}
{
directory = "/var/lib/nixos-containers";
mode = "0700";
}
]; ];
files = [ "/etc/machine-id" ]; files = [ "/etc/machine-id" ];
}; };

View file

@ -12,7 +12,6 @@
"${midas.config.deployment.targetHost}" = [ "midas" ]; "${midas.config.deployment.targetHost}" = [ "midas" ];
"${kitty.config.deployment.targetHost}" = [ "kitty" ]; "${kitty.config.deployment.targetHost}" = [ "kitty" ];
"${detritus.config.deployment.targetHost}" = [ "detritus" ]; "${detritus.config.deployment.targetHost}" = [ "detritus" ];
"${elder.config.deployment.targetHost}" = [ "elder" ];
"${prophet.config.deployment.targetHost}" = [ "prophet" ]; "${prophet.config.deployment.targetHost}" = [ "prophet" ];
}; };
} }

View file

@ -2,8 +2,9 @@
{ {
fileSystems = let fileSystems = let
common = { common = {
fsType = "nfs4"; fsType = "nfs";
options = [ options = [
"noatime"
"noauto" "noauto"
"soft" "soft"
"x-systemd.automount" "x-systemd.automount"
@ -22,10 +23,6 @@
device = "detritus:/storage"; device = "detritus:/storage";
mountPoint = "/network/Detritus"; mountPoint = "/network/Detritus";
}; };
"elder" = common // {
device = "elder:/storage";
mountPoint = "/network/Elder";
};
"prophet" = common // { "prophet" = common // {
device = "prophet:/storage"; device = "prophet:/storage";
mountPoint = "/network/Prophet"; mountPoint = "/network/Prophet";

View file

@ -0,0 +1,6 @@
{ ... }:
{
boot.kernelParams = [ "amd_pstate=active" ];
hardware.amdgpu.legacySupport.enable = true;
}

View file

@ -1,6 +1,9 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
imports = [ ./nvidia ]; imports = [
./amd
./nvidia
];
hardware.graphics = { hardware.graphics = {
enable = builtins.elem "pc" config.system.nixos.tags; enable = builtins.elem "pc" config.system.nixos.tags;

View file

@ -8,10 +8,14 @@
hardware.nvidia = { hardware.nvidia = {
modesetting.enable = true; modesetting.enable = true;
nvidiaSettings = false; nvidiaSettings = false;
open = true; open = if lib.versionOlder config.hardware.nvidia.package.version "560" then false else true;
powerManagement.enable = config.hardware.nvidia.open;
}; };
nixpkgs.allowUnfreePackages = [ "nvidia-x11" ]; nixpkgs = {
allowUnfreePackages = [ "nvidia-x11" ];
config.nvidia.acceptLicense = true;
};
specialisation = lib.mkIf (lib.elem "nvidia" config.services.xserver.videoDrivers) { specialisation = lib.mkIf (lib.elem "nvidia" config.services.xserver.videoDrivers) {
nouveau.configuration.config.services.xserver.videoDrivers = lib.mkForce [ "nouveau" ]; nouveau.configuration.config.services.xserver.videoDrivers = lib.mkForce [ "nouveau" ];

View file

@ -1,7 +1,5 @@
{ hm, stable, unstable, blender, impermanence, nur, ... }: { stable, unstable, blender, impermanence, nur, ... }:
{ {
imports = [ hm.nixosModules.home-manager ];
home-manager = { home-manager = {
useUserPackages = true; useUserPackages = true;
backupFileExtension = "bak"; backupFileExtension = "bak";

View file

@ -20,7 +20,8 @@
"pci=routeirq" "pci=routeirq"
]; ];
programs.virt-manager.enable = true; # Enable the gui manager
programs.virt-manager.enable = builtins.elem "pc" config.system.nixos.tags;
# Allow looking glass to be accessed by users # Allow looking glass to be accessed by users
systemd.tmpfiles.rules = [ "f /dev/shm/looking-glass 0660 - libvirtd -" ]; systemd.tmpfiles.rules = [ "f /dev/shm/looking-glass 0660 - libvirtd -" ];

View file

@ -11,7 +11,17 @@
}; };
}; };
programs.ssh.startAgent = true; programs.ssh = {
startAgent = true;
# Don't host prompt for servers
knownHosts = {
midas.publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFcFMvrx9/iUZ1mEubf+QF1i3LNTxFhaU/1zFSjdo0kK";
kitty.publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIrGmsya5DXKuXO6jNjUlrYHqk49KLzxM/60GXtLRLrL";
detritus.publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDPD9m/rUjb88C4Kin2YhMrMVigu5IEf20FzwfAvz8SI";
prophet.publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICrp3Y/X2BRUENx+0GMTmB1VDA6SiwkGgdJMHSdMMepM";
};
};
security.pam.services.sshd.allowNullPassword = true; security.pam.services.sshd.allowNullPassword = true;

View file

@ -3,6 +3,7 @@
imports = [ imports = [
./cfdyndns ./cfdyndns
./forgejo ./forgejo
./hedgedoc
./icecast ./icecast
./incus ./incus
./jellyfin ./jellyfin

View file

@ -8,17 +8,17 @@
lfs.enable = true; lfs.enable = true;
settings = { settings = {
server = { server = {
DOMAIN = "git.${config.vars.mainDomain}"; DOMAIN = "git.${config.vars.primeDomain}";
ROOT_URL = "https://git.${config.vars.mainDomain}:443"; ROOT_URL = "https://${config.services.forgejo.settings.server.DOMAIN}:443";
HTTP_PORT = 3110; HTTP_PORT = 3110;
SSH_PORT = 2299; SSH_PORT = 2299;
START_SSH_SERVER = true; START_SSH_SERVER = true;
}; };
mailer = { mailer = {
ENABLED = true; ENABLED = true;
SMTP_ADDR = "mx.${config.vars.mainDomain}"; SMTP_ADDR = "mx.${config.vars.mailDomain}";
FROM = "NixFox Git <noreply@${config.vars.mainDomain}>"; FROM = "NixFox Git <noreply@${config.vars.primeDomain}>";
USER = "noreply@${config.vars.mainDomain}"; USER = "noreply@${config.vars.primeDomain}";
PASSWD = config.secrets.mailPass.nixfoxNoReply; PASSWD = config.secrets.mailPass.nixfoxNoReply;
PROTOCOL = "smtps"; PROTOCOL = "smtps";
}; };
@ -32,7 +32,7 @@
networking.firewall.allowedTCPPorts = [ 2299 ]; networking.firewall.allowedTCPPorts = [ 2299 ];
services.cloudflare-dyndns.domains = [ "git.${config.vars.mainDomain}" ]; services.cloudflare-dyndns.domains = [ config.services.forgejo.settings.server.DOMAIN ];
environment.persistence."/persist".directories = [ "/var/lib/forgejo" ]; environment.persistence."/persist".directories = [ "/var/lib/forgejo" ];
}; };

View file

@ -1,6 +1,6 @@
{ config, lib, ... }: { config, lib, ... }:
{ {
services.nginx.virtualHosts."git.${config.vars.mainDomain}" = lib.mkIf config.services.forgejo.enable { services.nginx.virtualHosts."${config.services.forgejo.settings.server.DOMAIN}" = lib.mkIf config.services.forgejo.enable {
enableACME = true; enableACME = true;
forceSSL = true; forceSSL = true;
locations."/" = { locations."/" = {

View file

@ -0,0 +1,15 @@
{ config, ... }:
{
imports = [ ./nginx ];
services.hedgedoc.settings = {
domain = "hedgedoc.${config.vars.primeDomain}";
port = 8001;
host = "127.0.0.1";
protocolUseSSL = true;
allowOrigin = [
"localhost"
config.services.hedgedoc.settings.domain
];
};
}

View file

@ -0,0 +1,11 @@
{ config, lib, ... }:
{
services.nginx.virtualHosts."${config.services.hedgedoc.settings.domain}" = lib.mkIf config.services.hedgedoc.enable {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://127.0.0.1:${toString config.services.hedgedoc.settings.port}";
proxyWebsockets = true;
};
};
}

View file

@ -7,7 +7,7 @@
services.icecast = { services.icecast = {
listen.port = 73; listen.port = 73;
hostname = "radio.${config.vars.mainDomain}"; hostname = "radio.${config.vars.primeDomain}";
admin = { admin = {
user = "admin"; user = "admin";
password = config.secrets.cast.adminPass; password = config.secrets.cast.adminPass;
@ -17,7 +17,7 @@
<source-password>${config.secrets.cast.sourcePass}</source-password> <source-password>${config.secrets.cast.sourcePass}</source-password>
</authentication> </authentication>
<location>Canada</location> <location>Canada</location>
<admin>contact@${config.vars.mainDomain}</admin> <admin>contact@${config.vars.primeDomain}</admin>
''; '';
}; };
} }

View file

@ -7,7 +7,7 @@
settings.init.allow_root.set(true) settings.init.allow_root.set(true)
settings.scheduler.fast_queues.set(2) settings.scheduler.fast_queues.set(2)
stream = mksafe(playlist(mode='randomize', reload=1, reload_mode="rounds", "/storage/Music/NixBops")) stream = mksafe(playlist(mode='randomize', reload=1, reload_mode="rounds", "/network/Midas/Music/NixBops"))
stream_fallback = fallback([stream, stream]) stream_fallback = fallback([stream, stream])
output.icecast( output.icecast(

View file

@ -7,7 +7,7 @@
settings.init.allow_root.set(true) settings.init.allow_root.set(true)
settings.scheduler.fast_queues.set(2) settings.scheduler.fast_queues.set(2)
stream = mksafe(playlist(mode='randomize', reload=1, reload_mode="rounds", "/storage/Music/Scrap")) stream = mksafe(playlist(mode='randomize', reload=1, reload_mode="rounds", "/network/Midas/Music/Scrap"))
stream_fallback = fallback([stream, stream]) stream_fallback = fallback([stream, stream])
output.icecast( output.icecast(

View file

@ -1,6 +1,6 @@
{ config, lib, ... }: { config, lib, ... }:
{ {
services.nginx.virtualHosts."radio.${config.vars.mainDomain}" = lib.mkIf config.services.icecast.enable { services.nginx.virtualHosts."${config.services.icecast.hostname}" = lib.mkIf config.services.icecast.enable {
enableACME = true; enableACME = true;
forceSSL = true; forceSSL = true;
locations."/" = { locations."/" = {

View file

@ -1,6 +1,6 @@
{ config, lib, ... }: { config, lib, ... }:
{ {
services.nginx.virtualHosts."jelly.${config.vars.mainDomain}" = lib.mkIf config.services.jellyfin.enable { services.nginx.virtualHosts."jelly.${config.vars.primeDomain}" = lib.mkIf config.services.jellyfin.enable {
enableACME = true; enableACME = true;
forceSSL = true; forceSSL = true;
locations."/" = { locations."/" = {

View file

@ -9,7 +9,7 @@
config = lib.mkIf config.mailserver.enable { config = lib.mkIf config.mailserver.enable {
mailserver = { mailserver = {
fqdn = "mx.${config.vars.mainDomain}"; fqdn = "mx.${config.vars.mailDomain}";
domains = [ domains = [
"nixfox.ca" "nixfox.ca"
"bloxelcom.net" "bloxelcom.net"

View file

@ -7,13 +7,13 @@
enable = true; enable = true;
settings = { settings = {
service_addr = ":1323"; service_addr = ":1323";
domain = "autoconfig.nixfox.ca"; domain = "autoconfig.${config.vars.mailDomain}";
imap = { imap = {
server = "mx.nixfox.ca"; server = "mx.${config.vars.mailDomain}";
port = 143; port = 143;
}; };
smtp = { smtp = {
server = "mx.nixfox.ca"; server = "mx.${config.vars.mailDomain}";
port = 587; port = 587;
}; };
}; };

View file

@ -1,6 +1,6 @@
{ config, lib, ... }: { config, lib, ... }:
{ {
services.nginx.virtualHosts."autoconfig.${config.vars.mainDomain}" = lib.mkIf config.services.go-autoconfig.enable { services.nginx.virtualHosts."autoconfig.${config.vars.mailDomain}" = lib.mkIf config.services.go-autoconfig.enable {
enableACME = true; enableACME = true;
forceSSL = true; forceSSL = true;
locations."/" = { locations."/" = {

View file

@ -19,7 +19,7 @@
htpasswd_encryption = "bcrypt"; htpasswd_encryption = "bcrypt";
}; };
}; };
cloudflare-dyndns.domains = [ "cal.nixfox.ca" ]; cloudflare-dyndns.domains = [ "cal.${config.vars.mailDomain}" ];
}; };
environment.persistence."/persist".directories = [ "/var/lib/radicale" ]; environment.persistence."/persist".directories = [ "/var/lib/radicale" ];

View file

@ -1,6 +1,6 @@
{ config, lib, ... }: { config, lib, ... }:
{ {
services.nginx.virtualHosts."cal.${config.vars.mainDomain}" = lib.mkIf config.services.radicale.enable { services.nginx.virtualHosts."cal.${config.vars.mailDomain}" = lib.mkIf config.services.radicale.enable {
enableACME = true; enableACME = true;
forceSSL = true; forceSSL = true;
locations."/" = { locations."/" = {

View file

@ -3,9 +3,9 @@
config = lib.mkIf config.mailserver.enable { config = lib.mkIf config.mailserver.enable {
services.roundcube = { services.roundcube = {
enable = true; enable = true;
hostName = "mail.${config.vars.mainDomain}"; hostName = "mail.${config.vars.mailDomain}";
extraConfig = '' extraConfig = ''
$config['smtp_server'] = "tls://mx.${config.vars.mainDomain}"; $config['smtp_server'] = "tls://mx.${config.vars.mailDomain}";
$config['smtp_user'] = "%u"; $config['smtp_user'] = "%u";
$config['smtp_pass'] = "%p"; $config['smtp_pass'] = "%p";
''; '';

View file

@ -2,16 +2,16 @@
{ {
config = lib.mkIf config.services.mastodon.enable { config = lib.mkIf config.services.mastodon.enable {
services.mastodon = { services.mastodon = {
localDomain = "social.nixfox.ca"; localDomain = "social.${config.vars.primeDomain}";
streamingProcesses = 4; streamingProcesses = 4;
configureNginx = true; configureNginx = true;
smtp = { smtp = {
createLocally = false; createLocally = false;
host = "mx.nixfox.ca"; host = "mx.${config.vars.mailDomain}";
port = 587; port = 587;
authenticate = true; authenticate = true;
fromAddress = "NixFox Mastodon <noreply@nixfox.ca>"; fromAddress = "NixFox Mastodon <noreply@${config.vars.primeDomain}>";
user = "noreply@nixfox.ca"; user = "noreply@${config.vars.primeDomain}";
passwordFile = pkgs.writeText "smtp_pass.txt" config.secrets.mailPass.nixfoxNoReply; passwordFile = pkgs.writeText "smtp_pass.txt" config.secrets.mailPass.nixfoxNoReply;
}; };
}; };

View file

@ -12,7 +12,7 @@
max-port = 50000; max-port = 50000;
use-auth-secret = true; use-auth-secret = true;
static-auth-secret = config.secrets.coturnSecret; static-auth-secret = config.secrets.coturnSecret;
realm = "turn.${config.vars.mainDomain}"; realm = "turn.${config.vars.primeDomain}";
cert = "/var/lib/acme/${config.services.coturn.realm}/fullchain.pem"; cert = "/var/lib/acme/${config.services.coturn.realm}/fullchain.pem";
pkey = "/var/lib/acme/${config.services.coturn.realm}/key.pem"; pkey = "/var/lib/acme/${config.services.coturn.realm}/key.pem";
}; };

View file

@ -1,7 +1,7 @@
{ config, lib, ... }: { config, lib, ... }:
{ {
config = lib.mkIf config.services.coturn.enable { config = lib.mkIf config.services.coturn.enable {
services.nginx.virtualHosts."turn.${config.vars.mainDomain}" = { services.nginx.virtualHosts."turn.${config.vars.primeDomain}" = {
enableACME = true; enableACME = true;
forceSSL = true; forceSSL = true;
listen = [{ listen = [{
@ -12,7 +12,7 @@
locations."/".proxyPass = "http://127.0.0.1:1380"; locations."/".proxyPass = "http://127.0.0.1:1380";
}; };
security.acme.certs."turn.${config.vars.mainDomain}" = { security.acme.certs."turn.${config.vars.primeDomain}" = {
group = "turnserver"; group = "turnserver";
postRun = "systemctl restart coturn.service"; postRun = "systemctl restart coturn.service";
}; };

View file

@ -4,14 +4,14 @@
nixpkgs.config.element-web.conf = { nixpkgs.config.element-web.conf = {
default_server_config."m.homeserver" = { default_server_config."m.homeserver" = {
base_url = "https://matrix.${config.vars.mainDomain}"; base_url = "https://matrix.${config.vars.primeDomain}";
server_name = "matrix.${config.vars.mainDomain}"; server_name = "matrix.${config.vars.primeDomain}";
}; };
branding = { branding = {
auth_header_logo_url = "https://www.${config.vars.mainDomain}/images/copyright/profile.png"; auth_header_logo_url = "https://www.${config.vars.primeDomain}/images/copyright/profile.png";
#welcome_background_url = "https://www.${config.vars.mainDomain}/images/backgrounds/template-background.png"; #welcome_background_url = "https://www.${config.vars.primeDomain}/images/backgrounds/template-background.png";
}; };
embedded_pages.home_url = "https://www.${config.vars.mainDomain}/"; embedded_pages.home_url = "https://www.${config.vars.primeDomain}/";
disable_custom_urls = true; disable_custom_urls = true;
disable_guests = true; disable_guests = true;
default_theme = "dark"; default_theme = "dark";

View file

@ -1,6 +1,6 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
{ {
services.nginx.virtualHosts."chat.${config.vars.mainDomain}" = lib.mkIf config.services.matrix-synapse.enable { services.nginx.virtualHosts."chat.${config.vars.primeDomain}" = lib.mkIf config.services.matrix-synapse.enable {
enableACME = true; enableACME = true;
addSSL = true; addSSL = true;
root = "${pkgs.element-web}"; root = "${pkgs.element-web}";

View file

@ -5,16 +5,16 @@
config = lib.mkIf config.services.matrix-synapse.enable { config = lib.mkIf config.services.matrix-synapse.enable {
services.matrix-synapse = { services.matrix-synapse = {
settings = { settings = {
server_name = "${config.vars.mainDomain}"; server_name = "${config.vars.primeDomain}";
public_baseurl = "https://matrix.${config.vars.mainDomain}"; public_baseurl = "https://matrix.${config.vars.primeDomain}";
suppress_key_server_warning = true; suppress_key_server_warning = true;
# Email notifications about account status # Email notifications about account status
email = { email = {
notif_from = "NixFox Matrix <noreply@${config.vars.mainDomain}>"; smtp_host = "mx.${config.vars.mailDomain}";
smtp_host = "mx.${config.vars.mainDomain}"; smtp_user = "noreply@${config.vars.primeDomain}";
smtp_user = "noreply@${config.vars.mainDomain}";
smtp_pass = config.secrets.mailPass.nixfoxNoReply; smtp_pass = config.secrets.mailPass.nixfoxNoReply;
notif_from = "NixFox Matrix <noreply@${config.vars.primeDomain}>";
enable_tls = true; enable_tls = true;
smtp_port = 587; smtp_port = 587;
require_transport_security = true; require_transport_security = true;

View file

@ -1,6 +1,6 @@
{ config, lib, ... }: { config, lib, ... }:
{ {
services.nginx.virtualHosts."matrix.${config.vars.mainDomain}" = lib.mkIf config.services.matrix-synapse.enable { services.nginx.virtualHosts."matrix.${config.vars.primeDomain}" = lib.mkIf config.services.matrix-synapse.enable {
enableACME = true; enableACME = true;
forceSSL = true; forceSSL = true;
locations = { locations = {

View file

@ -3,17 +3,13 @@
imports = [ imports = [
./common ./common
./servers ./servers
minecraft.nixosModules.minecraft-servers
]; ];
config = lib.mkIf config.services.minecraft-servers.enable { config = lib.mkIf config.services.minecraft-servers.enable {
nixpkgs = {
overlays = [ minecraft.overlay ];
allowUnfreePackages = [ "minecraft-server" ];
};
services.minecraft-servers.eula = true; services.minecraft-servers.eula = true;
nixpkgs.allowUnfreePackages = [ "minecraft-server" ];
environment.persistence."/persist".directories = [ "/srv/minecraft" ]; environment.persistence."/persist".directories = [ "/srv/minecraft" ];
}; };
} }

View file

@ -14,6 +14,6 @@
symlinks = config.services.minecraft-servers.common.paperSymlinks; symlinks = config.services.minecraft-servers.common.paperSymlinks;
files = config.services.minecraft-servers.common.configFiles; files = config.services.minecraft-servers.common.configFiles;
}; };
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.blockworld.enable [ "bloxel.${config.vars.mainDomain}" ]; cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.blockworld.enable [ "bloxel.${config.vars.primeDomain}" ];
}; };
} }

View file

@ -13,6 +13,6 @@
symlinks = config.services.minecraft-servers.common.paperSymlinks; symlinks = config.services.minecraft-servers.common.paperSymlinks;
files = config.services.minecraft-servers.common.configFiles; files = config.services.minecraft-servers.common.configFiles;
}; };
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.cornworld.enable [ "corn.${config.vars.mainDomain}" ]; cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.cornworld.enable [ "corn.${config.vars.primeDomain}" ];
}; };
} }

View file

@ -13,6 +13,6 @@
symlinks = config.services.minecraft-servers.common.paperSymlinks; symlinks = config.services.minecraft-servers.common.paperSymlinks;
files = config.services.minecraft-servers.common.configFiles; files = config.services.minecraft-servers.common.configFiles;
}; };
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.dewdemolisher.enable [ "dew.${config.vars.mainDomain}" ]; cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.dewdemolisher.enable [ "dew.${config.vars.primeDomain}" ];
}; };
} }

View file

@ -26,6 +26,6 @@
}; };
files = config.services.minecraft-servers.common.configFiles; files = config.services.minecraft-servers.common.configFiles;
}; };
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.johnside.enable [ "john.${config.vars.mainDomain}" ]; cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.johnside.enable [ "john.${config.vars.primeDomain}" ];
}; };
} }

View file

@ -13,6 +13,6 @@
symlinks = config.services.minecraft-servers.common.paperSymlinks; symlinks = config.services.minecraft-servers.common.paperSymlinks;
files = config.services.minecraft-servers.common.configFiles; files = config.services.minecraft-servers.common.configFiles;
}; };
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.marsh.enable [ "marsh.${config.vars.mainDomain}" ]; cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.marsh.enable [ "marsh.${config.vars.primeDomain}" ];
}; };
} }

View file

@ -13,6 +13,6 @@
symlinks = config.services.minecraft-servers.common.paperSymlinks; symlinks = config.services.minecraft-servers.common.paperSymlinks;
files = config.services.minecraft-servers.common.configFiles; files = config.services.minecraft-servers.common.configFiles;
}; };
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.skyblock.enable [ "skyblock.${config.vars.mainDomain}" ]; cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.skyblock.enable [ "skyblock.${config.vars.primeDomain}" ];
}; };
} }

View file

@ -18,6 +18,6 @@ in {
server-port = 30005; server-port = 30005;
}; };
}; };
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.uberbeta.enable [ "beta.${config.vars.mainDomain}" ]; cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.uberbeta.enable [ "beta.${config.vars.primeDomain}" ];
}; };
} }

View file

@ -8,7 +8,7 @@
config = lib.mkIf config.services.nextcloud.enable { config = lib.mkIf config.services.nextcloud.enable {
services.nextcloud = { services.nextcloud = {
package = pkgs.nextcloud31; package = pkgs.nextcloud31;
hostName = "files.${config.vars.mainDomain}"; hostName = "files.${config.vars.primeDomain}";
https = true; https = true;
config = { config = {
adminuser = "admin"; adminuser = "admin";
@ -19,11 +19,11 @@
trusted_proxies = [ "127.0.0.1" ]; trusted_proxies = [ "127.0.0.1" ];
trusted_domains = [ config.services.nextcloud.hostName ]; trusted_domains = [ config.services.nextcloud.hostName ];
overwriteprotocol = "https"; overwriteprotocol = "https";
mail_smtphost = "mx.${config.vars.mainDomain}"; mail_smtphost = "mx.${config.vars.mailDomain}";
mail_domain = "${config.vars.mainDomain}"; mail_domain = "${config.vars.primeDomain}";
mail_from_address = "noreply"; mail_from_address = "noreply";
mail_smtpauth = "true"; mail_smtpauth = "true";
mail_smtpname = "noreply@${config.vars.mainDomain}"; mail_smtpname = "noreply@${config.vars.primeDomain}";
mail_smtppassword = config.secrets.mailPass.nixfoxNoReply; mail_smtppassword = config.secrets.mailPass.nixfoxNoReply;
mail_smtpmode = "smtp"; mail_smtpmode = "smtp";
mail_smtpport = 587; mail_smtpport = 587;

View file

@ -1,6 +1,6 @@
{ config, lib, ... }: { config, lib, ... }:
{ {
services.nginx.virtualHosts."files.${config.vars.mainDomain}" = lib.mkIf config.services.nextcloud.enable { services.nginx.virtualHosts."files.${config.vars.primeDomain}" = lib.mkIf config.services.nextcloud.enable {
enableACME = true; enableACME = true;
addSSL = true; addSSL = true;
locations."/" = { locations."/" = {

View file

@ -3,7 +3,7 @@
config = lib.mkIf config.services.nginx.enable { config = lib.mkIf config.services.nginx.enable {
security.acme = { security.acme = {
acceptTerms = true; acceptTerms = true;
defaults.email = "contact@${config.vars.mainDomain}"; defaults.email = "contact@${config.vars.primeDomain}";
}; };
environment.persistence."/persist".directories = [ "/var/lib/acme" ]; environment.persistence."/persist".directories = [ "/var/lib/acme" ];
}; };

Some files were not shown because too many files have changed in this diff Show more