Type something to search...
Gitea: Cómo Montar tu Propio Servidor Git en Minutos

Gitea: Cómo Montar tu Propio Servidor Git en Minutos

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.

  1. Crea un nuevo repositorio desde la interfaz web de Gitea.
  2. 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

  1. Registra una aplicación OAuth en Gitea desde
    http://localhost:3000/user/settings/applications.

    Usa http://localhost:8080/login como Redirect URI.

  2. Copia el Client ID y Client Secret en el docker-compose.yml.

  3. Levanta los servicios:

docker-compose up -d
  1. Accede a Drone en http://localhost:8080 y conecta tu cuenta de Gitea.
  2. Agrega un archivo .drone.yml en tu repositorio:
kind: pipeline
type: docker
name: default

steps:
  - name: test
    image: node:18
    commands:
      - npm install
      - npm test
  1. 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.

Related Posts

Desarrollo de Software Implementando Gitflow

Desarrollo de Software Implementando Gitflow

Introducción El desarrollo de software requiere metodologías y flujos de trabajo que permitan un control eficiente del código fuente. Uno de los enfoques más utilizados para la gestión de versiones

Leer más
Observabilidad de Servidores y Contenedores Docker: Una Mirada Práctica con Prometheus, Grafana y cAdvisor

Observabilidad de Servidores y Contenedores Docker: Una Mirada Práctica con Prometheus, Grafana y cAdvisor

En el mundo de la infraestructura moderna, especialmente con la creciente adopción de contenedores y arquitecturas distribuidas, entender qué está sucediendo dentro de nuestros sistemas en tiempo real

Leer más
Implementando Trunk Based Development con Ramas de Vida Corta en Tu Equipo: Una Guía Completa

Implementando Trunk Based Development con Ramas de Vida Corta en Tu Equipo: Una Guía Completa

En el ámbito del desarrollo de software, la elección de una estrategia de versionamiento eficiente y estable es fundamental para el éxito de un equipo. El Trunk Based Development (TBD) tradicional, do

Leer más
Docker: La Revolución que Empaquetó tu Código

Docker: La Revolución que Empaquetó tu Código

En el dinámico mundo del desarrollo y la infraestructura de tecnologías de la información, la necesidad de empaquetar, distribuir y ejecutar aplicaciones de forma consistente ha llevado a la populariz

Leer más
Exploración Profunda de Kubernetes: Componentes Clave y Principios Fundamentales

Exploración Profunda de Kubernetes: Componentes Clave y Principios Fundamentales

En el panorama tecnológico actual, caracterizado por arquitecturas de microservicios y despliegues en la nube, la gestión efectiva de aplicaciones contenedorizadas es un desafío crítico. Kubernetes su

Leer más