From cc74263a3b4a775b65fc470cd78491bbb7c9b97d Mon Sep 17 00:00:00 2001 From: Maxiem Geldhof Date: Sun, 12 Oct 2025 17:15:04 +0200 Subject: [PATCH] Original commit --- flake.lock | 153 ++ flake.nix | 40 + keys/asus.pub | 1 + keys/google-storage-key | Bin 0 -> 2683 bytes keys/hetzner.pub | 1 + keys/jellyfin-key | 7 + keys/macbook.priv | 7 + keys/macbook.pub | 1 + keys/master.priv | Bin 0 -> 742 bytes keys/master.pub | 1 + keys/secrets.nix | 11 + .../grafana/dashboards/jellyfin.json | 2392 +++++++++++++++++ modules/servermodules/grafana/grafana.nix | 70 + .../servermodules/grafana/provision/prom.yaml | 19 + modules/servermodules/jellyfin/jellyfin.nix | 60 + modules/servermodules/nginx.nix | 76 + modules/servermodules/packages.nix | 15 + modules/usermodules/darwinsettings.nix | 22 + systems/macbook/macbook.nix | 15 + systems/macbook/users.nix | 14 + systems/selene/basesettings.nix | 33 + systems/selene/hardware.nix | 13 + systems/selene/networking.nix | 44 + systems/selene/system.nix | 19 + systems/selene/users.nix | 17 + systems/selene/volumes.nix | 21 + 26 files changed, 3052 insertions(+) create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 keys/asus.pub create mode 100644 keys/google-storage-key create mode 100644 keys/hetzner.pub create mode 100644 keys/jellyfin-key create mode 100644 keys/macbook.priv create mode 100644 keys/macbook.pub create mode 100644 keys/master.priv create mode 100644 keys/master.pub create mode 100644 keys/secrets.nix create mode 100644 modules/servermodules/grafana/dashboards/jellyfin.json create mode 100644 modules/servermodules/grafana/grafana.nix create mode 100644 modules/servermodules/grafana/provision/prom.yaml create mode 100644 modules/servermodules/jellyfin/jellyfin.nix create mode 100644 modules/servermodules/nginx.nix create mode 100644 modules/servermodules/packages.nix create mode 100644 modules/usermodules/darwinsettings.nix create mode 100644 systems/macbook/macbook.nix create mode 100644 systems/macbook/users.nix create mode 100644 systems/selene/basesettings.nix create mode 100644 systems/selene/hardware.nix create mode 100644 systems/selene/networking.nix create mode 100644 systems/selene/system.nix create mode 100644 systems/selene/users.nix create mode 100644 systems/selene/volumes.nix diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..f5f51ff --- /dev/null +++ b/flake.lock @@ -0,0 +1,153 @@ +{ + "nodes": { + "agenix": { + "inputs": { + "darwin": "darwin", + "home-manager": "home-manager", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems" + }, + "locked": { + "lastModified": 1754433428, + "narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=", + "owner": "ryantm", + "repo": "agenix", + "rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d", + "type": "github" + }, + "original": { + "owner": "ryantm", + "repo": "agenix", + "type": "github" + } + }, + "darwin": { + "inputs": { + "nixpkgs": [ + "agenix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1744478979, + "narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "43975d782b418ebf4969e9ccba82466728c2851b", + "type": "github" + }, + "original": { + "owner": "lnl7", + "ref": "master", + "repo": "nix-darwin", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "agenix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1745494811, + "narHash": "sha256-YZCh2o9Ua1n9uCvrvi5pRxtuVNml8X2a03qIFfRKpFs=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "abfad3d2958c9e6300a883bd443512c55dfeb1be", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1758463745, + "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-25.05", + "repo": "home-manager", + "type": "github" + } + }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1759509947, + "narHash": "sha256-4XifSIHfpJKcCf5bZZRhj8C4aCpjNBaE3kXr02s4rHU=", + "owner": "nix-darwin", + "repo": "nix-darwin", + "rev": "000eadb231812ad6ea6aebd7526974aaf4e79355", + "type": "github" + }, + "original": { + "owner": "nix-darwin", + "ref": "nix-darwin-25.05", + "repo": "nix-darwin", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1759478543, + "narHash": "sha256-AetDmsj6lkwyEzAhnayQ8wXKkHremjCDqchKhSoAMhE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "cacb0bf08c2f851ec166ec665c777cf9fc542283", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-25.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "agenix": "agenix", + "home-manager": "home-manager_2", + "nix-darwin": "nix-darwin", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..6cd2655 --- /dev/null +++ b/flake.nix @@ -0,0 +1,40 @@ +{ + description = "Example nix-darwin system flake"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-25.05-darwin"; + nix-darwin.url = "github:nix-darwin/nix-darwin/nix-darwin-25.05"; + nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; + home-manager.url = "github:nix-community/home-manager/release-25.05"; + home-manager.inputs.nixpkgs.follows = "nixpkgs"; + agenix.url = "github:ryantm/agenix"; + agenix.inputs.nixpkgs.follows = "nixpkgs"; + }; + + outputs = + inputs@{ + self, + nix-darwin, + home-manager, + nixpkgs, + agenix, + }: + let + macbook = import ./systems/macbook/macbook.nix { + nix-darwin = nix-darwin; + home-manager = home-manager; + self = self; + agenix = agenix; + }; + + selene = import ./systems/selene/system.nix { + agenix = agenix; + }; + in + { + # Build darwin flake using: + # $ darwin-rebuild build --flake .#Maxiems-MacBook-Pro + darwinConfigurations."Maxiems-MacBook-Pro" = macbook; + nixosConfigurations.selene = selene; + }; +} diff --git a/keys/asus.pub b/keys/asus.pub new file mode 100644 index 0000000..0349595 --- /dev/null +++ b/keys/asus.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFdcSzVRG/BHxDx79A3kM5cZ3ZlMipcSorVIpxAJC2xF maxiem@maxiem-asustufgamingf15fx506lhfx506lh \ No newline at end of file diff --git a/keys/google-storage-key b/keys/google-storage-key new file mode 100644 index 0000000000000000000000000000000000000000..b1932842cdd0a21ef4d3af18e680c2ab61b901f8 GIT binary patch literal 2683 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 D(Ipr& literal 0 HcmV?d00001 diff --git a/keys/hetzner.pub b/keys/hetzner.pub new file mode 100644 index 0000000..15105d9 --- /dev/null +++ b/keys/hetzner.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKcfmaqbtwSEydV2hge/aDWxfwlKOw/JJZZWy8ycjojH hetzner@maxiemgeldhof.com \ No newline at end of file diff --git a/keys/jellyfin-key b/keys/jellyfin-key new file mode 100644 index 0000000..3333758 --- /dev/null +++ b/keys/jellyfin-key @@ -0,0 +1,7 @@ +age-encryption.org/v1 +-> ssh-ed25519 gSqcWw 6TUQ5nbQ/j886U3+MNcFFiUN2GZqmRZryFxQsE5eMFI +KO/HfhxCWv3IEdEg+A9pEWYmlM+/YGXIdVe/sw4vpaE +-> ssh-ed25519 lFtjmQ oK6lK9vYjLg/lsUnoxMs6oftFQsSh5U6qkSZoWWrmB8 +rMcN88GFQ8VdxMKVMeJL/gJdrRgdKhs5wHaU2JohD+0 +--- a9kKvgDEZnMMhjuI2XmcAcCXNo3oNpVPCiSHp1ZiYDQ +Knv6&}>B?;a0`J7O(.LV4M9b |]&s5 \ No newline at end of file diff --git a/keys/macbook.priv b/keys/macbook.priv new file mode 100644 index 0000000..2584baf --- /dev/null +++ b/keys/macbook.priv @@ -0,0 +1,7 @@ +age-encryption.org/v1 +-> ssh-ed25519 M7OTMg 1m4v/Xmw+N9+pVrttLG1GnH3LCgJSQOOW6T34cIMq08 +kSwgueUJm4DCjgDdi5OGHnhtMNz1zb5lhyYfVmlYp7M +-> ssh-ed25519 CJLJQg 7zWWonoFKuLQWJaEZGysrGUjcwznXhrbtnpYPULjoWc +MplLAdVbgYTE99pIhFaMGnO+L6n/xL0kgTaVc4J2NKQ +--- jYPfNgq9uBO50jSTrwDJ2M0vrx5iYEf4yiGyy9PCA/o +3ƍϖ2>[y+D[c?1Se:V"X[[b 7iqYZ nԼ2ni"q k`ƃJ:QS٩g~E\Β|=vo}lfȑt[g>;dc1 ?%PX&PH{i-n&&ae$%nJ_i%ue#l zEX^%73emTy%r-YjsqpeC_Vy1;%kfW53N?1FGC{Y^*~`Z(FkQhs(^%UhHO$=0#4jty zza*q0#W15XCDAav%Fm}LBr_{L$ig5sDb33)%!DgcKeEuo+t=4D!!g&WFv-B!u(a4o z+bGc6J2J#5Ke)uTJS4FoC@DL{)Pze{S69I-J<%wz(lOAzpvc`VE7LJKqd3wqv%=6K zDkLvB-_0^F-M}C$BqTc|D4A>D9rM$j&Z`1jzlXB#J2YwSZIw+cpVr2=$J9st=J@S$ zIOlutnm3F1w)dSsbbV|3{vDR(6*6AC4m#zj3$b>~bDO?jpR+*fqE469magrr6$KxY z=h(eD>NL-<`SSa14#BxB`(xMJm0f;N6{_+o)7?w`G1Ht|4hxQWojtjKlETHuU4Qnh z*v;BIAt;!c>34m@mh)ysGxhSE53|~8mlR}uJghR;AzAfT{Nz)Q zUmUqTVgB507Tt*-wlHpu;@t8B3Ob4qHtg6+}p1KVniSPBD6qGEqdJHKP$;ukls z&tCcBpz74CE*sD16*08NoXDR&>7jdGp}Y0p;15~|91KevYCmxorC2f4%~scXTo!Re@>}}+lm5o9i