8 puntos por GN⁺ 6 시간 전 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 6 시간 전
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 /oc dentro de un issue de Forgejo para que vuelva con un PR listo para revisar

  • A 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

    • No pasa solo en la industria tecnológica, es algo común. No somos tan originales
    • Yo también lo construí de tres maneras distintas y probé e2b.dev; me pareció un buen servicio.
      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
    • Creo que es porque la gente en tecnología espera que todo sea gratis.
      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 NS muestra EDE: 17 (Filtered)

    • Supongo que podría ser porque el registro es muy reciente. Solo lleva unas 8 horas registrado, y la hora de creación es 2026-06-15 14:01:25 UTC
  • 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”

    • Incluso usando modelos recientes, aunque hay pequeñas partes donde sí ahorran tiempo, en general muchas veces terminaba perdiendo por la enorme depuración causada por sutiles problemas de configuración.
      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

    • Podrían ser 0 dólares. OpenCode es solo un arnés, así que puede conectarse a cualquier modelo alojado en línea
  • 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

    • No lo mencioné en esa parte, pero mientras escribía el post me di cuenta de que sería fácil agregar una skill que llame a la API de PR de Forgejo.
      Lamentablemente, a diferencia de GitHub, Forgejo no tiene CLI