Commit Graph
100 Commits
Author SHA1 Message Date
finn.markwitzandClaude Sonnet 5 807eea7e4f feat(homepage): add Athena Dashboard link to jupiter's homepage
Hermes Agent's dashboard runs on mibook, but the homepage-dashboard
service only runs on jupiter, so wire it in as a manual cross-host
entry rather than via my.homepage.services (which is scoped per-host
and would be inert on mibook).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sux8hmeb2qadqPqbJ1zNzL
2026-09-10 11:09:48 +02:00
finn.markwitzandClaude Sonnet 5 67973559c0 feat(hermes-agent): expose dashboard on LAN with basic auth
Bind the backend to 0.0.0.0:9119 in dashboard mode so the web UI is
reachable from the local network, open the port in the firewall, and
add dashboard username/password credentials to the mibook hermes-env
secret.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sux8hmeb2qadqPqbJ1zNzL
2026-09-10 10:56:50 +02:00
finn.markwitz c4b29e1e06 feat(mibook): populate Hermes Agent credentials 2026-09-08 21:10:28 +02:00
finn.markwitzandClaude Sonnet 5 0756eb94cd docs: correct spec+plan for self-vs-inputs in imports
The fix subagent found that inputs.hermes-agent.nixosModules.default
inside `imports` causes infinite recursion in this repo's wiring
(inputs comes from _module.args, which merges after imports resolve;
self comes from specialArgs, which is available at import-time).
Tested both ways. Update docs to show self.inputs, matching commit
31e1910.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vbvwg3Qt2u9nbkEA3wL17S
2026-09-08 17:51:31 +02:00
finn.markwitzandClaude Sonnet 5 31e1910d75 fix(mibook): import hermes-agent module from the profile, not machines/configuration.nix
machines/configuration.nix wired hermes-agent.nixosModules.default into
mibook's mibook-only modules list. modules/environments/default.nix is
machine-agnostic, so jupiter still evaluated a
services.hermes-agent = lib.mkIf false { ... } definition for an option it
never declared as existing — NixOS errors on that regardless of mkIf's
condition, breaking nixosConfigurations.jupiter (and the repo's sole CI
job) entirely.

Fix: import the upstream module unconditionally from inside
modules/environments/hermes-agent/default.nix itself, so the option is
declared everywhere modules/environments/default.nix loads, and only ever
turned on where my.profiles.hermes-agent.enable = true (mibook). Also adds
users.users.finn.extraGroups = [ "hermes" ], required for the hermes CLI to
be usable per the corrected design. machines/configuration.nix no longer
mentions hermes-agent.

