Compare commits
8 Commits
f222c3b595
...
eed5c14a25
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eed5c14a25 | ||
|
|
8982916aee | ||
|
|
87ec047d20 | ||
|
|
8be6a841d0 | ||
|
|
bfc57081b8 | ||
|
|
edb394c95c | ||
|
|
5d3491ecec | ||
|
|
871a270a21 |
@@ -49,6 +49,7 @@
|
||||
./system-modules/postgres.nix
|
||||
./system-modules/nx2site/proxy.nix
|
||||
./system-modules/nx2site/audiobookshelf.nix
|
||||
./system-modules/nx2site/copyparty.nix
|
||||
./system-modules/nx2site/gitea.nix
|
||||
./system-modules/nx2site/open-web-calendar.nix
|
||||
./system-modules/nx2site/radicale.nix
|
||||
|
||||
204
flake.lock
generated
204
flake.lock
generated
@@ -20,11 +20,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752743471,
|
||||
"narHash": "sha256-4izhj1j7J4mE8LgljCXSIUDculqOsxxhdoC81VhqizM=",
|
||||
"lastModified": 1753216019,
|
||||
"narHash": "sha256-zik7WISrR1ks2l6T1MZqZHb/OqroHdJnSnAehkE0kCk=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "aquamarine",
|
||||
"rev": "e31b575d19e7cf8a8f4398e2f9cffe27a1332506",
|
||||
"rev": "be166e11d86ba4186db93e10c54a141058bdce49",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -33,6 +33,25 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"copyparty": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755732626,
|
||||
"narHash": "sha256-qLAElW0E2QmcrKAbLPjFdueAOpjp3HmlxaOQf4R4jas=",
|
||||
"owner": "9001",
|
||||
"repo": "copyparty",
|
||||
"rev": "cd8771fa522d1cf645c3c7e0193f07b53d81559c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "9001",
|
||||
"repo": "copyparty",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"locked": {
|
||||
"lastModified": 1731098351,
|
||||
@@ -51,11 +70,11 @@
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -118,6 +137,21 @@
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1678901627,
|
||||
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_3"
|
||||
},
|
||||
@@ -186,11 +220,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753592768,
|
||||
"narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=",
|
||||
"lastModified": 1755776884,
|
||||
"narHash": "sha256-CPM7zm6csUx7vSfKvzMDIjepEJv1u/usmaT7zydzbuI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "fc3add429f21450359369af74c2375cb34a2d204",
|
||||
"rev": "4fb695d10890e9fc6a19deadf85ff79ffb78da86",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -216,11 +250,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749155331,
|
||||
"narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=",
|
||||
"lastModified": 1753964049,
|
||||
"narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprcursor",
|
||||
"rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80",
|
||||
"rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -245,11 +279,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752149140,
|
||||
"narHash": "sha256-gbh1HL98Fdqu0jJIWN4OJQN7Kkth7+rbkFpSZLm/62A=",
|
||||
"lastModified": 1754305013,
|
||||
"narHash": "sha256-u+M2f0Xf1lVHzIPQ7DsNCDkM1NYxykOSsRr4t3TbSM4=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprgraphics",
|
||||
"rev": "340494a38b5ec453dfc542c6226481f736cc8a9a",
|
||||
"rev": "4c1d63a0f22135db123fc789f174b89544c6ec2d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -268,17 +302,17 @@
|
||||
"hyprlang": "hyprlang",
|
||||
"hyprutils": "hyprutils",
|
||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"pre-commit-hooks": "pre-commit-hooks",
|
||||
"systems": "systems",
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753634783,
|
||||
"narHash": "sha256-Rl/voNjvcQH6E1vi4wNt5AY6CWaYkqfnkpm9GxrqKGg=",
|
||||
"lastModified": 1755781160,
|
||||
"narHash": "sha256-8pOPsz8kMppCZa9HdvjxH/kB6DIdlpXXBcuNGLMZfSM=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "c63d0003a1e5155248695f19778f815a8ad34c67",
|
||||
"revCount": 6317,
|
||||
"rev": "50a242f16abfc49efc6f89ea9cd14a3544888a25",
|
||||
"revCount": 6384,
|
||||
"submodules": true,
|
||||
"type": "git",
|
||||
"url": "https://github.com/hyprwm/Hyprland"
|
||||
@@ -306,11 +340,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753028264,
|
||||
"narHash": "sha256-GbfsRZWW5uBAOeddLkmrYV2XmAbI0etVUTBXFH5thcw=",
|
||||
"lastModified": 1755183521,
|
||||
"narHash": "sha256-wrP8TM2lb2x0+PyTc7Uc3yfVBeIlYW7+hFeG14N9Cr8=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-plugins",
|
||||
"rev": "14f9a444793d6dd78c29033acf9c3c974ded708d",
|
||||
"rev": "c1ddebb423acc7c88653c04de5ddafee64dac89a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -399,11 +433,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750371812,
|
||||
"narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=",
|
||||
"lastModified": 1753819801,
|
||||
"narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qtutils",
|
||||
"rev": "b13c7481e37856f322177010bdf75fccacd1adc8",
|
||||
"rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -428,11 +462,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750371198,
|
||||
"narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=",
|
||||
"lastModified": 1753622892,
|
||||
"narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b",
|
||||
"rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -449,11 +483,11 @@
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753590784,
|
||||
"narHash": "sha256-Q30DFlPwD1ZK52TD4wSnqDO5gk9Kvifr923siI8AdVQ=",
|
||||
"lastModified": 1754887838,
|
||||
"narHash": "sha256-npC+H+Wl60EdrV75sjqm+bbbLbKgCCGn4ALSM0B2OWA=",
|
||||
"owner": "KZDKM",
|
||||
"repo": "Hyprspace",
|
||||
"rev": "a847f1d6a7326395d17fe9b6b4ab63a10eb152eb",
|
||||
"rev": "2b61fd2115262243b03aa9afe8dfd8a78e71636c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -474,11 +508,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752252310,
|
||||
"narHash": "sha256-06i1pIh6wb+sDeDmWlzuPwIdaFMxLlj1J9I5B9XqSeo=",
|
||||
"lastModified": 1754481650,
|
||||
"narHash": "sha256-6u6HdEFJh5gY6VfyMQbhP7zDdVcqOrCDTkbiHJmAtMI=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprutils",
|
||||
"rev": "bcabcbada90ed2aacb435dc09b91001819a6dc82",
|
||||
"rev": "df6b8820c4a0835d83d0c7c7be86fbc555f1f7fd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -517,7 +551,7 @@
|
||||
"crane": "crane",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
@@ -539,14 +573,14 @@
|
||||
"nixos-wsl": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_3",
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753642709,
|
||||
"narHash": "sha256-J/xPmOfKRX/4UtBIVa5qkKuwN6FrHQBmo5bIPmcPeck=",
|
||||
"lastModified": 1755261305,
|
||||
"narHash": "sha256-EOqCupB5X5WoGVHVcfOZcqy0SbKWNuY3kq+lj1wHdu8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NixOS-WSL",
|
||||
"rev": "e1e0999d45ba66d2d66ac061c27ce680814d14b1",
|
||||
"rev": "203a7b463f307c60026136dd1191d9001c43457f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -558,27 +592,26 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1752687322,
|
||||
"narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=",
|
||||
"lastModified": 1748162331,
|
||||
"narHash": "sha256-rqc2RKYTxP3tbjA+PB3VMRQNnjesrT0pEofXQTrMsS8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251",
|
||||
"rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-25.05",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs-latest": {
|
||||
"locked": {
|
||||
"lastModified": 1753644334,
|
||||
"narHash": "sha256-b7OuvvF9XEe5ms/7Uaq3g4fkmbLhQeP2b+weAjnciXE=",
|
||||
"lastModified": 1755792360,
|
||||
"narHash": "sha256-Bp9mBVrO0c6EDGBXH4jWE+IlEf+FW+jJDSoFuf+ncg8=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6a56b14976d469a9f943400698244a4c1a4c1608",
|
||||
"rev": "dac37fbcd385fbb0ea1e6d153673f62b5f4e0079",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -606,11 +639,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1753429684,
|
||||
"narHash": "sha256-9h7+4/53cSfQ/uA3pSvCaBepmZaz/dLlLVJnbQ+SJjk=",
|
||||
"lastModified": 1755615617,
|
||||
"narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7fd36ee82c0275fb545775cc5e4d30542899511d",
|
||||
"rev": "20075955deac2583bb12f07151c2df830ef346b4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -620,6 +653,22 @@
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1754725699,
|
||||
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1731919951,
|
||||
"narHash": "sha256-vOM6ETpl1yu9KLi/icTmLJIPbbdJCdAVYUXZceO/Ce4=",
|
||||
@@ -635,13 +684,13 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1751792365,
|
||||
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
|
||||
"lastModified": 1754725699,
|
||||
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
|
||||
"rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -651,13 +700,13 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1753345091,
|
||||
"narHash": "sha256-CdX2Rtvp5I8HGu9swBmYuq+ILwRxpXdJwlpg8jvN4tU=",
|
||||
"lastModified": 1755704039,
|
||||
"narHash": "sha256-gKlP0LbyJ3qX0KObfIWcp5nbuHSb5EHwIvU6UcNBg2A=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "3ff0e34b1383648053bba8ed03f201d3466f90c9",
|
||||
"rev": "9cb344e96d5b6918e94e1bca2d9f3ea1e9615545",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -666,7 +715,7 @@
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1752596105,
|
||||
"narHash": "sha256-lFNVsu/mHLq3q11MuGkMhUUoSXEdQjCHvpReaGP1S2k=",
|
||||
@@ -692,11 +741,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750779888,
|
||||
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
|
||||
"lastModified": 1754416808,
|
||||
"narHash": "sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef+6fRcofA=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
|
||||
"rev": "9c52372878df6911f9afc1e2a1391f55e4dfc864",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -734,13 +783,14 @@
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"copyparty": "copyparty",
|
||||
"home-manager": "home-manager",
|
||||
"hyprland": "hyprland",
|
||||
"hyprland-plugins": "hyprland-plugins",
|
||||
"hyprspace": "hyprspace",
|
||||
"lanzaboote": "lanzaboote",
|
||||
"nixos-wsl": "nixos-wsl",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"nixpkgs-latest": "nixpkgs-latest",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"sops-nix": "sops-nix",
|
||||
@@ -796,11 +846,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752544651,
|
||||
"narHash": "sha256-GllP7cmQu7zLZTs9z0J2gIL42IZHa9CBEXwBY9szT0U=",
|
||||
"lastModified": 1754988908,
|
||||
"narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "2c8def626f54708a9c38a5861866660395bb3461",
|
||||
"rev": "3223c7a92724b5d804e9988c6b447a0d09017d48",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -882,11 +932,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751300244,
|
||||
"narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=",
|
||||
"lastModified": 1753633878,
|
||||
"narHash": "sha256-js2sLRtsOUA/aT10OCDaTjO80yplqwOIaLUqEe0nMx0=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a",
|
||||
"rev": "371b96bd11ad2006ed4f21229dbd1be69bed3e8a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -897,16 +947,16 @@
|
||||
},
|
||||
"yazi": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": "nixpkgs_6",
|
||||
"rust-overlay": "rust-overlay_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753610773,
|
||||
"narHash": "sha256-M5SPkMK1ySSXEXEMJEcSgrHZlaBhIJeYMbFdO6q5IFc=",
|
||||
"lastModified": 1755740452,
|
||||
"narHash": "sha256-4C6tuLUdt2ohMPthPMT2Ma+vbn/y7Qz5qfZXVXcb+08=",
|
||||
"owner": "sxyazi",
|
||||
"repo": "yazi",
|
||||
"rev": "0e3cd8545c07e79d7cf1f58632c87cc14faa16d6",
|
||||
"rev": "0054cf0b878bae84d1bf0c063801dc9c42aa6978",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
56
flake.nix
56
flake.nix
@@ -2,28 +2,30 @@
|
||||
description = "Multisystem NixOS Flake of Lennart J. Kurzweg";
|
||||
|
||||
inputs = {
|
||||
nixpkgs = { url = "nixpkgs/nixos-25.05"; };
|
||||
nixpkgs-unstable = { url = "nixpkgs/nixos-unstable"; };
|
||||
nixpkgs-latest = { url = "github:nixos/nixpkgs?ref=master"; };
|
||||
nixpkgs = { url = "nixpkgs/nixos-25.05"; };
|
||||
nixpkgs-unstable = { url = "nixpkgs/nixos-unstable"; };
|
||||
nixpkgs-latest = { url = "github:nixos/nixpkgs?ref=master"; };
|
||||
|
||||
home-manager = { url = "github:nix-community/home-manager/release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
home-manager = { url = "github:nix-community/home-manager/release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
|
||||
nixos-wsl = { url = "github:nix-community/NixOS-WSL/main"; };
|
||||
nixos-wsl = { url = "github:nix-community/NixOS-WSL/main"; };
|
||||
|
||||
sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
lanzaboote = { url = "github:nix-community/lanzaboote/v0.4.2"; };
|
||||
sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
lanzaboote = { url = "github:nix-community/lanzaboote/v0.4.2"; };
|
||||
|
||||
hyprland = { url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; };
|
||||
hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; inputs.hyprland.follows = "hyprland"; };
|
||||
hyprspace = { url = "github:KZDKM/Hyprspace"; inputs.hyprland.follows = "hyprland"; };
|
||||
hyprland = { url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; };
|
||||
hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; inputs.hyprland.follows = "hyprland"; };
|
||||
hyprspace = { url = "github:KZDKM/Hyprspace"; inputs.hyprland.follows = "hyprland"; };
|
||||
|
||||
yazi = { url = "github:sxyazi/yazi"; };
|
||||
yazi = { url = "github:sxyazi/yazi"; };
|
||||
copyparty = { url = "github:9001/copyparty"; };
|
||||
};
|
||||
|
||||
outputs = { ... }@inputs: with inputs; let
|
||||
|
||||
system = "x86_64-linux";
|
||||
config = { allowUnfreePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) (import ./flake-modules/allowed.nix).unfree; };
|
||||
simple-pkgs = import nixpkgs { inherit system; };
|
||||
config = { allowUnfreePredicate = pkg: builtins.elem (simple-pkgs.lib.getName pkg) (import ./flake-modules/allowed.nix).unfree; };
|
||||
|
||||
hyper-base = rec {
|
||||
inherit system;
|
||||
@@ -34,31 +36,31 @@
|
||||
pkgs-version = "25.05";
|
||||
};
|
||||
|
||||
pkgs = import nixpkgs {
|
||||
my-pkgs = host: import nixpkgs {
|
||||
inherit system config;
|
||||
overlays = [
|
||||
(final: prev: {
|
||||
unstable = import nixpkgs-unstable { inherit system config; };
|
||||
latest = import nixpkgs-latest { inherit system config; };
|
||||
version = "25.05";
|
||||
})
|
||||
];
|
||||
overlays = [(final: prev: {
|
||||
unstable = import nixpkgs-unstable { inherit system config; };
|
||||
latest = import nixpkgs-latest { inherit system config; };
|
||||
version = "25.05";
|
||||
})] ++ (if host == "NxACE" then [
|
||||
copyparty.overlays.default
|
||||
] else []);
|
||||
};
|
||||
|
||||
nvidia-base = import ./flake-modules/nvidia.nix;
|
||||
secrets = import ./git-crypt/secrets.nix;
|
||||
rice = import ./flake-modules/rice.nix pkgs;
|
||||
rice = import ./flake-modules/rice.nix simple-pkgs;
|
||||
in {
|
||||
nixosConfigurations = let
|
||||
make-nixos-system = host: nvidia-settings: nixpkgs.lib.nixosSystem {
|
||||
inherit pkgs;
|
||||
pkgs = my-pkgs host;
|
||||
modules = [ ./configuration.nix ];
|
||||
specialArgs = let
|
||||
hyper = hyper-base // { inherit host; nvidia = (nvidia-base // nvidia-settings); };
|
||||
in { inherit inputs hyper rice secrets; };
|
||||
};
|
||||
make-nixos-wsl-system = host: nixpkgs.lib.nixosSystem {
|
||||
inherit pkgs;
|
||||
pkgs = my-pkgs host;
|
||||
modules = [ ./nixos-wsl.nix ];
|
||||
specialArgs = let
|
||||
hyper = hyper-base // { inherit host; };
|
||||
@@ -73,18 +75,18 @@
|
||||
|
||||
homeConfigurations = let
|
||||
make-home-configuration = host: user: nvidia-settings: home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
pkgs = my-pkgs host;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = let
|
||||
hyper = hyper-base // { inherit host; nvidia = nvidia-base // nvidia-settings; };
|
||||
in { inherit pkgs inputs hyper rice secrets; };
|
||||
in { inherit inputs hyper rice secrets; };
|
||||
};
|
||||
make-shell-configuration = host: user: home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
pkgs = my-pkgs host;
|
||||
modules = [ ./shell-only.nix ];
|
||||
extraSpecialArgs = let
|
||||
hyper = hyper-base // { inherit host; };
|
||||
in { inherit pkgs inputs hyper rice secrets; };
|
||||
in { inherit inputs hyper rice secrets; };
|
||||
};
|
||||
in {
|
||||
"${hyper-base.user}@NxXPS" = make-home-configuration "NxXPS" hyper-base.user { enable = true; prime = true; };
|
||||
|
||||
@@ -20,22 +20,21 @@ def replace_campus_timezone(directory):
|
||||
with open(filepath, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
|
||||
if 'TZID:Europe/Berlin' in content or 'TZID="Europe/Berlin"' in content:
|
||||
# Remove VTIMEZONE block for CampusNetZeit (optional depending on needs)
|
||||
# Use a regex if multiple VTIMEZONE blocks may exist
|
||||
start_idx = content.find('BEGIN:VTIMEZONE')
|
||||
end_idx = content.find('END:VTIMEZONE', start_idx)
|
||||
if start_idx != -1 and end_idx != -1:
|
||||
content = content[:start_idx] + content[end_idx + len('END:VTIMEZONE\n'):]
|
||||
start_idx = content.find('BEGIN:VTIMEZONE')
|
||||
end_idx = content.find('END:VTIMEZONE', start_idx)
|
||||
if start_idx != -1 and end_idx != -1:
|
||||
content = content[:start_idx] + content[end_idx + len('END:VTIMEZONE\n'):]
|
||||
|
||||
# Replace all TZID references
|
||||
content = content.replace('TZID:Europe/Berlin', 'TZID:Europe/Berlin')
|
||||
content = content.replace('TZID="Europe/Berlin"', 'TZID="Europe/Berlin"')
|
||||
# Replace all TZID references
|
||||
content = content.replace('TZID:CampusNetZeit', 'TZID:Europe/Berlin')
|
||||
content = content.replace('TZID=CampusNetZeit', 'TZID=Europe/Berlin')
|
||||
content = content.replace('TZID:"CampusNetZeit"', 'TZID:"Europe/Berlin"')
|
||||
content = content.replace('TZID="CampusNetZeit"', 'TZID="Europe/Berlin"')
|
||||
|
||||
with open(filepath, 'w', encoding='utf-8') as f:
|
||||
f.write(content)
|
||||
with open(filepath, 'w', encoding='utf-8') as f:
|
||||
f.write(content)
|
||||
|
||||
print(f"Updated time zone in: {filename}")
|
||||
print(f"Updated time zone in: {filename}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) != 2:
|
||||
|
||||
@@ -19,48 +19,35 @@
|
||||
enableFishIntegration = true;
|
||||
defaultCacheTtlSsh = min2sec 60;
|
||||
defaultCacheTtl = min2sec 30;
|
||||
# pinentryPackage = pkgs.pinentry-curses;
|
||||
pinentry = {
|
||||
package = pkgs.pinentry;
|
||||
program = "pinentry";
|
||||
};
|
||||
extraConfig = ''
|
||||
allow-loopback-pinentry
|
||||
'';
|
||||
};
|
||||
|
||||
home.file.".gnupg/gpg.conf".text = ''
|
||||
# Use AES256, 192, or 128 as cipher
|
||||
personal-cipher-preferences AES256 AES192 AES
|
||||
# Use SHA512, 384, or 256 as digest
|
||||
personal-digest-preferences SHA512 SHA384 SHA256
|
||||
# Use ZLIB, BZIP2, ZIP, or no compression
|
||||
personal-compress-preferences ZLIB BZIP2 ZIP Uncompressed
|
||||
# Default preferences for new keys
|
||||
default-preference-list SHA512 SHA384 SHA256 AES256 AES192 AES ZLIB BZIP2 ZIP Uncompressed
|
||||
# SHA512 as digest to sign keys
|
||||
cert-digest-algo SHA512
|
||||
# SHA512 as digest for symmetric ops
|
||||
s2k-digest-algo SHA512
|
||||
# AES256 as cipher for symmetric ops
|
||||
s2k-cipher-algo AES256
|
||||
# UTF-8 support for compatibility
|
||||
charset utf-8
|
||||
# No comments in messages
|
||||
no-comments
|
||||
# No version in output
|
||||
no-emit-version
|
||||
# Disable banner
|
||||
no-greeting
|
||||
# Long key id format
|
||||
keyid-format 0xlong
|
||||
# Display UID validity
|
||||
list-options show-uid-validity
|
||||
verify-options show-uid-validity
|
||||
# Display all keys and their fingerprints
|
||||
with-fingerprint
|
||||
# Display key origins and updates
|
||||
#with-key-origin
|
||||
# Cross-certify subkeys are present and valid
|
||||
require-cross-certification
|
||||
# Disable caching of passphrase for symmetrical ops
|
||||
no-symkey-cache
|
||||
# Output ASCII instead of binary
|
||||
armor
|
||||
# Enable smartcard
|
||||
# use-agent
|
||||
use-agent
|
||||
pinentry-mode loopback
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
lib.mkIf (hyper.host != "NxACE")
|
||||
{
|
||||
# home.packages = with pkgs; [
|
||||
# obs-studio
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
brightnessctl
|
||||
blueman
|
||||
fontpreview
|
||||
gtk3
|
||||
gsettings-desktop-schemas
|
||||
imv
|
||||
pavucontrol
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -23,7 +23,8 @@ from ics import Calendar
|
||||
import requests
|
||||
|
||||
def filter_events(events):
|
||||
return [event for event in events if ("LR" in event.name) or ("TBD" in event.name)]
|
||||
return [event for event in events if ("LR" in event.name)]
|
||||
# return [event for event in events if ("LR" in event.name) or ("TBD" in event.name)]
|
||||
|
||||
def fetch_and_save_ical_events(ical_urls, save_path):
|
||||
"""
|
||||
|
||||
44
system-modules/nx2site/copyparty.nix
Normal file
44
system-modules/nx2site/copyparty.nix
Normal file
@@ -0,0 +1,44 @@
|
||||
{ config, pkgs, ... }@all: with all; {
|
||||
imports = [ inputs.copyparty.nixosModules.default ];
|
||||
config = {
|
||||
sops.secrets."nx2site/copyparty/user-password/${hyper.user}".owner = "copyparty";
|
||||
environment.systemPackages = with pkgs; [ copyparty ];
|
||||
services.copyparty = {
|
||||
enable = true;
|
||||
package = pkgs.copyparty;
|
||||
openFilesLimit = 8192;
|
||||
settings = {
|
||||
i = [ "0.0.0.0" "unix:770:copyparty:/dev/shm/party.sock" ];
|
||||
p = [ 3210 3211 ];
|
||||
no-reload = true;
|
||||
ignored-flag = false;
|
||||
shr = "/shares";
|
||||
css-browser = "https://nx2.site/copyparty/extra-browser.css";
|
||||
theme = 6;
|
||||
xff-hdr = "X-Forwarded-For"; # so that cpp knows the real client ip behind nginx. Must match with nginx config
|
||||
rproxy = 1;
|
||||
no-robots = true;
|
||||
};
|
||||
accounts = {
|
||||
"${hyper.user}" = {
|
||||
passwordFile = config.sops.secrets."nx2site/copyparty/user-password/${hyper.user}".path;
|
||||
};
|
||||
};
|
||||
volumes = {
|
||||
"/" = {
|
||||
path = "/srv/copyparty/root";
|
||||
access = {
|
||||
"A" = "${hyper.user}";
|
||||
};
|
||||
flags = {
|
||||
fk = 4; # url password length
|
||||
scan = 60; # scan interval in seconds
|
||||
e2d = true; # volflag "e2d" enables the uploads database
|
||||
d2t = true; # "d2t" disables multimedia parsers (in case the uploads are malicious)
|
||||
nohash = "\.iso$"; # skips hashing file contents if path matches *.iso
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
};
|
||||
};
|
||||
users.users."nginx" = {
|
||||
extraGroups = [ "nginx" "acme" ];
|
||||
extraGroups = [ "nginx" "acme" "copyparty" ];
|
||||
useDefaultShell = false;
|
||||
linger = true;
|
||||
home = "/var/nginx/";
|
||||
@@ -65,6 +65,14 @@
|
||||
statusPage = false;
|
||||
streamConfig = ""; # udp config
|
||||
validateConfigFile = true;
|
||||
upstreams = {
|
||||
"partysock" = {
|
||||
servers."unix:/dev/shm/party.sock".fail_timeout = "1s";
|
||||
extraConfig = /* nginx */ ''
|
||||
keepalive 1;
|
||||
'';
|
||||
};
|
||||
};
|
||||
virtualHosts = let
|
||||
vh = {
|
||||
kTLS = true;
|
||||
@@ -186,10 +194,41 @@
|
||||
# proxyWebsockets = true;
|
||||
# }; };
|
||||
# };
|
||||
"file.${hyper.domain}" = { # copyparty
|
||||
listen = dl;
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations = {
|
||||
"/" = {
|
||||
proxyPass = "http://partysock";
|
||||
proxyWebsockets = true;
|
||||
extraConfig = /* nginx */ ''
|
||||
proxy_redirect off;
|
||||
# disable buffering (next 4 lines)
|
||||
# proxy_http_version 1.1; # this is set by nixos
|
||||
client_max_body_size 0;
|
||||
proxy_buffering off;
|
||||
proxy_request_buffering off;
|
||||
# improve download speed from 600 to 1500 MiB/s
|
||||
proxy_buffers 32 8k;
|
||||
proxy_buffer_size 16k;
|
||||
proxy_busy_buffers_size 24k;
|
||||
|
||||
proxy_set_header Connection "Keep-Alive";
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
# NOTE: with cloudflare you want this X-Forwarded-For instead:
|
||||
#proxy_set_header X-Forwarded-For $http_cf_connecting_ip;
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
"~^(.*).${hyper.domain}$" = {
|
||||
listen = dl;
|
||||
root = "/var/nginx/webroot";
|
||||
locations = { "~.*" = { return = "301 https://${hyper.domain}/502.html"; }; };
|
||||
locations."~.*".return = "502";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user