Compare commits

...
Author SHA1 Message Date
finn.markwitzandClaude Sonnet 5 d219f2b61c feat(mibook): add swapfile and nodejs dev tooling
Add an 8G swapfile for headroom during nix builds (7.7G RAM, no prior
swap) and bring nodejs (bundles npm) into the development profile.
Also picks up latest flake.lock input updates.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C5fRUDLRzDhoKhEqa69cyR
2026-09-21 15:13:03 +02:00
finn.markwitz 5a2a649244 feat: Sops for Jupiter Setup 2026-09-19 18:48:53 +02:00
finn.markwitz 4691eb1aa4 Merge pull request 'Feat/sops nix' (#12) from feat/sops-nix into main
Reviewed-on: #12
2026-09-14 13:06:45 +02:00
finn.markwitz 9dbd6ff71d Merge branch 'main' into feat/sops-nix 2026-09-14 13:06:33 +02:00
finn.markwitz b96d30edd7 config: Futher Poweroptions to deny hibernate 2026-09-03 08:19:07 +02:00
finn.markwitz a7ffcc4648 feat: Enable Claude on Jupiter 2026-09-03 08:18:39 +02:00
finn.markwitz 652630cfe4 config: Jupiter Domain 2026-08-13 17:22:58 +02:00
finn.markwitz abe2431dbb config: Local DNS for Homepage Dashboard 2026-08-13 17:21:08 +02:00
8 changed files with 68 additions and 44 deletions
+7 -5
View File
@@ -1,7 +1,7 @@
keys:
- &admin_finn age1a0v442ct2qfjcdhyktn25spw02yq4fl08plrrvuradwwxzsle4mq8thln4
- &host_mibook age1n3uqtee5ymykrls6k04dznq50cwmj99hw7ny83yxjndt4y2ncf5qhjwa2p
# - &host_jupiter age1... # TODO: Phase 9, see docs/secrets.md
- &host_jupiter age15uxuaxhn2hr4ypmgll36fwnkdkvv6gynvlxuc2p8ek0enmxmr5rsvlq0r2
creation_rules:
- path_regex: ^secrets/mibook\.yaml$
@@ -9,9 +9,11 @@ creation_rules:
- age:
- *admin_finn
- *host_mibook
# - path_regex: ^secrets/jupiter\.yaml$ # TODO: Phase 9
# key_groups:
# - age: [ *admin_finn, *host_jupiter ]
# - path_regex: ^secrets/common\.yaml$ # TODO: Phase 9
- path_regex: ^secrets/jupiter\.yaml$
key_groups:
- age:
- *admin_finn
- *host_jupiter
# - path_regex: ^secrets/common\.yaml$ # TODO: only if/when a secret needs to be shared across both hosts
# key_groups:
# - age: [ *admin_finn, *host_mibook, *host_jupiter ]
Generated
+36 -36
View File
@@ -21,11 +21,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1785627969,
"narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=",
"lastModified": 1788450739,
"narHash": "sha256-glZLQlzIn1fXH6PazR2iUmTo7kzzyYSshrWhLS9TqCU=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a",
"rev": "31729ca8cbdb4fa927b34e5f4353e6a83f39e993",
"type": "github"
},
"original": {
@@ -63,11 +63,11 @@
]
},
"locked": {
"lastModified": 1782949081,
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
"lastModified": 1785627969,
"narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
"rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a",
"type": "github"
},
"original": {
@@ -87,11 +87,11 @@
]
},
"locked": {
"lastModified": 1783008725,
"narHash": "sha256-jGiy6+sxjNWXSjp25uoJuNfyH9zBK1PEDY0lVoL4ibQ=",
"lastModified": 1784288435,
"narHash": "sha256-ReRHaLgr/uVqdD8afFSn+myXIfpHeOhP0yYe0TJqAA8=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "bca82caa46d5ec0f5d422c61fb1e30bc51313cbe",
"rev": "43b3c1ab9d40fb1dbb008f451988a91e375825e9",
"type": "github"
},
"original": {
@@ -113,11 +113,11 @@
"uv2nix": "uv2nix"
},
"locked": {
"lastModified": 1788877844,
"narHash": "sha256-9Ik9egIxYhW/IDw1mz/dYN0IqLTP3bEe+LdEFtP9FWM=",
"lastModified": 1789361774,
"narHash": "sha256-ashkMxyQelHq7T4AcJ0Zwuzm9/jMR3hTCWW+2FPwlDg=",
"owner": "NousResearch",
"repo": "hermes-agent",
"rev": "c8aa5608c24e3636e77c267650c0f1f52e44adb0",
"rev": "5eb99eb2844b22ebb723711b8e6a0bbb80bb5f04",
"type": "github"
},
"original": {
@@ -157,11 +157,11 @@
"nixpkgs-regression": "nixpkgs-regression"
},
"locked": {
"lastModified": 1787274306,
"narHash": "sha256-Qg9f9td5iphUWSQS6zmvyZWO1F+D7j8Z3U6dGyUTg08=",
"lastModified": 1789352761,
"narHash": "sha256-jAcDj4iXkbxa5AlooMRZj7H3E81Cz/q7yN/bX7GPFSU=",
"owner": "NixOS",
"repo": "nix",
"rev": "649e823fb24ed118d72e613be35fa8ea1b64afe7",
"rev": "920f6956361496578b8a97ae04ec5f400d729ab4",
"type": "github"
},
"original": {
@@ -211,11 +211,11 @@
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1787144466,
"narHash": "sha256-HHfv2/HkNSKbbSyU9iD/g8lbP6r4tl33sSw1W4rXCk0=",
"lastModified": 1789127271,
"narHash": "sha256-vL/Fpo7Zxa7wvO8V5FAToUBvP+K3XsMB1wUglTtd/J0=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "0471accf8d0a8210b31d947497d179ecc99e0021",
"rev": "24cfdc1f9344b90a1eee329a3906e2f39f4d0f1e",
"type": "github"
},
"original": {
@@ -226,11 +226,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1783148766,
"narHash": "sha256-H9+N+GFtsbVC8ZniHliChM7ndizxtqVZs6bnGOLM3WQ=",
"rev": "a50de1b7d8a586adc18d2395c19de7d6058e6030",
"lastModified": 1788921488,
"narHash": "sha256-JLopN/XSodSsJIZ7v7tEjpPZ+QXc883s3HoUIxHD8Io=",
"rev": "6aefcda9401be8acc2b74244fb3b37520ea1f0a8",
"type": "tarball",
"url": "https://releases.nixos.org/nixos/26.05/nixos-26.05.4193.a50de1b7d8a5/nixexprs.tar.xz"
"url": "https://releases.nixos.org/nixos/26.05/nixos-26.05.9440.6aefcda9401b/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
@@ -255,11 +255,11 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1785031560,
"narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=",
"lastModified": 1788057806,
"narHash": "sha256-DTQSMxzDWmT0zhguthvegnVkn7CFqGCv4IHCzk5ZUpM=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c",
"rev": "596e2e3940e09b2abbeb03f75fa1828c57fcd72c",
"type": "github"
},
"original": {
@@ -286,11 +286,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1787135253,
"narHash": "sha256-M5/r2v++FjVhdsxXYMb4BDJ5YLAdCWFt3aZotcshocA=",
"rev": "ffb3c9b700e759be2ef13237c9d8f953b32a1e46",
"lastModified": 1789286504,
"narHash": "sha256-3i80JnZ9pZ7tWReb/Sqpc32cfzffCu8TWLnbnH0hN9c=",
"rev": "ef34387ddd751e1ab8857adf4676492d32eb24ec",
"type": "tarball",
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1058091.ffb3c9b700e7/nixexprs.tar.xz"
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1073009.ef34387ddd75/nixexprs.tar.xz"
},
"original": {
"id": "nixpkgs",
@@ -313,11 +313,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1787101114,
"narHash": "sha256-BA7sSNjLDuPGSOYBGpr6WQjke1MQ8AZpJ8GlYZM/mOc=",
"rev": "b18a4b905f8d028dc4476412e6d6891728695379",
"lastModified": 1789114715,
"narHash": "sha256-eeH+/1GxEjw8NCObjaHVIy3YvCQ4Qckrx4LZj5xBaU4=",
"rev": "21a67dc470149f337cecafbe965d8d252a390518",
"type": "tarball",
"url": "https://releases.nixos.org/nixos/26.05/nixos-26.05.8045.b18a4b905f8d/nixexprs.tar.xz"
"url": "https://releases.nixos.org/nixos/26.05/nixos-26.05.9592.21a67dc47014/nixexprs.tar.xz"
},
"original": {
"id": "nixpkgs",
@@ -415,11 +415,11 @@
]
},
"locked": {
"lastModified": 1788337237,
"narHash": "sha256-gkSH8VUtCo6hnysNmb9DbTuDepH2t5pv+QWjP75xKAk=",
"lastModified": 1788914643,
"narHash": "sha256-4GuMPW90JSxXWDPUB9M+1m7fYbe3H0apOd86/zBQ2Kw=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "fbf759290e0cb0a98dfc813a4eb7d53ad1dacb57",
"rev": "13616fff713a9f94055c66f15687ebdc17a335df",
"type": "github"
},
"original": {
+12 -1
View File
@@ -49,11 +49,22 @@
# Try fix wifi disconnect
networking.networkmanager.wifi.powersave = false;
# Disable hibernate completely
# Disable hibernate and suspend completely - this is a headless server.
# The board exposes a phantom ACPI lid switch (PNP0C0D) that fires a
# "closed" event when the HDMI cable is unplugged, which used to trigger
# a real suspend via logind's default HandleLidSwitch=suspend.
powerManagement.enable = true;
systemd.targets."hibernate".enable = false;
systemd.targets."hybrid-sleep".enable = false;
systemd.targets."suspend-then-hibernate".enable = false;
systemd.targets."suspend".enable = false;
systemd.targets."sleep".enable = false;
services.logind.settings.Login = {
HandleLidSwitch = "ignore";
HandleLidSwitchExternalPower = "ignore";
HandleLidSwitchDocked = "ignore";
};
# Optional: kernel parameter to fully disable hibernation
boot.kernelParams = [ "nohibernate" ];
+1
View File
@@ -10,6 +10,7 @@ _: {
};
actual.enable = false;
audiobookshelf.enable = true;
claude-code.enable = true;
kde-desktop.enable = false;
radarr.enable = true;
docker.enable = true;
+1 -1
View File
@@ -4,7 +4,7 @@ _: {
];
networking = {
domain = "jupiter.solar.internal";
domain = "jupiter";
search = [ "jupiter.solar.internal" ];
};
}
+7
View File
@@ -16,6 +16,13 @@
];
networking.hostName = "mibook";
swapDevices = [
{
device = "/var/lib/swapfile";
size = 8 * 1024; # 8G, headroom for nix builds (7.7G RAM, no prior swap)
}
];
boot.loader.grub = {
enable = true;
device = "/dev/nvme0n1";
@@ -21,6 +21,7 @@ in
neovim
# jetbrains.idea-ultimate
go
nodejs # bundles npm
(python3.withPackages (
ps: with ps; [
jupyter # notebooks
+3 -1
View File
@@ -91,10 +91,12 @@ in
};
config = lib.mkIf cfg.enable {
networking.firewall.allowedTCPPorts = [ dashboardPort ];
services.homepage-dashboard = {
enable = true;
listenPort = dashboardPort;
allowedHosts = "${dashboardHost}:${toString dashboardPort},localhost:${toString dashboardPort},127.0.0.1:${toString dashboardPort},jupiter.solar.internal:${toString dashboardPort}";
allowedHosts = "${dashboardHost}:${toString dashboardPort},192.168.178.65:${toString dashboardPort},localhost:${toString dashboardPort},127.0.0.1:${toString dashboardPort},jupiter:${toString dashboardPort},jupiter.solar.internal:${toString dashboardPort}";
bookmarks = import ./bookmarks.nix;
services = homepageServices ++ manualServices;
widgets = config.my.homepage.widgets ++ manualWidgets;