move storage to nixos 🎉
Lint / lint (push) Failing after 1m38s Details
Plex Update / update (push) Successful in 1m52s Details

reboot
Vivian 2023-12-28 18:45:12 +01:00
parent 5dcf1facee
commit f59148622e
11 changed files with 323 additions and 74 deletions

View File

@ -228,6 +228,25 @@
"type": "github"
}
},
"essentials": {
"inputs": {
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1703781671,
"narHash": "sha256-sldUCqfp0E3AV82jJ2YLi0tbOajn9fg4+ms9naeAYKA=",
"owner": "jdonszelmann",
"repo": "essentials",
"rev": "6b10889113e4356e0b5d050874effb9b9f3d8903",
"type": "github"
},
"original": {
"owner": "jdonszelmann",
"repo": "essentials",
"type": "github"
}
},
"fenix": {
"inputs": {
"nixpkgs": [
@ -455,6 +474,24 @@
"type": "github"
}
},
"flake-utils_10": {
"inputs": {
"systems": "systems_9"
},
"locked": {
"lastModified": 1681202837,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"locked": {
"lastModified": 1659877975,
@ -493,11 +530,11 @@
"systems": "systems_3"
},
"locked": {
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
@ -511,11 +548,11 @@
"systems": "systems_4"
},
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
@ -546,6 +583,24 @@
"inputs": {
"systems": "systems_6"
},
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_8": {
"inputs": {
"systems": "systems_7"
},
"locked": {
"lastModified": 1685518550,
"narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=",
@ -560,7 +615,7 @@
"type": "github"
}
},
"flake-utils_8": {
"flake-utils_9": {
"locked": {
"lastModified": 1678901627,
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
@ -574,24 +629,6 @@
"type": "indirect"
}
},
"flake-utils_9": {
"inputs": {
"systems": "systems_8"
},
"locked": {
"lastModified": 1681202837,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flakeCompat": {
"flake": false,
"locked": {
@ -670,8 +707,8 @@
},
"gnome-autounlock-keyring": {
"inputs": {
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_4"
"flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1702994344,
@ -728,7 +765,7 @@
"crane": "crane_2",
"flake-compat": "flake-compat_4",
"flake-parts": "flake-parts",
"flake-utils": "flake-utils_4",
"flake-utils": "flake-utils_5",
"nixpkgs": [
"nixpkgs"
],
@ -807,8 +844,8 @@
},
"microvm": {
"inputs": {
"flake-utils": "flake-utils_5",
"nixpkgs": "nixpkgs_5"
"flake-utils": "flake-utils_6",
"nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1703330826,
@ -870,7 +907,7 @@
"nix": {
"inputs": {
"lowdown-src": "lowdown-src",
"nixpkgs": "nixpkgs_9",
"nixpkgs": "nixpkgs_10",
"nixpkgs-regression": "nixpkgs-regression"
},
"locked": {
@ -1082,6 +1119,22 @@
}
},
"nixpkgs_10": {
"locked": {
"lastModified": 1645296114,
"narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "530a53dcbc9437363471167a5e4762c5fcfa34a1",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-21.05-small",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_11": {
"locked": {
"lastModified": 1696165369,
"narHash": "sha256-pd1cjFHCoEf9q5f9B0HhlOwwpBI9RP3HbUE6xjI7wAI=",
@ -1097,7 +1150,7 @@
"type": "github"
}
},
"nixpkgs_11": {
"nixpkgs_12": {
"locked": {
"lastModified": 1682526928,
"narHash": "sha256-2cKh4O6t1rQ8Ok+v16URynmb0rV7oZPEbXkU0owNLQs=",
@ -1113,7 +1166,7 @@
"type": "github"
}
},
"nixpkgs_12": {
"nixpkgs_13": {
"locked": {
"lastModified": 1670507980,
"narHash": "sha256-riNZa0xzM1it3pzxciwALeMs+0CsBMWIW2FqulzK8vM=",
@ -1162,6 +1215,22 @@
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1703438236,
"narHash": "sha256-aqVBq1u09yFhL7bj1/xyUeJjzr92fXVvQSSEx6AdB1M=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5f64a12a728902226210bf01d25ec6cbb9d9265b",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1702933230,
"narHash": "sha256-xi8AZ3noIXrgmKLR+ij+CeYFoUTKiQuTLL+aA7FRdRQ=",
@ -1176,7 +1245,7 @@
"type": "github"
}
},
"nixpkgs_5": {
"nixpkgs_6": {
"locked": {
"lastModified": 1702312524,
"narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
@ -1192,7 +1261,7 @@
"type": "github"
}
},
"nixpkgs_6": {
"nixpkgs_7": {
"locked": {
"lastModified": 1703395344,
"narHash": "sha256-cAgNsKUbbOjm3s8NJwRa0YEgyLbTVQ5Y+z4SCUIRs4k=",
@ -1207,7 +1276,7 @@
"type": "indirect"
}
},
"nixpkgs_7": {
"nixpkgs_8": {
"locked": {
"lastModified": 1703013332,
"narHash": "sha256-+tFNwMvlXLbJZXiMHqYq77z/RfmpfpiI3yjL6o/Zo9M=",
@ -1223,7 +1292,7 @@
"type": "github"
}
},
"nixpkgs_8": {
"nixpkgs_9": {
"locked": {
"lastModified": 1686736559,
"narHash": "sha256-YyUSVoOKIDAscTx7IZhF9x3qgZ9dPNF19fKk+4c5irc=",
@ -1239,22 +1308,6 @@
"type": "github"
}
},
"nixpkgs_9": {
"locked": {
"lastModified": 1645296114,
"narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "530a53dcbc9437363471167a5e4762c5fcfa34a1",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-21.05-small",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_stable": {
"locked": {
"lastModified": 1703351344,
@ -1272,8 +1325,8 @@
},
"nixvim": {
"inputs": {
"flake-utils": "flake-utils_6",
"nixpkgs": "nixpkgs_7",
"flake-utils": "flake-utils_7",
"nixpkgs": "nixpkgs_8",
"pre-commit-hooks": "pre-commit-hooks"
},
"locked": {
@ -1325,7 +1378,7 @@
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat_6",
"flake-utils": "flake-utils_7",
"flake-utils": "flake-utils_8",
"gitignore": "gitignore_2",
"nixpkgs": [
"nixvim",
@ -1409,7 +1462,7 @@
"inputs": {
"fenix": "fenix",
"naersk": "naersk_2",
"nixpkgs": "nixpkgs_8"
"nixpkgs": "nixpkgs_9"
},
"locked": {
"lastModified": 1690193312,
@ -1430,6 +1483,7 @@
"attic": "attic",
"colmena": "colmena",
"comma": "comma",
"essentials": "essentials",
"gnome-autounlock-keyring": "gnome-autounlock-keyring",
"home-manager": "home-manager",
"lanzaboote": "lanzaboote",
@ -1437,7 +1491,7 @@
"microvm": "microvm",
"nixos-generators": "nixos-generators",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_6",
"nixpkgs": "nixpkgs_7",
"nixpkgs_stable": "nixpkgs_stable",
"nixvim": "nixvim",
"nur": "nur",
@ -1642,6 +1696,21 @@
"type": "github"
}
},
"systems_9": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"utils": {
"inputs": {
"systems": "systems"
@ -1677,7 +1746,7 @@
},
"utils_3": {
"inputs": {
"systems": "systems_7"
"systems": "systems_8"
},
"locked": {
"lastModified": 1694529238,
@ -1696,9 +1765,9 @@
"vault-secrets": {
"inputs": {
"flake-compat": "flake-compat_7",
"flake-utils": "flake-utils_8",
"flake-utils": "flake-utils_9",
"nix": "nix",
"nixpkgs": "nixpkgs_10",
"nixpkgs": "nixpkgs_11",
"utils": "utils_3"
},
"locked": {
@ -1717,8 +1786,8 @@
},
"vault-unseal": {
"inputs": {
"flake-utils": "flake-utils_9",
"nixpkgs": "nixpkgs_11"
"flake-utils": "flake-utils_10",
"nixpkgs": "nixpkgs_12"
},
"locked": {
"lastModified": 1683013874,
@ -1737,7 +1806,7 @@
"webcord": {
"inputs": {
"dream2nix": "dream2nix",
"nixpkgs": "nixpkgs_12",
"nixpkgs": "nixpkgs_13",
"webcord": "webcord_2"
},
"locked": {

View File

@ -43,6 +43,9 @@
gnome-autounlock-keyring.url = "git+https://git.0x76.dev/v/gnome-autounlock-keyring.git";
attic.url = "github:zhaofengli/attic";
# Website(s)
essentials.url = "github:jdonszelmann/essentials";
};
outputs =

View File

@ -7,8 +7,8 @@ in {
programs.git = {
enable = true;
package = pkgs.gitAndTools.gitFull;
userName = "0x76";
userEmail = "v@0x76.dev";
userName = "Vivian";
userEmail = "vivian@0x76.dev";
lfs.enable = true;
extraConfig = {
push.autoSetupRemote = true;

View File

@ -81,7 +81,7 @@
"storage" = {
ip = "192.168.0.115";
mac = "00:50:56:91:0d:69";
nix = false;
type = "vm";
};
"immich" = {
ip = "192.168.0.116";

View File

@ -59,8 +59,11 @@ in {
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKTvqk+CJG4VwN8wg3H1ZdbUVj1JuX7RYKH1ewRKfCPv julia@juliadijkstraarch"
# Below is Evelyn's key
# Below is Evelyn's keys
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDnZSVdqSybDwVooSZ+SGFM0YNu15sO/jgVqCBGDm33wj0fML5T4oviUrY6yABh+eAgy/NAztgM7+6L8Hlze5DBeMwNAvj9gr9QSzUetW0iqCscZJ8dDbW30O9449gw2JY/XZzcFMZAP5QEQGEgG/6QQ3yRwA3DMCsGhQQ37l/aS+RsKYq3ZSN4f1nFJCrm397QB8r+bhaexufXqwumxe8rlefoUNNVnmu54FA8Pc3jSdsWT4s/3mqF6NiRa53w13SBWyS+zopCy1tTSnRszgAkldpE7Vft/QnmpFavAWHzpfArv/uFXQ3fx5Cj5t70zB6VJEtaBxhdKXeQUFBCn7fmwfjV0Un9b8jLW94uDhDD3059trhMvJvqKebuqyZe74MTZH0IC3IobpSb9fHHvxuRwUQOMkkJmjv1p2y2R6v7s2tA1sZlIEBmRDvZcKo4hPBe6q13OePV3O8KAFzCmPBIfE6kQ/nLc+3k9OjFWFTshdDXUYpSVGjNrv/IanCXbEs="
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA0KA0uOoLXUN4LhU7LgtSk0atWyPlEz5LA8dIXs9xTl"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIfooZjMWXvXZu1ReOEACDZ0TMb2WJRBSOLlWE8y6fUh victor@aoife"
];
extraGroups = [ "mc" "wheel" ];

View File

@ -0,0 +1,47 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
./fs.nix
];
boot.loader.systemd-boot.enable = true;
networking.hostName = "storage"; # Define your hostname.
# Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
# Set your time zone.
time.timeZone = "Europe/Amsterdam";
# Define a user account. Don't forget to set a password with passwd.
users.users.vivian = {
isNormalUser = true;
extraGroups = [ "wheel" ]; # Enable sudo for the user.
};
# Enable the OpenSSH daemon.
services.openssh.enable = true;
# Disable firewall, as NFS makes it annoying
networking.firewall.enable = false;
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "23.11"; # Did you read the comment?
services.nfs.server = {
enable = true;
exports = ''
/mnt/storage *(rw,async,no_subtree_check,fsid=0,all_squash,anonuid=0,anongid=0)
'';
};
}

View File

@ -0,0 +1,67 @@
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [ mergerfs ];
fileSystems."/mnt/disk1" = {
fsType = "ext4";
device = "/dev/disk/by-partuuid/abbfc440-fb3d-4b33-92cb-948b2deeac53";
};
fileSystems."/mnt/disk2" = {
fsType = "ext4";
device = "/dev/disk/by-partuuid/3a57ffa8-8a0f-4839-81df-7f34d99e9dbc";
};
fileSystems."/mnt/disk3" = {
fsType = "ext4";
device = "/dev/disk/by-partuuid/0f72c5f8-b7db-4151-83f0-47e5f703aeb1";
};
fileSystems."/mnt/disk4" = {
fsType = "ext4";
device = "/dev/disk/by-partuuid/b9c72b41-1538-436e-a595-49d1faa5ed01";
};
fileSystems."/mnt/disk5" = {
fsType = "ext4";
device = "/dev/disk/by-partuuid/928d0200-eca1-4a69-b2d6-fbd23a5ee8cd";
};
fileSystems."/mnt/disk6" = {
fsType = "ext4";
device = "/dev/disk/by-uuid/63381321-fe00-4838-8668-4d1decc94296";
};
fileSystems."/mnt/parity1" = {
fsType = "ext4";
device = "/dev/disk/by-partuuid/7c9b88ed-b8f8-40c9-bbc3-b75d30e04e01";
};
fileSystems."/mnt/parity2" = {
fsType = "ext4";
device = "/dev/disk/by-uuid/6c568887-9d2e-45ce-ab85-4c48cca2226a";
};
fileSystems."/mnt/storage" = {
fsType = "fuse.mergerfs";
device = "/mnt/disk*";
options = [
"direct_io"
"defaults"
"allow_other"
"minfreespace=20G"
"fsname=mergerfs"
"use_ino"
"noforget"
"moveonenospc=true"
"category.create=mfs"
];
};
services.nfs.server = {
enable = true;
exports = ''
/mnt/storage *(rw,async,no_subtree_check,fsid=0,all_squash,anonuid=0,anongid=0)
'';
};
}

View File

@ -0,0 +1,38 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "uhci_hcd" "ehci_pci" "ahci" "mpt3sas" "virtio_pci" "sd_mod" "sr_mod" "virtio_blk" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/cdbb197e-c1a8-4780-acd8-57d23bfb4050";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/7613-E759";
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/a3e08ffb-2237-463e-b9bf-8a42c0dbbf22"; }
];
# 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.enp6s18.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}

View File

@ -51,10 +51,7 @@
ip = "10.42.42.10";
mac = "6E:A5:25:99:FE:68";
exposes = {
www.domain = "0x76.dev";
flux.domain = "flux.0x76.dev";
internal.domain = "internal.xirion.net";
blog.domain = "blog.xirion.net";
};
};
"dex" = {

View File

@ -1,4 +1,4 @@
{ pkgs, ... }:
{ pkgs, inputs, ... }:
let
clientConfig = {
"m.homeserver" = {
@ -61,6 +61,26 @@ in
};
};
"0x76.dev" = {
enableACME = true;
forceSSL = true;
locations."/".extraConfig = ''
add_header Content-Type 'text/html; charset=UTF-8';
return 200 '<h1>Under Construction</h1>';
'';
};
"blog.xirion.net" = {
enableACME = true;
forceSSL = true;
locations."/".extraConfig = ''
add_header Content-Type 'text/html; charset=UTF-8';
return 200 '<h1>Under Construction</h1>';
'';
};
# Meow
"meowy.tech" = {
enableACME = true;
@ -113,6 +133,11 @@ in
};
};
};
"es.0x76.dev" = {
enableACME = true;
forceSSL = true;
root = inputs.essentials.packages.${pkgs.system}.default;
};
"cinny.chat.meowy.tech" = {
enableACME = true;
forceSSL = true;

View File

@ -23,8 +23,8 @@ in
git = {
enable = true;
package = pkgs.gitAndTools.gitFull;
userName = "0x76";
userEmail = "v@0x76";
userName = "Vivian";
userEmail = "vivian@0x76.dev";
lfs.enable = true;
# delta.enable = true;
extraConfig = {