feat(actualbudget): add NixOS guest #42

Merged
alexion merged 1 commits from feat/actualbudget-guest into main 2026-08-11 08:38:42 -04:00
Owner

Summary

  • add an Actual Budget NixOS guest for Pikachu using the built-in services.actual module
  • split the service wrapper, guest definition, and host-specific placement into separate layers
  • attach the guest to VLAN 20 with the existing Actual Budget MAC and /pikachu/data/actualbudget state path
  • fix Pikachu VLAN matching so the tagged VLAN is bridged to the guest instead of configured as a second host uplink

Final configuration shape

  • modules/services/actualbudget.nix: service-level Actual Budget module
  • guests/actualbudget.nix: host-agnostic guest/container definition
  • hosts/pikachu/default.nix: Pikachu-specific VLAN, MAC, limits, and data path

Runtime notes

  • Actual serves plain HTTP on 10.23.20.42:5006
  • Nginx Proxy Manager terminates HTTPS for https://budget.alexion.dev and forwards to Actual over HTTP
  • migrated durable data is only server-files/ and user-files/; old helper config/runtime directories are intentionally not part of the desired state

Validation

  • nix eval .#nixosConfigurations.pikachu.config.warnings
  • nix build .#nixosConfigurations.pikachu.config.system.build.toplevel --no-link

Manual verification

  • Actual guest starts successfully on Pikachu
  • http://10.23.20.42:5006 returns 200 OK
  • https://budget.alexion.dev works through Nginx Proxy Manager after setting the upstream scheme to http
## Summary - add an Actual Budget NixOS guest for Pikachu using the built-in `services.actual` module - split the service wrapper, guest definition, and host-specific placement into separate layers - attach the guest to VLAN 20 with the existing Actual Budget MAC and `/pikachu/data/actualbudget` state path - fix Pikachu VLAN matching so the tagged VLAN is bridged to the guest instead of configured as a second host uplink ## Final configuration shape - `modules/services/actualbudget.nix`: service-level Actual Budget module - `guests/actualbudget.nix`: host-agnostic guest/container definition - `hosts/pikachu/default.nix`: Pikachu-specific VLAN, MAC, limits, and data path ## Runtime notes - Actual serves plain HTTP on `10.23.20.42:5006` - Nginx Proxy Manager terminates HTTPS for `https://budget.alexion.dev` and forwards to Actual over HTTP - migrated durable data is only `server-files/` and `user-files/`; old helper config/runtime directories are intentionally not part of the desired state ## Validation - `nix eval .#nixosConfigurations.pikachu.config.warnings` - `nix build .#nixosConfigurations.pikachu.config.system.build.toplevel --no-link` ## Manual verification - Actual guest starts successfully on Pikachu - `http://10.23.20.42:5006` returns `200 OK` - `https://budget.alexion.dev` works through Nginx Proxy Manager after setting the upstream scheme to `http`
alexion added 1 commit 2026-08-11 08:36:05 -04:00
alexion force-pushed feat/actualbudget-guest from 369f130d65 to 2d43a9853d 2026-08-11 08:36:05 -04:00 Compare
alexion merged commit 2d43a9853d into main 2026-08-11 08:38:42 -04:00
alexion deleted branch feat/actualbudget-guest 2026-08-11 08:38:42 -04:00
This repo is archived. You cannot comment on pull requests.
No Reviewers
No Label
1 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: alexion/dotfiles#42