Guía completa de configuración de Gitea+CorredorActionEnLocalhost:GuiaCompletaParaDesarrolladores por Q2BSTUDIO
Si estás cansado de depender de pipelines CI/CD remotos y quieres control total sobre los flujos de trabajo de Gitea en tu máquina local, montar una instancia de Gitea con un Action Runner en localhost es la solución ideal. En esta guía práctica y adaptada para desarrolladores encontrarás desde la preparación de archivos hasta la ejecución de tu primer workflow, con foco en pruebas rápidas, builds multi-plataforma y despliegues a registros locales.
Por qué ejecutar Gitea y un runner en local: respuesta inmediata sin latencia de agentes remotos, entornos privados sin exponer código ni secretos a la nube, y la posibilidad de probar servicios que corren en localhost, webhooks y configuraciones Buildx sin VPN ni túneles. Esto es especialmente útil cuando trabajas con registries Docker autohospedados, microservicios o builds multiplataforma.
Presentación de Q2BSTUDIO: como empresa dedicada al desarrollo de software a medida y aplicaciones a medida, en Q2BSTUDIO ofrecemos soluciones que integran inteligencia artificial, ciberseguridad, servicios cloud AWS y Azure, servicios de inteligencia de negocio y automatización de procesos. Si buscas impulsar productos con agentes IA o dashboards en Power BI, consulta nuestros servicios de desarrollo de aplicaciones a medida y de inteligencia artificial para empresas.
Archivos necesarios y su propósito:
1. token.txt Este archivo contendrá el token de registro del runner. Crea un archivo vacío llamado token.txt y coloca el token que te proporcione tu instancia de Gitea en su interior como <registration-token>. Usar un archivo evita que Docker cree un directorio accidentalmente.
2. config.yml El runner debe alcanzar la instancia de Gitea en tu host, por lo que la configuración mínima debe indicar uso de red host. Un ejemplo conceptual: container: network: host. Esto es crítico para workflows que interactúan con servicios locales como registries Docker o APIs.
3. docker.compose.yml Configura dos servicios principales: gitea y gitea-runner. De forma resumida la composición incluye una red interna, un contenedor gitea con volumen de datos y puertos mapeados 3000:3000, y un contenedor gitea-runner que depende de gitea y monta estos volúmenes: ./token.txt en /token.txt, ./config.yml en /config.yml, ./data/act_runner para persistencia, ./data/cache para cache de acciones y /var/run/docker.sock para controlar Docker del host. Variables de entorno relevantes: CONFIG_FILE con la ruta de config.yml, GITEA_INSTANCE_URL apuntando a https://gitea:3000/ y GITEA_RUNNER_REGISTRATION_TOKEN_FILE apuntando a /token.txt. Reinicio con política on-failure asegura resiliencia.
Por qué monta cada volumen: token.txt para registro seguro; config.yml para usar la red host; data/act_runner para persistir estado entre reinicios; data/cache para acelerar descargas de acciones; /var/run/docker.sock para que el runner pueda ejecutar y construir contenedores en el Docker del host.
Iniciar la plataforma: ejecuta docker compose up -d en la carpeta donde esté el docker.compose.yml. Pega el token de registro en ./token.txt. Reinicia el runner para completar el registro con docker compose restart gitea-runner. Verifica logs con docker logs gitea-runner para confirmar el registro correcto.
Ejemplo simple para probar el flujo: crea un Dockerfile básico con FROM busybox:1.36.1 y CMD [echo Hello world!] para verificar que Buildx y el runner funcionan.
Workflow de ejemplo para Gitea en formato conceptual: name: Workflow Example on: push jobs: Build and push image: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup QEMU uses: docker/setup-qemu-action@v3 - name: Setup Buildx uses: docker/setup-buildx-action@v3 with: driver-opts: network=host - name: Login to registry uses: docker/login-action@v2 with: registry: https://localhost:3000 username: <username> password: <application-token> - name: Build and push uses: docker/build-push-action@v4 with: context: . push: true tags: | localhost:3000/${{ gitea.repository }}:latest localhost:3000/${{ gitea.repository }}:${{ gitea.sha }} Reemplaza <username> y <application-token> por tus credenciales de Gitea o por un token de aplicación.
Buenas prácticas y extensiones: añade más runners para balanceo y pruebas paralelas; conecta registries externos si necesitas despliegues fuera del host; integra servicios locales de backend para probar microservicios; mantén los secrets y tokens versionados fuera del repositorio si es necesario y usa variables de entorno seguras o vaults. Esta arquitectura local te permite experimentar con ciberseguridad y pentesting en entornos controlados antes de mover pipelines a la nube, y facilita el desarrollo de soluciones de inteligencia de negocio o implementaciones con Power BI gracias a ciclos de prueba rápidos.
Palabras clave incluidas para SEO: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi.
Si quieres que desde Q2BSTUDIO te ayudemos a desplegar esta arquitectura, integrar pipelines con tus procesos de desarrollo o diseñar soluciones a medida que incorporen IA y prácticas de ciberseguridad, contáctanos para una consultoría o revisa nuestros servicios de automatización y nube.
Esta guía está pensada para ser práctica y ampliable. Si necesitas ejemplos de docker.compose.yml completos o plantillas de workflows adaptadas a tus repositorios, puedo generarlos y ajustarlos a tus requisitos de seguridad, red y compliance.