Gitea: Cómo Montar tu Propio Servidor Git en Minutos
- Mauricio ECR
- DevOps
- 04 Apr, 2025
A medida que los proyectos crecen y se diversifican, muchos desarrolladores empiezan a preguntarse si realmente necesitan depender de plataformas como GitHub o GitLab para gestionar su código. No es que esas herramientas estén mal, pero hay escenarios donde una alternativa más simple y autoalojada tiene mucho sentido.
Este artículo no es para convencerte de abandonar nada, sino para mostrarte una opción: Gitea, una plataforma ligera y fácil de montar para tener tu propio servidor Git.
¿Por Qué Considerar Gitea?
Si trabajas en proyectos personales, con un equipo pequeño, o simplemente te interesa aprender a montar tu propia infraestructura, hay algunas razones por las que podrías querer probar Gitea:
- Autonomía: No dependes de servidores externos.
- Simplicidad: La instalación es directa, sin configuraciones complejas.
- Control: Tú decides cómo se almacenan y gestionan los datos.
No es una solución perfecta para todos los casos, pero vale la pena conocerla. A veces lo que uno necesita es justamente eso: algo sencillo que funcione.
Cómo Instalar Gitea con Docker
Una de las formas más rápidas de poner Gitea en marcha es con Docker. Aquí va una guía paso a paso, sin adornos.
1. Crea un directorio para el proyecto
mkdir gitea && cd gitea
2. Crea un archivo docker-compose.yml
version: "3"
services:
server:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
restart: unless-stopped
volumes:
- ./data:/data
ports:
- "3000:3000" # Web
- "2222:22" # SSH
3. Levanta el contenedor
docker-compose up -d
4. Abre el navegador
Accede a http://localhost:3000 y completa la configuración inicial. No toma más de un par de minutos.
Subir un Repositorio a Gitea
Una vez que el servidor está funcionando, puedes empezar a usarlo como cualquier otro servicio Git.
- Crea un nuevo repositorio desde la interfaz web de Gitea.
- En tu máquina local, añade ese repositorio como remoto:
git remote add gitea http://localhost:3000/usuario/repositorio.git
git push -u gitea main
Y eso es todo. Estás trabajando con Git como siempre, pero ahora en tu propio servidor.
🔐 Autenticación por SSH
Subir y clonar repositorios por HTTP está bien para empezar, pero si planeas trabajar frecuentemente con tu servidor Gitea, usar SSH es mucho más seguro y cómodo.
1. Genera tu clave SSH (si no tienes una)
ssh-keygen -t ed25519 -C "[email protected]"
Esto creará dos archivos en ~/.ssh: una clave privada (id_ed25519) y una pública (id_ed25519.pub).
2. Agrega tu clave pública a Gitea
- En la interfaz web de Gitea, ve a “Tu Perfil” > “SSH Keys”
- Pega el contenido de
~/.ssh/id_ed25519.pub
3. Usa el remoto por SSH
Ahora puedes clonar así:
git clone ssh://git@localhost:2222/usuario/repositorio.git
Y también hacer push/pull sin tener que escribir tu contraseña.
⚙️ Integración de CI/CD con Drone
Aunque Gitea no incluye un sistema de CI/CD por defecto, es compatible con herramientas externas como Drone CI. Vamos a ver cómo integrarlo.
Docker Compose con Gitea + Drone
version: '3'
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: always
environment:
- USER_UID=1000
- USER_GID=1000
volumes:
- ./gitea:/data
ports:
- "3000:3000"
- "2222:22"
networks:
- cicd-net
drone:
image: drone/drone:latest
container_name: drone
restart: always
ports:
- "8080:80"
volumes:
- ./drone:/data
environment:
- DRONE_GITEA_SERVER=http://gitea:3000
- DRONE_GITEA_CLIENT_ID=tu-client-id
- DRONE_GITEA_CLIENT_SECRET=tu-client-secret
- DRONE_RPC_SECRET=una-clave-secreta
- DRONE_SERVER_HOST=localhost:8080
- DRONE_SERVER_PROTO=http
- DRONE_USER_CREATE=username:tu-usuario,admin:true
networks:
- cicd-net
networks:
cicd-net:
driver: bridge
Pasos Adicionales
-
Registra una aplicación OAuth en Gitea desde
http://localhost:3000/user/settings/applications.Usa
http://localhost:8080/logincomo Redirect URI. -
Copia el
Client IDyClient Secreten eldocker-compose.yml. -
Levanta los servicios:
docker-compose up -d
- Accede a Drone en
http://localhost:8080y conecta tu cuenta de Gitea. - Agrega un archivo
.drone.ymlen tu repositorio:
kind: pipeline
type: docker
name: default
steps:
- name: test
image: node:18
commands:
- npm install
- npm test
- Activa el repositorio desde la interfaz de Drone.
🧭 Reflexión Final
Gitea es más que una curiosidad para quienes prefieren el control. Es una herramienta real, funcional y mantenida activamente. No está diseñada para reemplazar gigantes, pero sí para darte una alternativa cuando quieres aprender, experimentar o simplemente no depender de nadie más.
Con unos pocos comandos puedes levantar tu propio servidor Git, usar autenticación SSH, y hasta conectar una pipeline de CI/CD.
Y eso, en ciertos contextos, es todo lo que necesitas.