Home / Guías / Gitea

Su propio servidor Git con Gitea

Gitea es un peso ligero Git service with issues, pull requests and CI hooks — todo lo que esperas, running en unos pocos cientos de megabytes. En un VPS de 6,5 € sirve a todo un equipo.

1. Instalar Docker

apt update && apt install -y docker.io docker-compose-v2 git
systemctl enable --now docker

Full walkthrough including Compose basics: Guía Docker.

2. Archivo Compose

mkdir -p /opt/gitea && cd /opt/gitea
cat > docker-compose.yml <<'EOF'
services:
  db:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: gitea
      POSTGRES_PASSWORD: change-me-db
      POSTGRES_DB: gitea
    volumes:
      - ./db:/var/lib/postgresql/data
  gitea:
    image: gitea/gitea:1
    restart: unless-stopped
    depends_on: [db]
    environment:
      GITEA__database__DB_TYPE: postgres
      GITEA__database__HOST: db:5432
      GITEA__database__NAME: gitea
      GITEA__database__USER: gitea
      GITEA__database__PASSWD: change-me-db
    volumes:
      - ./data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "127.0.0.1:3000:3000"
      - "2222:22"
EOF
docker compose up -d

Tenga en cuenta los enlaces: la interfaz de usuario web escucha sólo en localhost, mientras que SSH para git push está en el puerto 2222. Hacer que el puerto sea accesible — ya sea abierto 2222 en el cortafuegos, o más tarde servir Git sobre HTTPS.

3. HTTPS con Caddy

apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
git.example.com {
    reverse_proxy 127.0.0.1:3000
}
EOF
systemctl reload caddy

Caddy marca un certificado automáticamente. Indique el registro del dominio en el servidor primero, y termine el asistente de configuración en el navegador — la primera cuenta que se registra se convierte en el administrador.

4. Código de empuje

git remote add origin ssh://[email protected]:2222/you/project.git
git push -u origin main

Agregue su llave pública en la configuración de Gitea una vez, y cada empuje después de que sea libre de contraseña.

5. Respaldos que realmente restauran

docker compose exec -u git gitea gitea dump -c /data/gitea/conf/app.ini
# the dump lands in /opt/gitea/data/gitea, then ship it off-site:
restic backup /opt/gitea/data --exclude-caches

El gitea dump comandos agrupa la base de datos, repositorios y configuración en un archivo. Copias fuera del sitio: ver guía de descanso.

Respuestas rápidas

¿Cuánto RAM necesita Gitea?

El contenedor va alrededor de 150–250 MB, PostgreSQL otro 100–200 MB. Un servidor de 2 GB es cómodo para un pequeño equipo; 4 GB si también ejecuta corredores de CI o muchos repositorios grandes.

¿Puedo importar repositorios de GitHub?

Sí. En Gitea elige la nueva migración, pega la URL del repositorio y copia código, problemas y peticiones de tirado. Los repositorios privados necesitan una señal de acceso GitHub.

¿Mi código es seguro en un VPS?

Es tan seguro como su administración del servidor: las teclas SSH, firewall, actualizaciones y los vertederos fuera del sitio cubren los riesgos realistas. Para muchos equipos que es más control que confiar en un tercero con todo.

Gitea plus PostgreSQL fit Buran-2 (€13/mes) con espacio a sobra.

Relacionados