- Para gestionar los servicios del homelab, añadí acceso a Git en OpenCode Web UI y armé un flujo donde la IA hace cambios, luego se revisan en un PR y GitOps los despliega
- Unas 12 pilas de docker compose se movieron a Arcane para administrarlas con GitOps, y se usan herramientas de IA para el mantenimiento de servicios
- Antes, al actualizar contenedores, revisar notas de lanzamiento, verificar breaking changes y hacer comprobaciones manuales tomaba horas; ahora leo resúmenes de notas de lanzamiento en pocos minutos y actualizar versiones es más fácil y seguro
- OpenCode corre como servidor y ofrece terminal, explorador de archivos, Git diff y git worktree, además de sincronizar sesiones de código persistentes entre varios dispositivos
- La IA no puede acceder directamente a los servicios reales y solo puede hacer push a ramas de Git, así que el código no revisado no llega a desplegarse
Flujo de gestión del homelab
- Le di acceso a Git a OpenCode Web UI para facilitar la gestión del homelab, y cuando OpenCode hace push de cambios a Git, una persona aprueba el PR y luego GitOps despliega los cambios
- OpenCode corre como servidor, y las sesiones de código persistentes se sincronizan entre varios dispositivos
- Los servicios administrados son unas 12 pilas de docker compose, que recientemente se movieron a Arcane para gestionarlas y desplegarlas con GitOps
- El primer caso de uso de las herramientas de IA fue la actualización de contenedores
- Antes había que buscar las notas de lanzamiento de cada servicio, revisar breaking changes, ejecutar la actualización y comprobar manualmente los problemas de cada servicio
- Este proceso tomaba varias horas, pero ahora leer resúmenes de notas de lanzamiento toma pocos minutos y actualizar versiones se volvió más fácil y seguro
- También se usó IA para añadir healthcheck a la mayoría de los contenedores, lo que permite detectar problemas más rápido
OpenCode
- Usaba principalmente Claude Code, pero como los proveedores de IA están reduciendo el valor para los clientes con límites de tokens, empecé a buscar otras opciones
- La herramienta que quería era un entorno de programación que no dependiera de un proveedor específico y que fuera compatible con los plugins principales
- Después de probar varios entornos de programación, elegí OpenCode, y fue la herramienta que más me gustó entre las opciones que probé
- Que OpenCode tuviera un servidor web integrado y una web UI fue lo que dio pie a la idea de una plataforma de desarrollo con IA para el homelab
Plataforma de desarrollo con IA
- Creé una VM simple en el host de Truenas con herramientas básicas de desarrollo y añadí el servidor web de OpenCode como una unidad de systemd
- Este entorno ofrece terminal integrada, explorador de archivos, Git diff y soporte para git worktree, así que permite gestionar varias sesiones de programación al mismo tiempo
- La web UI móvil de OpenCode me gustó mucho, sobre todo la ventana emergente de preguntas y respuestas
- Al servidor Git le asigné un usuario dedicado para OpenCode y una clave SSH dedicada
- OpenCode puede clonar proyectos y hacer push a ramas
- No puede hacer push directo a la rama de despliegue
- El flujo de trabajo coloca a la IA antes de la revisión del PR: OpenCode redacta los cambios y una persona hace el merge directamente desde el PR
- Esta estructura evita que se despliegue código no revisado
- La VM puede acceder a internet y al servidor Git, pero no a los servicios reales
- Como el alcance del impacto es pequeño, consideré aceptable darle a OpenCode privilegios de root en la VM cuando necesita instalar herramientas de compilación o dependencias de prueba
- Esta estructura puede ampliarse hacia una plataforma de desarrollo para producción en forma de contenedores temporales para desarrolladores, con herramientas preinstaladas, barreras de acceso y registros de auditoría
- La configuración actual ofrece las funciones necesarias sin tener demasiados componentes
Workflow
- El flujo de trabajo básico empieza con una etapa de planificación de funciones o mejoras en OpenCode
- La planificación incluye especificación, plan de implementación y auto-revisión
- Cuando es posible, se prueban o validan los cambios
- Lo que no convence se ajusta de forma iterativa con OpenCode
- OpenCode hace push de los cambios a una rama de funcionalidad
- Se abre un PR con esa rama y, si todo está bien, se hace merge del PR
- Después del merge, GitOps se encarga del despliegue
- Arcane maneja los cambios en servicios docker
- El plugin de GitOps maneja los cambios de configuración de Home Assistant
- El worker de Cloudflare Pages maneja los cambios del blog
Combinación de Arcane GitOps y OpenCode
- Moví los servicios de Truenas a un proyecto de Arcane GitOps, y el objetivo principal era gestionar en un repositorio basado en Git todas las pilas de docker compose que corrían en Truenas
- Al sumar OpenCode, este enfoque funcionó mejor de lo esperado
- Ahora puedo actualizar desde el teléfono la red de todos los contenedores, y administrar configuraciones dispersas se volvió mucho más fácil
- Antes, revisar todas las pilas de compose y seguir las conexiones de red tomaba horas
- Ahora basta con indicar a OpenCode la base de código y el objetivo, revisar los cambios generados en el PR y luego hacer merge
Limitaciones restantes y control de acceso
- El hueco más grande que queda es la retroalimentación de CI
- En GitHub, los agentes de programación pueden ver los registros de Actions y diagnosticar pruebas fallidas, errores del linter, stack traces y cambios en planes de IaC
- Este enfoque ayuda a mantener un ciclo de retroalimentación rápido incluso para cambios que las pruebas unitarias no alcanzan a cubrir
- En Forgejo, este flujo es más difícil
- Forgejo Actions no expone los registros de trabajos a través de una API pública
- Existe una API no documentada, pero no quiero basar la configuración en ella
- La configuración actual permite que la IA prepare cambios en la infraestructura del hogar desde cualquier dispositivo sin poder acceder directamente a los servicios objetivo
- Puedo empezar un cambio en la computadora, revisar el PR en el teléfono y dejar que GitOps se encargue del despliegue
1 comentarios
Comentarios de Hacker News
Sigo buscando una forma de integrar la IA que encaje con mi entorno. Por ahora no hay interacción entre Forgejo y el agente de programación, y también probé el runner de Forgejo Actions, pero la gestión del contexto era ambigua.
Puede tomar lo que hay en un issue o un PR, pero si hay varios intercambios o la discusión pasa del issue al PR, se pierde claridad muy rápido
Estoy haciendo algo parecido, pero en lugar de un servidor opencode persistente uso un flujo de trabajo que ejecuta opencode dentro de un runner de acciones de Forgejo: https://codeberg.org/dragonfyre13/forgejo-opencode
Todavía lo estoy puliendo, pero la idea es invocar Opencode con
/ocdentro de un issue de Forgejo para que vuelva con un PR listo para revisarA veces da la impresión de que en la industria tecnológica mucha gente pasa por cosas muy parecidas casi al mismo tiempo de forma independiente, pero muy poca las escribe o las comparte.
Yo también estoy construyendo un sistema parecido, y me alegró ver en el post y los comentarios que todos estamos pasando por el mismo proceso
El problema es que usamos el 99% del tiempo en hackear cosas geniales y solo el 1% en hablar de ellas. Hay que hablar más
Estaba hablando con un abogado y cuando ya casi se acababa el tiempo quise hacer “una pregunta más”, y el abogado me dijo: “agenda otros 30 minutos y hablamos de eso”. Me pareció justo
Estaba buscando motivación para escribir sobre mi laboratorio de IA, y este post fue justo el empujón que necesitaba.
Mi configuración también sigue una idea parecida, pero usa n8n/git/argo/k3s y está enfocada sobre todo en flujos de automatización que Qwen o Gemma4 puedan manejar
Me pregunto si alguien sabe por qué este dominio está bloqueado por el resolver de Quad9. Quad9 filtra el dominio y no puedo abrir el sitio web.
El resultado de
dig @9.9.9.9 rsgm.dev NSmuestraEDE: 17 (Filtered)Las dos razones principales por las que todavía no uso esta configuración son los recursos que tendría que darle a la VM que ejecuta opencode para compilar el proyecto, y hacer pruebas más rápido.
Yo ejecuto pi coding agent directamente en mi Mac, junto con todo el paquete de software como redis, postgres y kratos. Si el agente de programación corre en mi máquina principal de desarrollo, puedo compilar más rápido y comprobar cambios antes, por ejemplo recompilando y reiniciando solo el backend y luego probando enseguida los cambios desde el cliente de UI
Yo también estoy haciendo algo muy parecido. Ejecuto OpenCode en un Proxmox LXC y encima le agregué una capa de Kimaki para integrarlo con Discord.
Te guste o no, puedes chatear con tu base de código y, si te va ese estilo, hasta mandar mensajes de voz, lo cual está bastante bueno
Excelente. El home lab con IA suena como algo que se va a poner muy divertido.
Ahora mismo hago que Claude administre mi home lab en todos mis equipos, y eso hizo que tener y mantener un home lab pasara de ser “una trampa fascinante que nunca termina de funcionar del todo y te consume tiempo durante años” a “una idea realmente buena que amplía mis capacidades”
Está bien para tareas muy acotadas como “hazme un archivo docker compose” o “dame una configuración de NSD”, pero incluso ahí ya tienes que saber qué tecnologías base necesitas y qué es lo que debes preguntar
Se ve bastante bien una configuración donde le agregas acceso a Git a OpenCode Web UI para facilitar la gestión del home lab, y luego OpenCode hace push a Git, yo apruebo el PR y GitOps despliega los cambios.
Pero antes de leer, me pregunto si para hacer algo parecido hacen falta miles de dólares para conseguir RAM y GPU
Nosotros también hacemos algo parecido, pero dejando que el agente también pueda abrir PR, y usamos el sistema ReARM para rastrear metadatos de release y sesiones del agente.
Hace poco también lanzamos una opción para que el agente rastree despliegues basados en Helm mediante ReARM: https://docs.rearmhq.com/workflows/devops.html
Lamentablemente, a diferencia de GitHub, Forgejo no tiene CLI