Skip to content

Bazzite — sobremesa de juegos + rol (bajo demanda)

192.168.0.141 · RTX 3080 (10 GB VRAM) · 31 GB RAM · Bazzite (Fedora inmutable, bazzite-nvidia-open:stable) · SSH monxas/alfagann

Desde 2026-07-26 bazzite es una máquina normalmente apagada que se enciende sola cuando hace falta. AudioMuse-AI ya no vive aquí (migrado a VM 208 — ver música), así que nada del stack de música depende de que esté encendida.

Qué corre aquí

Servicio Cómo arranca Para qué
koboldcpp (koboldcpp.service, user+linger) Solo al boot Motor LLM (Rocinante-X 12B) para SillyTavern. Aparca ~7,8 GB en VRAM
SillyTavern (podman) Solo al boot rol.monxas.casa (CF Access solo-owner)
Steam / juegos Manual Gaming en el salón

Cómo se usa (TL;DR)

  • Rol: entra a rol.monxas.casa y ya. Si el PC está apagado, verás "Encendiendo Rol…" ~1 minuto (wake-on-demand genérico: la petición dispara un Wake-on-LAN) y la página se recarga sola en SillyTavern.
  • Jugar: enciéndelo desde HA (botón de encendido del dashboard "Ordenadores", que hace WoL) o con el botón físico. Luego activa Modo juego en HA: para koboldcpp y libera los 7,8 GB de VRAM. Al terminar, desactiva Modo juego (recarga el modelo) o simplemente apágalo.
  • Apagar: desde HA (apagado vía agente MQTT), o sudo systemctl poweroff por SSH, o el botón. Apagado > suspensión: NVIDIA+suspend en Linux es frágil (la VRAM puede no sobrevivir), el arranque completo tarda ~1 min y el wake-on-demand está verificado sobre apagado total (S5).
  • Auto-apagado nocturno: input_boolean.bazzite_auto_apagado_nocheON desde 2026-07-26 (ya sin AudioMuse no hay razón para dejarlo encendido de noche). Si se queda encendido sin uso, HA lo apaga en modo Noche.

Wake-on-demand (genérico, no solo rol)

La petición a un vhost cuya máquina está apagada cae al waker de la VM 208 (wake-on-demand.service, :8477), que enruta por el header Host, emite el magic packet (cooldown 20 s/máquina) y sirve la página de espera con auto-refresh. Cuando el servicio responde, Caddy vuelve solo al camino normal.

  • Config: 208:/home/monxas/scripts/wake-on-demand.json (máquinas: MAC, broadcast, ETA de boot; servicios: host → máquina). Ejemplo comentado dentro.
  • Caddy (ambos LXC + repo ansible/roles/caddy_lxc/files/Caddyfile.full-routing): dentro del vhost, import wake_on_demand <ip:puerto-backend>.
  • Gotcha del snippet: dial_timeout 2s es obligatorio — sin él, el timeout ARP (~3 s) contra una máquina apagada agota lb_try_duration y Caddy devuelve 502 sin llegar al waker.
  • Añadir un servicio nuevo: entrada en el JSON + systemctl restart wake-on-demand (208) + el import en su vhost + sincronizar el Caddyfile vivo al repo (el rol Ansible lo despliega y machacaría el drift).

Integración con Home Assistant

Agente MQTT propio (24 entidades por discovery): GPU (uso, VRAM, temperatura), estado de koboldcpp/SillyTavern/rol operativo, "jugando"/"listo para jugar", encendido (WoL) y apagado, Modo juego (libera VRAM), auto-apagado nocturno y auto-recargar IA. Todo en el dashboard "Ordenadores" (pestaña Bazzite). Las entidades salen unavailable con el PC apagado — es lo esperado.

Gotchas

  • koboldcpp puede morir con core-dump si algo más pelea por la VRAM (pasó 2026-07-25 con los workers GPU de AudioMuse; ya no aplica tras la migración, pero si vuelve a pasar: systemctl --user restart koboldcpp con la GPU libre).
  • El wsl-ai:2222 del ssh config del Mac está obsoleto: es [email protected]:22.
  • Sistema inmutable: los cambios de SO van por rpm-ostree y se aplican al reiniciar; verlo consumir CPU un rato tras el boot es el chequeo rutinario.
  • Suspensión: evitar (ver arriba). Si alguna vez se suspende y rol se queda raro al despertar, reiniciar koboldcpp.