Commit Graph
495 Commits
Author SHA1 Message Date
Ryan Yin 6f100d94a9 feat(gh): persist user-managed configuration 2026-08-04 17:45:24 +08:00
Ryan Yin cce15300d6 feat(niri): reorganize workspaces 2026-08-03 22:42:37 +08:00
Ryan Yin 6264190c49 fix(idols-ai): reset camera after resume 2026-08-01 10:04:22 +08:00
Ryan Yin 41512097e5 feat(grafana): add kubernetes service and storage dashboards 2026-07-31 17:34:52 +08:00
Ryan Yin 071212e40f feat(niri): reorganize workspace layout 2026-07-31 12:06:27 +08:00
Ryan Yin 64ecc1cf66 fix(grafana): scope hwmon joins to selected node 2026-07-27 20:57:10 +08:00
Ryan Yin 095dc5dee8 feat(desktop): enable the firewall on desktop machines
Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2026-07-26 22:26:01 +08:00
Ryan Yin 74598b6f6b chore(monitoring): stop scraping offline hosts, mute noisy alert levels
- Add an offlineHosts list to VictoriaMetrics scrape generation: SBCs
  and the whole k3s-prod-1 cluster are powered off, shoukei's exporter
  is disabled on the machine; also comment out the dnsmasq-exporter
  job (runs on suzi).
- Disable node-exporter on shoukei: a laptop on untrusted networks
  should not expose :9100 (the firewall is off repo-wide).
- Route severity none|info alerts to the null receiver; meta alerts
  and info noise should never page.

Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2026-07-26 22:19:56 +08:00
Ryan Yin ec208ab4d1 fix(monitoring): exclude shm from HostFilesystemDeviceError
node-exporter always reports device_error=1 for containerd sandbox shm
bind mounts (tmpfs), producing ~50 bogus critical alerts on the
kubevirt hosts. Verified against live metrics that no non-shm device
errors exist, so nothing real is filtered out.

Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2026-07-26 15:28:41 +08:00
Ryan Yin 21c6d9b7bc fix(monitoring): drop $vars from telegram template to survive envsubst
The NixOS alertmanager module pipes the generated config through
envsubst to inject secrets, which silently replaced the template's
$i/$a variables with empty strings, so every telegram notification
failed with a template parse error since Friday's deploy.

Rewrite the template without variables: range + dot, define/template
for the per-alert block, and an if/else split to cap a group at 5
alerts (slice errors when fewer than 5). Verified with amtool template
render against post-envsubst content for both branches.

Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2026-07-26 15:16:46 +08:00
Ryan Yin b6a7a8f49b feat(monitoring): restructure telegram alert template for readability
- Show group-level labels (alertgroup/cluster/env/namespace) once in
  the header instead of repeating them per alert.
- Use each rule's summary annotation as the per-alert headline (it
  already carries the distinguishing resource name), falling back to
  the instance label; show nodename on its own line when present.
- Drop the noisy per-alert label dump and the always-N/A value line.

Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2026-07-24 22:57:13 +08:00
Ryan Yin 35d41a4391 fix(monitoring): bound telegram message length and mute meta alerts
- Trim the telegram template: drop the full label dump, render at
  most 5 alerts per group, and note how many were omitted, so
  messages stay within Telegram's 4096-char limit.