Deviates from the reconciled spec/plan text in one respect: uses `self`
(from specialArgs) instead of `inputs` (from _module.args) to reach the
flake input inside `imports`. Using `inputs` there reproduced infinite
recursion — NixOS resolves a module's imports before _module.args
assignments are merged, so an import list cannot depend on an arg that
itself comes from config. `self` is available at import-time via
specialArgs, `inputs` is not, in this repo's wiring. See report for detail.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vbvwg3Qt2u9nbkEA3wL17S
2026-09-08 17:50:11 +02:00
finn.markwitzandClaude Sonnet 5 0249aae2ae docs: correct spec+plan per final whole-plan review findings
Final review (opus) found a Critical bug (jupiter's nixosConfigurations
stopped evaluating because hermes-agent.nixosModules.default was wired
through machines/configuration.nix's mibook-only module list, while
the profile module itself is loaded on both machines) plus three
Important gaps: secrets persist to /var/lib/hermes/.hermes/.env, not
/run/secrets; Telegram/Email need explicit ALLOWED_USERS or they're
wide open / silently drop messages; addToSystemPackages's CLI needs
group membership finn didn't have. All four corrected in the docs
here; the actual code fix is a separate dispatched task.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vbvwg3Qt2u9nbkEA3wL17S
2026-09-08 17:44:39 +02:00
finn.markwitzandClaude Sonnet 5 ac32aca351 docs: correct plan's sops build-check assumption
Task 1's implementer found sops.validateSopsFiles makes secret-key
existence a build-time check (via manifest.json.drv), not an
activation-time one as the plan assumed. Corrects Step 10 to reflect
reality rather than leave future readers misled.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vbvwg3Qt2u9nbkEA3wL17S
2026-09-08 17:22:09 +02:00
finn.markwitz 731678ecac feat(mibook): add Hermes Agent profile module 2026-09-08 17:20:40 +02:00
finn.markwitzandClaude Sonnet 5 32e0faa82c chore: ignore .superpowers/ scratch workspace
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vbvwg3Qt2u9nbkEA3wL17S
2026-09-08 17:01:54 +02:00
finn.markwitzandClaude Sonnet 5 a83f7e63a0 docs: implementation plan for Hermes Agent on mibook
Task 1 is agent-executable repo wiring (flake input, profile module,
secret declaration), build-checked with nix build. Tasks 2-5 are an
operator-run runbook: OAuth login, Anthropic billing check, Telegram
bot setup, and typing real secrets into $EDITOR via sops - none of
that is meant to pass through an agent session.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vbvwg3Qt2u9nbkEA3wL17S
2026-09-08 17:00:38 +02:00
finn.markwitzandClaude Sonnet 5 6212b4fcf7 docs: design spec for Hermes Agent on mibook
Locks in host (mibook, not jupiter), deployment mode (NixOS native
module), and auth (claude setup-token / ANTHROPIC_TOKEN, Max extra
credits) after a grilling round. Builds on feat/sops-nix as-is.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vbvwg3Qt2u9nbkEA3wL17S
2026-09-08 16:56:26 +02:00
finn.markwitz 621ca5dde6 docs: sops-nix secrets workflow
Operator runbook for adding a secret, adding a new host, and rotating
keys, plus a pointer from CLAUDE.md's architecture overview.
2026-09-08 15:43:50 +02:00
finn.markwitz a00916864c feat(mibook): decrypt placeholder secret via host age key
Proves the sops-nix pipeline end to end on mibook: encrypts a
throwaway secret to the operator + mibook host keys, declares it in
machines/mibook/secrets.nix, and verifies it decrypts to
/run/secrets/placeholder (root:root, 0400) on nixos-rebuild switch.

