Compare commits

..

8 commits

9 changed files with 147 additions and 109 deletions

128
flake.lock generated
View file

@ -83,11 +83,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750974272, "lastModified": 1751740947,
"narHash": "sha256-VaeQzSzekMvP+/OhwNZP4kzs4paWk5+20N0MFLTn+cs=", "narHash": "sha256-35040CHH7P3JGmhGVfEb2oJHL/A5mI2IXumhkxrBnao=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "dd921421391e75793d0cc674dc15eca16b46a089", "rev": "dfc1db15a08c4cd234288f66e1199c653495301f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -101,11 +101,11 @@
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1751463132, "lastModified": 1751880463,
"narHash": "sha256-eKbIZwTsl+Rbkj4coSZETlcTbmVbegN1nCKJ7059p88=", "narHash": "sha256-aSQllMKqsTYAUp4yhpspZn0Hj5yIj7Mh4UD5iyk5iMM=",
"owner": "catppuccin", "owner": "catppuccin",
"repo": "nix", "repo": "nix",
"rev": "a682f7033678ea093c42c5e361975af5988aa3de", "rev": "9474347c69e93e392f194dda7a57c641ba4b998e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -179,11 +179,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1749398372, "lastModified": 1751413152,
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -337,11 +337,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751463936, "lastModified": 1751990210,
"narHash": "sha256-kS8p1QgyFO/95BHSsZMpBs8oRh1bklAd/zzpWhF6ODk=", "narHash": "sha256-krWErNDl9ggMLSfK00Q2BcoSk3+IRTSON/DiDgUzzMw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "3d243d4a16cafe855df585b3030aa99261a27a86", "rev": "218da00bfa73f2a61682417efe74549416c16ba6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -355,11 +355,11 @@
"nixpkgs": "nixpkgs_4" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1750372088, "lastModified": 1751715349,
"narHash": "sha256-LPwgPRBTfnA76rHUr7KYvwq2pNt5IfxymNAZUJFvn/M=", "narHash": "sha256-cP76ijtfGTFTpWFfmyFHA2MpDlIyKpWwW82kqQSQ6s0=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "contrib", "repo": "contrib",
"rev": "189f32f56285aae9646bf1292976392beba5a2e2", "rev": "dafa5d09b413d08a55a81f6f8e85775d717bacda",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -413,11 +413,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750621377, "lastModified": 1751808145,
"narHash": "sha256-8u6b5oAdX0rCuoR8wFenajBRmI+mzbpNig6hSCuWUzE=", "narHash": "sha256-OXgL0XaKMmfX2rRQkt9SkJw+QNfv0jExlySt1D6O72g=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprgraphics", "repo": "hyprgraphics",
"rev": "b3d628d01693fb9bb0a6690cd4e7b80abda04310", "rev": "b841473a0bd4a1a74a0b64f1ec2ab199035c349f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -444,11 +444,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1751404714, "lastModified": 1751995875,
"narHash": "sha256-U2EbKyeRJmJp54AxAt426vVdznrMkCgUiGuv0OSnPJs=", "narHash": "sha256-oGufLuYzFSdLP6fUSLsIm2m4QscfTPbRT1fzQTdkw4M=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "90c8609cbb5ae7b488d7b14b4dfb3ec9585ed2b7", "rev": "9517d0eaa4ef93de67dc80fecca7a826f7ad556d",
"revCount": 6239, "revCount": 6256,
"submodules": true, "submodules": true,
"type": "git", "type": "git",
"url": "https://github.com/hyprwm/Hyprland" "url": "https://github.com/hyprwm/Hyprland"
@ -636,11 +636,11 @@
"systems": "systems_5" "systems": "systems_5"
}, },
"locked": { "locked": {
"lastModified": 1751122848, "lastModified": 1751567624,
"narHash": "sha256-IJxNuudvBX+3WJpqG16DBaM6aDwgWAU9PchGYHSXoZM=", "narHash": "sha256-tUVODSZhvafXmuN+5SwZpNWV+2cvhSd+5IJ5TXu3YgI=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprsunset", "repo": "hyprsunset",
"rev": "845f7e8e86cac5023cad4dc446fc120be80fe69a", "rev": "4b2f0f9f46a6552930eecb979d18ac48d7079312",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -661,11 +661,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751061882, "lastModified": 1751888065,
"narHash": "sha256-g9n8Vrbx+2JYM170P9BbvGHN39Wlkr4U+V2WLHQsXL8=", "narHash": "sha256-F2SV9WGqgtRsXIdUrl3sRe0wXlQD+kRRZcSfbepjPJY=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "4737241eaf8a1e51671a2a088518071f9a265cf4", "rev": "a8229739cf36d159001cfc203871917b83fdf917",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -736,11 +736,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750371869, "lastModified": 1751881472,
"narHash": "sha256-lGk4gLjgZQ/rndUkzmPYcgbHr8gKU5u71vyrjnwfpB4=", "narHash": "sha256-meB0SnXbwIe2trD041MLKEv6R7NZ759QwBcVIhlSBfE=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprwayland-scanner", "repo": "hyprwayland-scanner",
"rev": "aa38edd6e3e277ae6a97ea83a69261a5c3aab9fd", "rev": "8fb426b3e5452fd9169453fd6c10f8c14ca37120",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -835,11 +835,11 @@
"nixpkgs": "nixpkgs_7" "nixpkgs": "nixpkgs_7"
}, },
"locked": { "locked": {
"lastModified": 1751421595, "lastModified": 1752026525,
"narHash": "sha256-6uvHT496bu8b/UhTY86NnrbU2fzuqNkgHCHi1T3LLog=", "narHash": "sha256-uCkk6qnQFNKJh0wwpeN/B/S27834c0DpBSK/Frovvyo=",
"owner": "fufexan", "owner": "fufexan",
"repo": "nix-gaming", "repo": "nix-gaming",
"rev": "cb4f76b2b304c07237bc7c2f81926b645a216021", "rev": "9d902f4f96cba7226f242045a5605b1ffcf18cd4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -881,11 +881,11 @@
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1748740939, "lastModified": 1751159883,
"narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=", "narHash": "sha256-urW/Ylk9FIfvXfliA1ywh75yszAbiTEVgpPeinFyVZo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "656a64127e9d791a334452c6b6606d17539476e2", "rev": "14a40a1d7fb9afa4739275ac642ed7301a9ba1ab",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -927,11 +927,11 @@
}, },
"nixpkgs_11": { "nixpkgs_11": {
"locked": { "locked": {
"lastModified": 1751271578, "lastModified": 1751792365,
"narHash": "sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU+tt4YY=", "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3016b4b15d13f3089db8a41ef937b13a9e33a8df", "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1023,11 +1023,11 @@
}, },
"nixpkgs_7": { "nixpkgs_7": {
"locked": { "locked": {
"lastModified": 1750994206, "lastModified": 1751625545,
"narHash": "sha256-3u6rEbIX9CN/5A5/mc3u0wIO1geZ0EhjvPBXmRDHqWM=", "narHash": "sha256-4E7wWftF1ExK5ZEDzj41+9mVgxtuRV3wWCId7QAYMAU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "80d50fc87924c2a0d346372d242c27973cf8cdbf", "rev": "c860cf0b3a0829f0f6cf344ca8de83a2bbfab428",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1039,11 +1039,11 @@
}, },
"nixpkgs_8": { "nixpkgs_8": {
"locked": { "locked": {
"lastModified": 1751271578, "lastModified": 1751792365,
"narHash": "sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU+tt4YY=", "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3016b4b15d13f3089db8a41ef937b13a9e33a8df", "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1112,15 +1112,14 @@
"nur": { "nur": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_4", "flake-parts": "flake-parts_4",
"nixpkgs": "nixpkgs_11", "nixpkgs": "nixpkgs_11"
"treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1751464546, "lastModified": 1752047019,
"narHash": "sha256-DCPeFJC6ih3cFhSwxBNNgbbHakCupR9fE5yX8DNWOzQ=", "narHash": "sha256-cquBxPthNijnDaoX6Pj5V0jQ5BhoqJOJ/DdGzeJ0xyg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "35af9e4796b6659705276544207796b5d05720e1", "rev": "64185b1642f23c6340e3ebd52eabccfadfb78cfb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1301,27 +1300,6 @@
"type": "github" "type": "github"
} }
}, },
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733222881,
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"xdph": { "xdph": {
"inputs": { "inputs": {
"hyprland-protocols": [ "hyprland-protocols": [
@ -1350,11 +1328,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750372504, "lastModified": 1751300244,
"narHash": "sha256-VBeZb1oqZM1cqCAZnFz/WyYhO8aF/ImagI7WWg/Z3Og=", "narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "400308fc4f9d12e0a93e483c2e7a649e12af1a92", "rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -27,6 +27,19 @@
time.timeZone = "Europe/Amsterdam"; time.timeZone = "Europe/Amsterdam";
systemd.network.networks."99-local" = {
matchConfig.name = "ens3s1";
address = [
"192.168.1.100/24"
];
routes = [
{
Gateway = "172.16.10.1";
GatewayOnLink = false;
}
];
};
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
kitty.terminfo kitty.terminfo
zfs zfs

View file

@ -17,6 +17,6 @@
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGXi00z/rxVrWLKgYr+tWIsbHsSQO75hUMSTThNm5wUw liv@sakura" # main laptop "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGXi00z/rxVrWLKgYr+tWIsbHsSQO75hUMSTThNm5wUw liv@sakura" # main laptop
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ2nsQHyWnrmuQway0ehoMUcYYfhD8Ph/vpD0Tzip1b1 liv@meow" # main phone "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ2nsQHyWnrmuQway0ehoMUcYYfhD8Ph/vpD0Tzip1b1 liv@meow" # main phone
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHv2zxCy22KU1tZOH2hA1p8fWVpOSrTYF68+3E5r330O liv@ichiyo" # 2nd laptop "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHv2zxCy22KU1tZOH2hA1p8fWVpOSrTYF68+3E5r330O liv@ichiyo" # 2nd laptop
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGm9dLpj13r+Iso5SuHSCSQbriumwW1Fs7TkgaBmmXeo liv@azalea" # linux phone "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO7mHVQp99G0osUAtnVoq5TARR8x5wjCkdbe7ChnzLRa liv@azalea" # linux phone
]; ];
} }

View file

@ -26,6 +26,9 @@ in
fi fi
''; '';
user = "${username}"; user = "${username}";
extraCreateArgs = [
"--stats"
];
environment = { environment = {
BORG_RSH = "ssh -p 9123 -i /home/liv/.ssh/id_ed25519"; BORG_RSH = "ssh -p 9123 -i /home/liv/.ssh/id_ed25519";
}; };
@ -46,6 +49,9 @@ in
fi fi
''; '';
# user = "${username}"; # user = "${username}";
extraCreateArgs = [
"--stats"
];
environment = { environment = {
BORG_RSH = "ssh -p 9123 -i /home/liv/.ssh/id_ed25519"; BORG_RSH = "ssh -p 9123 -i /home/liv/.ssh/id_ed25519";
}; };

View file

@ -8,5 +8,6 @@
++ [ (import ./monitoring.nix) ] ++ [ (import ./monitoring.nix) ]
++ [ (import ./smart-monitoring.nix) ] ++ [ (import ./smart-monitoring.nix) ]
++ [ (import ./tailscale.nix) ] ++ [ (import ./tailscale.nix) ]
++ [ (import ./nfs.nix) ]
++ [ (import ./hd-idle.nix) ]; ++ [ (import ./hd-idle.nix) ];
} }

View file

@ -1,9 +1,12 @@
{ config, ... }: { config, ... }:
{ {
services.immich = { # services.immich = {
enable = true; # enable = true;
port = 2283; # port = 2283;
}; # mediaLocation = "/spinners/rootvol/immich/";
# openFirewall = true;
# machine-learning.enable = true;
# };
# services.nginx.virtualHosts."" = { # services.nginx.virtualHosts."" = {
# forceSSL = true; # forceSSL = true;

38
modules/services/nfs.nix Normal file
View file

@ -0,0 +1,38 @@
{
config,
lib,
pkgs,
...
}:
{
services = {
# Network shares
samba = {
package = pkgs.samba4Full;
# ^^ `samba4Full` is compiled with avahi, ldap, AD etc support (compared to the default package, `samba`
# Required for samba to register mDNS records for auto discovery
# See https://github.com/NixOS/nixpkgs/blob/592047fc9e4f7b74a4dc85d1b9f5243dfe4899e3/pkgs/top-level/all-packages.nix#L27268
enable = true;
openFirewall = true;
shares.main = {
path = "/spinners/rootvol/nfs";
writable = "true";
comment = "Hello world!";
};
};
avahi = {
publish.enable = true;
publish.userServices = true;
# ^^ Needed to allow samba to automatically register mDNS records (without the need for an `extraServiceFile`
#nssmdns4 = true;
# ^^ Not one hundred percent sure if this is needed- if it aint broke, don't fix it
enable = true;
openFirewall = true;
};
samba-wsdd = {
# This enables autodiscovery on windows since SMB1 (and thus netbios) support was discontinued
enable = true;
openFirewall = true;
};
};
}

View file

@ -7,7 +7,6 @@
++ [ (import ./binternet-proxy.nix) ] ++ [ (import ./binternet-proxy.nix) ]
++ [ (import ./bluemap-proxy.nix) ] ++ [ (import ./bluemap-proxy.nix) ]
++ [ (import ./docker.nix) ] ++ [ (import ./docker.nix) ]
# ++ [ (import ./frp.nix) ]
++ [ (import ./forgejo.nix) ] ++ [ (import ./forgejo.nix) ]
++ [ (import ./grafana.nix) ] ++ [ (import ./grafana.nix) ]
++ [ (import ./guacamole.nix) ] ++ [ (import ./guacamole.nix) ]
@ -24,7 +23,7 @@
++ [ (import ./readarr.nix) ] ++ [ (import ./readarr.nix) ]
++ [ (import ./sharkey-proxy.nix) ] ++ [ (import ./sharkey-proxy.nix) ]
# ++ [ (import ./komga.nix) ] # ++ [ (import ./komga.nix) ]
# ++ [ (import ./prosody.nix) ] # ++ [ (import ./xmpp.nix) ]
++ [ (import ./tailscale.nix) ]; ++ [ (import ./tailscale.nix) ];
# ++ [ (import ./smart-monitoring.nix) ] # ++ [ (import ./smart-monitoring.nix) ]
# ++ [ (import ./jitsi-meet.nix) ] # ++ [ (import ./jitsi-meet.nix) ]

View file

@ -1,29 +1,29 @@
{ {
# services.prosody = { services.prosody = {
# enable = false; enable = true;
# user = "acme"; user = "root";
# modules = { modules = {
# welcome = true; welcome = true;
# websocket = true; websocket = true;
# watchregistrations = true; watchregistrations = true;
# }; };
# admins = [ "liv@liv.town" ]; admins = [ "liv@liv.town" ];
# allowRegistration = false; allowRegistration = false;
# ssl.cert = "/var/lib/acme/liv.town/cert.pem"; ssl.cert = "/var/lib/acme/liv.town/cert.pem";
# ssl.key = "/var/lib/acme/liv.town/key.pem"; ssl.key = "/var/lib/acme/liv.town/key.pem";
# virtualHosts."liv.town" = { virtualHosts."liv.town" = {
# enabled = true; enabled = true;
# domain = "liv.town"; domain = "liv.town";
# ssl.cert = "/var/lib/acme/liv.town/fullchain.pem"; ssl.cert = "/var/lib/acme/liv.town/fullchain.pem";
# ssl.key = "/var/lib/acme/liv.town/key.pem"; ssl.key = "/var/lib/acme/liv.town/key.pem";
# }; };
# muc = [ muc = [
# { {
# domain = "conference.liv.town"; domain = "conference.liv.town";
# } }
# ]; ];
# uploadHttp = { uploadHttp = {
# domain = "upload.liv.town"; domain = "upload.liv.town";
# }; };
# }; };
} }