- Route severity=none meta alerts (Watchdog, InfoInhibitor) to a new
  null receiver so they no longer notify.

Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2026-07-24 20:57:54 +08:00
Ryan Yin 149d8bc137 feat(monitoring): add UPS reference lines and alerts
fix(grafana): clarify UPS voltage references

Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2026-07-24 20:13:11 +08:00
Ryan Yin 8a0e1a648f feat(grafana): add UPS monitoring dashboard 2026-07-24 16:25:25 +08:00
Ryan Yin bae7e05a9a fix(aquamarine): remove insecure MinIO service 2026-07-24 15:07:49 +08:00
Ryan Yin 3550c6af2a feat(monitoring): collect homelab UPS metrics 2026-07-24 12:44:17 +08:00
Ryan Yin dda800f65d chore: preserve kimi-code data 2026-07-17 10:45:55 +08:00
Ryan Yin ac7755e5ee chore: add kimi-code 2026-07-17 10:39:53 +08:00
Ryan Yin c44aa91e96 chore: preserve bambu studio's data 2026-07-10 13:07:05 +08:00
Ryan Yin 0e5f1801cf feat(nixos): add orca-slicer
Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2026-06-25 22:19:14 +08:00
Ryan YinandGitHub cfc192afc4 feat: replace vscode with zed-editor (#263)
* feat: replace vscode with zed-editor
* docs: helix
2026-06-04 23:20:59 +08:00
Ryan Yin bea4f7cf06 chore: add llm agents & helix for ruby/kana/akane
Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2026-06-03 15:48:03 +08:00
Ryan Yin 27e2fb0df0 fix: remove unused pipx 2026-06-01 10:34:02 +08:00
Ryan YinandGitHub 662316c18a Nixos 26.05 (#261)
* flake.lock: Update

Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/7aaa00e7cc9be6c316cb5f6617bd740dd435c59d?narHash=sha256-WacE23EbHTsBKvr8cu%2B1DFNbP6Rh1brHUH5SDUI0NQI%3D' (2026-04-30)
  → 'github:NixOS/nixpkgs/e9a7635a57597d9754eccebdfc7045e6c8600e6b?narHash=sha256-u6WU/yd/o8iYQrHX3RAwO1hYa3LkoSL%2BWNQD0rJfJZQ%3D' (2026-05-29)

* feat: upgrade to nixos 26.05
2026-06-01 10:02:49 +08:00
Ryan Yin 9eb532a461 chore: remove kimi-cli, add opencode permission template 2026-05-29 08:38:00 +08:00
Ryan Yin 7c286099b6 chore: remove gemini-cli 2026-05-20 16:15:48 +08:00
Ryan Yin 495ed3f938 chore: remove aagl, run them via steam+dw-proton instead
Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2026-05-10 12:42:02 +08:00
Ryan Yin 77ca37eab1 chore: idols-ai - update kernel, add nvidia-offload command, etc 2026-04-27 10:38:57 +08:00
Ryan YinandGitHub 306741c2a7 feat: idols-ai - use intel intel iGPU by default, choose Nvidia dGPU manullay - via prime (#258)
* feat: idols-ai - use intel intel iGPU by default, choose Nvidia dGPU manullay - via prime

* fix: niri - update output names for new motherboard

* fix: niri - DP-1 with prime offload mode - supports only 120HZ

* flake.lock: Update

Flake lock file updates:

• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/3879e47ce293fb2932d656aa56551a8e80718533?narHash=sha256-siN4x7y/S0FOdjPC1W0Z/vrX4Rlu%2BVClkEGngmSd0vM%3D' (2026-03-24)
  → 'github:nixos/nixpkgs/03de9fe87cb2dcec8da9dbaa3ad1c71ea7fef223?narHash=sha256-B7GmxbRADkklyXzV1ahgY4QhCpbQ3crzPCCs2hf6bPM%3D' (2026-04-26)

* flake.lock: Update

Flake lock file updates:

• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/e9f278faa1d0c2fc835bd331d4666b59b505a410?narHash=sha256-Jms57zzlFf64ayKzzBWSE2SGvJmK%2BNGt8Gli71d9kmY%3D' (2026-03-14)
  → 'github:nixos/nixpkgs/a4bf06618f0b5ee50f14ed8f0da77d34ecc19160?narHash=sha256-AIiMJiqvGrN4HyLEbKAoCSRRYn0rnlW5VbKNIMIYqm4%3D' (2026-04-25)
2026-04-27 02:33:51 +08:00
Ryan Yin 3a6a75c703 feat: helix - use stable version 2026-04-27 00:40:49 +08:00
Ryan Yin f398c44307 chore: homelab - use proxyGateway's dns service 2026-03-26 13:33:40 +08:00
Ryan Yin d2590d3653 chore: docker for ruby/kana 2026-03-26 13:06:52 +08:00
Ryan Yin f373f5ee5b feat(nixos): add cursor-cli/claude-code/gemini-cli/opencode 2026-03-24 12:20:47 +08:00
Ryan Yin 914239487c feat(nixos): add cursor-cli 2026-03-24 10:45:20 +08:00
Ryan Yin 8207ccbdff refactor(home): consolidate host home modules under home/hosts 2026-03-23 12:38:55 +08:00
Ryan Yin cf7b5a5be7 refactor(home): move host home-manager configs out of hosts 2026-03-23 10:57:09 +08:00
Ryan Yin 8b4e922e5b feat(networking): move tailscale subnet router to kubevirt-youko 2026-03-23 10:34:51 +08:00
Ryan Yin 7f6759ce06 chore: comment out netbird, migrate back to tailscale 2026-03-23 10:00:49 +08:00
Ryan Yin f5444150ef feat: agents 2026-03-21 20:54:40 +08:00
Ryan Yin 73363d5ca8 chore: disabe sunshine 2026-03-20 23:25:45 +08:00
Ryan Yin 0c23a823c6 feat(shoukei): reduce size limit for root tmpfs 2026-03-20 22:49:21 +08:00
Ryan Yin 6a03dddcbd feat: add size limit for root tmpfs 2026-03-20 18:27:41 +08:00
Ryan Yin 4db8d0d2cb fix: persist ~/Desktop 2026-03-20 18:10:57 +08:00
Ryan Yin 3e3365f51f fix: aqua - fileshare permission 2026-03-20 01:27:49 +08:00
Ryan Yin be9be72aff chore: preserve davfs2 driver's cache to avoid large memory usage 2026-03-20 00:31:44 +08:00
Ryan Yin 2f777ff38f polish: style 2026-03-20 00:02:14 +08:00
Ryan YinandGitHub b143a89443 feat(ai): add webdav mount (#253)
feat(aquamarine): add group for filesharing, protect /data on subvolume mount failures
2026-03-19 22:25:48 +08:00
Ryan YinandGitHub ce99c3e2d3 Update aqua (#252)
* fix: Grafana's secret key doesn't have a default value anymore

flake.lock: Update

Flake lock file updates:

• Updated input 'mysecrets':
    'git+ssh://git@github.com/ryan4yin/nix-secrets.git?ref=refs/heads/main&rev=cfe34c222cf7ee4290438c97e6cc734aa7792346&shallow=1' (2025-12-18)
  → 'git+ssh://git@github.com/ryan4yin/nix-secrets.git?ref=refs/heads/main&rev=86de5313787257806723f03dccabd52bb7501ff3&shallow=1' (2026-03-18)

* fix: gitea sendmail path

* fix: transmission_4
2026-03-19 01:02:42 +08:00
Ryan Yin 4b5a7b1be7 fix: macbook do not have a tpm2 device for luks auto unlock
Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2026-03-18 22:47:45 +08:00
Ryan YinandGitHub f6aa45aa00 feat: idols-ai - add new data disk via disko (#250)
feat: luks automatic unlock via tpm2 chip for all physical hosts
feat: enable login manager
fix: Rename network interface config back following hardware change
2026-03-18 22:26:08 +08:00