Also removes the dead `let secrets = config.sops.secrets;` binding
from both environments.nix files — leftover from an earlier abandoned
plan, never referenced.
2026-09-08 15:43:45 +02:00
finn.markwitz 3ab8bfbb91 feat(sops): add sops-nix input, core module and devShell tooling
Wires sops-nix into every machine via machines/core/sops.nix so hosts
decrypt with their existing SSH host key. Adds a devShell exposing
sops/age/ssh-to-age for the operator workflow, which also fixes .envrc's
previously no-op `use flake`.
2026-09-08 15:43:36 +02:00
finn.markwitz 70deb25080 chore: Flake Update 2026-08-21 10:30:01 +02:00
finn.markwitz ac57abf255 chore: Flake Update 2026-08-11 15:40:07 +02:00
finn.markwitz 83ee518091 Merge pull request 'feat(jupiter): native Immich profile module (docker → NixOS)' (#10) from feat/immich-nixos-module into main
Reviewed-on: #10
2026-08-07 11:13:40 +02:00
finn.markwitzandClaude Opus 4.8 3ee2b1a9d8 feat(immich): declare QSV transcoding via config-file settings
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016e2PKH5yN31h6JgHWCQb32
2026-08-07 11:02:50 +02:00
finn.markwitz e9a5781944 feat(jupiter): add native Immich profile module 2026-08-05 16:39:07 +02:00
finn.markwitzandClaude Opus 4.8 1f8a34d0e8 docs: Immich NixOS module implementation plan
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016e2PKH5yN31h6JgHWCQb32
2026-08-05 16:35:29 +02:00
finn.markwitzandClaude Opus 4.8 1176132627 docs: resolve Immich version check (2.7.5 == stable, no vector migration)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016e2PKH5yN31h6JgHWCQb32
2026-08-05 16:33:53 +02:00
finn.markwitzandClaude Opus 4.8 01b31a3493 docs: Immich docker→NixOS module migration design
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016e2PKH5yN31h6JgHWCQb32
2026-08-05 16:32:46 +02:00
finn.markwitz 28fc71dbbe Merge pull request 'feat: Athena Firewall' (#9) from athena-introduction into main
Reviewed-on: #9
2026-08-05 16:16:31 +02:00
finn.markwitz c7392f2dd9 feat: Athena Firewall 2026-08-05 16:15:49 +02:00
finn.markwitz f5f8e88966 Merge pull request 'revert(mibook): remove boot-time terminal/desktop choice feature' (#7) from revert/mibook-boot-choice into main
Reviewed-on: #7
2026-07-28 15:21:01 +02:00
finn.markwitzandClaude Opus 4.8 bf874d962a revert(mibook): remove boot-time terminal/desktop choice feature
Back out the entire "choose terminal-only vs KDE at boot" work. The first
attempt (default multi-user.target + on-demand desktop) locked mibook out —
it is WiFi-only with credentials in KWallet, so a headless boot has no
network and no SSH. The follow-up specialisation redesign is no longer
wanted either.

mibook returns to plain always-KDE boot (the pre-feature baseline):
- machines/mibook/configuration.nix: drop specialisation.terminal and the
  NetworkManager-wait-online override.
- machines/mibook/environments.nix: drop kde-desktop.startOnBoot.
- modules/environments/kde-desktop/default.nix: drop the startOnBoot option.
- remove the boot-desktop-choice design spec.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S1wvPy5kbGp8pUQX61WBCY
2026-07-28 14:51:31 +02:00
finn.markwitz f01b1f2c4f Merge pull request 'Feat/jellyfin hw transcoding' (#3) from feat/jellyfin-hw-transcoding into main
Reviewed-on: #3
2026-07-27 09:56:11 +02:00
finn.markwitz ff34fe762e Merge pull request 'Feat/mibook boot desktop choice' (#4) from feat/mibook-boot-desktop-choice into main
Reviewed-on: #4
2026-07-27 09:55:47 +02:00
finn.markwitzandClaude Opus 4.8 7e4407a1f8 feat(mibook): boot to terminal, launch KDE on demand
Add my.profiles.kde-desktop.startOnBoot (default true, no change for
existing consumers). When false, boot to multi-user.target, keep SDDM
out of any boot target's wants, and provide a 'desktop' command that
starts the display manager on demand. Enable this on mibook.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CfozKLQdUh5TzqyjSigLUx
2026-07-27 09:48:13 +02:00
finn.markwitzandClaude Opus 4.8 539fb26791 docs: spec for mibook boot-time terminal/desktop choice
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CfozKLQdUh5TzqyjSigLUx
2026-07-27 09:27:37 +02:00
finn.markwitz 79b26ddfda chore: Flake Update 2026-07-24 12:01:15 +02:00
finn.markwitz b8961fb47d Merge pull request 'feat(mibook): do nothing on lid close while on AC power' (#2) from feat/mibook-lid-close-ac into main
Reviewed-on: #2
2026-07-24 11:56:02 +02:00
finn.markwitzandClaude Opus 4.8 4851f745d8 feat(mibook): do nothing on lid close while on AC power
Ship a system-wide PowerDevil default (/etc/xdg/powerdevilrc) setting the
AC lid-close action to "do nothing" (LidAction=0). Battery behavior is left
at the default (suspend).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KbZoyXq6J8v2eqC9yn5Vcy
2026-07-21 17:42:47 +02:00
finn.markwitz 59b5cfb47c chore: Flake update 2026-07-20 11:08:47 +02:00
finn.markwitz a8364f21ca chore: Flake update 2026-07-14 17:33:45 +02:00
finn.markwitz f135c1646f Merge pull request 'feat(home-assistant): add Apple TV and Tuya integrations' (#1) from feat/ha-appletv-tuya-irrigation into main
Reviewed-on: #1
2026-07-05 12:15:22 +02:00
finn.markwitz 763253693c chore: Flake Update 2026-06-27 15:28:11 +02:00
finn.markwitz b6f4bb7955 chore: Flake Update 2026-06-23 16:55:42 +02:00
finn.markwitz 74d65a0d75 Revert "chore: flake update"
This reverts commit 85bd12778a.
2026-06-15 11:55:29 +02:00
finn.markwitz 85bd12778a chore: flake update 2026-06-15 11:51:59 +02:00
finn.markwitz d9565448b9 Merge branch 'feature/ha-zbt-2-thread' into 'master'
feat(home-assistant): enable ZHA for ZBT-2 Zigbee dongle

See merge request finn.markwitz/nixos!18
2026-06-09 06:38:56 +00:00
finn.markwitz af2655f9e2 Merge branch 'master' into 'feature/ha-zbt-2-thread'
# Conflicts:
#   machines/mibook/configuration.nix
2026-06-09 06:37:07 +00:00
finn.markwitz 6d0684610e chore: Flake Update 2026-06-09 08:28:11 +02:00
finn.markwitz 17c3a3189f chore(NixOS Version): Update to 26.05 2026-06-09 08:16:08 +02:00
finn.markwitz 18d1ce711d chore(HA): Removed uneccessary Unstable Overlay import 2026-06-09 08:10:45 +02:00
finn.markwitz cbdb42f333 chore: Flake Update 2026-06-01 10:02:27 +02:00
finn.markwitzandClaude Sonnet 4.6 b44775e3e5 docs: add CLAUDE.md with repo architecture and development commands
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 12:34:24 +02:00
finn.markwitz 1444912326 config: Disable Prime Sync MiBook 2026-05-17 14:23:55 +02:00
finn.markwitz 098e632405 chores: Update Flake 2026-05-10 14:40:22 +02:00
finn.markwitz ede28c8bb4 Merge branch 'home-assistant-matter' into 'master'
fix: enable mobile_app integration in HA config

See merge request finn.markwitz/nixos!15
2026-05-05 11:37:32 +00:00
finn.markwitz db1f44c4ea Merge branch 'feature/homepage-widgets' into 'master'
Feature/homepage widgets

See merge request finn.markwitz/nixos!14
2026-05-05 11:27:44 +00:00
finn.markwitz df05fe451e feature/homepage widgets 2026-05-05 11:27:44 +00:00
finn.markwitz eb21cb998f Merge branch 'feature/homepage-icons' into 'master'
feat: add homepage icons and Home Assistant entry

See merge request finn.markwitz/nixos!13
2026-04-22 09:55:34 +00:00
finn.markwitz 004f04eca5 Merge branch 'homeassistant' into 'master'
Homeassistant

See merge request finn.markwitz/nixos!11
2026-04-20 14:08:40 +00:00
finn.markwitz 4296dda7f8 Merge branch 'nvidia' into 'master'
feat(Hardware): Nvidia GPU Support

See merge request finn.markwitz/nixos!9
2026-04-20 14:07:05 +00:00
finn.markwitz ca1fa3810b Merge branch 'feature/dashboard' into 'master'
Feature/dashboard

See merge request finn.markwitz/nixos!10
2026-04-20 14:03:38 +00:00
finn.markwitz 93a36dbf2b chore(flake): Updates 2026-04-07 15:54:33 +02:00
finn.markwitz dc65b044cf feat(Nvidia): PRIME Sync 2026-02-12 16:07:30 +01:00
finn.markwitz 3ce8459904 feat(Nvidia): PRIME Sync 2026-02-09 13:35:00 +01:00
finn.markwitz 78f540a776 feat(Hardware): Nvidia GPU Support 2026-02-09 13:34:48 +01:00
finn.markwitz 9757b987bb feat: Zed Editor 2026-02-09 13:34:43 +01:00
finn.markwitz f833439e0f feat: MiBook Config Update 2026-02-09 13:34:25 +01:00
finn.markwitz e1ea5b03dc chore: Flake Update 2026-01-08 16:37:52 +01:00
finn.markwitz 9de69b7dcc config: Home-Assistant 2026-01-08 16:27:46 +01:00
finn.markwitz 9974bd49ac refactor(Home-Assistant): module naming 2026-01-08 16:24:28 +01:00
finn.markwitz b300f39c03 feat: Homeassistant 2026-01-08 16:22:24 +01:00
finn.markwitz 64eedeaac9 Merge branch '25-11-update' into 'master'
Draft: chore(OS Update): 25.11

See merge request finn.markwitz/nixos!8


chore: Replaced scikitlearn with scikit-learn
chore: removed gitAndTools
chore: Flake Update
chore: Replaced vaapiVdpau with libva-vdpau-driver
chore: Update Nixpkgs to 25.11
2026-01-05 18:53:52 +00:00
finn.markwitz 97633af170 chore(OS Update): 25.11
chore: Replaced scikitlearn with scikit-learn
chore: removed gitAndTools
chore: Flake Update
chore: Replaced vaapiVdpau with libva-vdpau-driver
chore: Update Nixpkgs to 25.11
2026-01-05 18:53:52 +00:00
finn.markwitz 39263f65f9 chore(Update): Flake 2025-11-17 20:55:11 +01:00
finn.markwitz a1e0dc499e Merge branch 'kernel-modules-troubleshoot' into 'master'
Kernel modules troubleshoot

See merge request finn.markwitz/nixos!7
2025-10-27 07:40:23 +00:00
finn.markwitz 24a211330a Kernel modules troubleshoot 2025-10-27 07:40:22 +00:00
finn.markwitz 6f84bdefb4 Merge branch 'moonlight' into 'master'
feat: Moonlight Setup & OS Update

See merge request finn.markwitz/nixos!5
2025-08-12 20:24:57 +00:00
finn.markwitz 49371f2e2b feat: fwupd 2025-08-12 21:54:20 +02:00
finn.markwitz b802659462 feat: Nixos 25.05 2025-06-17 22:10:21 +02:00
finn.markwitz 256fdc850b feat: Updated Drive IDs for new M2 SSD 2025-03-24 13:00:39 +01:00
finn.markwitz ce4e8225f9 feat: Tailscale VPN Setup 2025-02-18 20:53:02 +01:00
finn.markwitz dc2abe6ff1 refactor: Formatting 2025-02-07 22:13:20 +01:00
finn.markwitz c3f4470f80 refactor: Apps & Development 2025-02-07 22:01:18 +01:00
finn.markwitz c407e1e9ee config: Swap to KDE 2025-02-04 21:05:49 +01:00
finn.markwitz 6e73e9362d config: Hyprland & Ghostty 2025-02-04 21:03:49 +01:00
finn.markwitz 1fefc23c1b update: Flake 2025-01-28 23:46:50 +01:00
finn.markwitz 2b13f15711 fix: Development Env 2025-01-28 23:45:58 +01:00
finn.markwitz 514ee3c137 feat: Developent Environment 2025-01-28 23:32:53 +01:00
finn.markwitz 325ce5969c feat: Sensors, SystemCTL TUI & Headset Options 2025-01-28 23:26:24 +01:00
finn.markwitz 2945601aa3 fix: Hyprland & Update 2025-01-28 23:25:38 +01:00
finn.markwitz b15fe38d2f feat: Logitech Drivers 2025-01-16 11:57:05 +01:00
finn.markwitz 495f1a0645 Merge branch 'master' of ssh://gitlab.smoothcloud.de:2222/finn.markwitz/nixos 2025-01-04 11:46:15 +01:00
finn.markwitz bb238e3369 Merge branch 'master' of ssh://gitlab.smoothcloud.de:2222/finn.markwitz/nixos 2025-01-04 11:45:37 +01:00
finn.markwitz fa72edfc05 config: Hyprland Desktop 2025-01-04 11:45:29 +01:00
finn.markwitz d8341c3e38 config: Hyprland Desktop 2025-01-04 11:42:25 +01:00
finn.markwitz 204c358cea feat: Moonlight-qt 2025-01-04 11:38:12 +01:00
finn.markwitz 7c6dc43a41 Merge branch 'kde-desktop' into 'master'
feat: kde-desktop

See merge request finn.markwitz/nixos!4
2025-01-04 10:20:39 +00:00
finn.markwitz 76955ad6b3 config: disable desktop 2024-12-12 20:13:53 +01:00
finn.markwitz 74f1471bb9 update: 24.11 - flake 2024-12-10 21:59:47 +01:00
finn.markwitz 619c6c6ed4 Merge remote-tracking branch 'origin/kde-desktop' into kde-desktop
# Conflicts:
#	flake.nix
2024-12-10 19:30:40 +01:00
finn.markwitz 6086ace431 test: nix-pkg: 24.11 2024-12-10 19:27:22 +01:00
finn.markwitz c300b55e8f Config: KDE-Desktop with VS Code enabled 2024-10-28 20:54:51 +01:00
finn.markwitz 232fa2ead9 test: disable Paperless, since docker service is more stable 2024-09-30 22:53:25 +02:00
finn.markwitz 97981637a3 feat: Disable Powersaving 2024-08-14 19:04:10 +02:00
finn.markwitz af2d9af641 feat: Enable Readarr 2024-07-21 21:58:25 +02:00