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.
apt update && apt install -y docker.io docker-compose-v2 git
systemctl enable --now docker
Full walkthrough including Compose basics: Guía Docker.
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.
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.
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.
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.
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.
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.
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.