Gitea Logo

Gitea: Control de versiones y repositorios local

Compartir

En AEWhite Devs damos gran importancia a la colaboración y la gestión de código. Para tener control total sobre nuestros repositorios, hemos implementado Gitea, una plataforma ligera y open-source de gestión de repositorios Git, similar a GitHub o GitLab, pero 100% autoalojada y optimizada para entornos de homelab y pequeñas organizaciones.

Actualmente trabajamos con la aplicación en su versión v1.24.5 (base v1.3.12), rama community, con documentación y soporte en:


 ¿Qué es Gitea?

Gitea es una forja de repositorios Git autoalojada, desarrollada en Go, enfocada en ser rápida, ligera y fácil de desplegar. Ofrece muchas de las funcionalidades de GitHub/GitLab, pero con menor consumo de recursos.

Con Gitea podemos:

  • 📂 Alojar repositorios Git privados o públicos.

  • 👥 Gestionar usuarios, organizaciones y equipos.

  • 📝 Revisar código con Pull Requests.

  • 🐞 Gestionar incidencias (Issues) y proyectos tipo Kanban.

  • 📊 Visualizar estadísticas de commits y ramas.

  • 🔒 Integrar autenticación externa (LDAP, OAuth, etc.).


 ¿Por qué lo usamos en AEWhite Devs?

En nuestro ecosistema, Gitea se ha convertido en una pieza clave porque:

  • ✅ Centraliza el código de proyectos como mypymecontrol, herramientas.aewhitedevs.com o scripts de administración.

  • ✅ Ofrece un entorno de desarrollo privado y bajo control.

  • ✅ Reduce dependencia de plataformas externas (GitHub/GitLab).

  • ✅ Es muy ligero → perfecto para correr en TrueNAS SCALE o un VPS pequeño.

  • ✅ Integra un sistema de issues que usamos como gestor de tareas.

De esta forma, Gitea no solo aloja repositorios, sino que actúa como plataforma de colaboración interna.


 Instalación de Gitea

🔹 Usando Docker (método recomendado)

Archivo docker-compose.yml:

version: "3"
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- DB_TYPE=sqlite3
- GITEA__server__ROOT_URL=https://git.aewhitedevs.com/
- GITEA__server__DOMAIN=git.aewhitedevs.com
restart: always
volumes:
- ./gitea:/data
ports:
- "3000:3000" # Web UI
- "222:22" # SSH

Levantarlo con:

docker compose up -d

🔹 En TrueNAS SCALE

  1. Instalar Gitea desde el catálogo community.

  2. Crear datasets en ZFS para /data.

  3. Configurar el acceso web (puerto 3000) y SSH (puerto 222).

  4. Publicarlo con Nginx Proxy Manager (git.aewhitedevs.com).


 Configuración inicial

  1. Accede al panel (http://TU_IP:3000).

  2. Crea el usuario administrador.

  3. Define la base de datos (SQLite, MySQL o PostgreSQL).

  4. Configura dominio raíz y URL (git.aewhitedevs.com).

  5. Crea tu primer repositorio y prueba un git push.

Ejemplo:

git remote add origin [email protected]:usuario/proyecto.git
git push -u origin main

 Funciones destacadas

  • Repositorios públicos/privados con control granular.

  • Sistema de Issues y Milestones para gestión de proyectos.

  • Pull Requests y revisión de código.

  • Wiki integrada para documentación por proyecto.

  • Panel de administración completo para usuarios y permisos.

  • Compatibilidad con Webhooks y CI/CD → integración con pipelines externos.


 Consejos de seguridad

  • Activar HTTPS obligatorio (con Let’s Encrypt en Nginx Proxy Manager).

  • Limitar acceso al puerto SSH (222) a IPs confiables o tras túnel Cloudflared.

  • Mantener copias de seguridad regulares de /data.

  • Configurar autenticación en dos pasos (2FA).


 Conclusión

Con Gitea, en AEWhite Devs conseguimos una plataforma de control de versiones ligera, segura y bajo nuestro control, que nos permite gestionar repositorios y colaborar sin depender de servicios externos. Es perfecta para equipos pequeños y homelabs que necesitan una alternativa a GitHub/GitLab sin sacrificar funcionalidades esenciales.

👉 Recursos oficiales:

— El equipo de AEWhite Devs

Si desea seguir conociendo proyectos interesantes como este puede hacerlo en el siguiente enlace: https://blog.aewhitedevs.com/category/proyectos/

Deja un comentario

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *