C贸mo instalar GitLab en Docker - Servidor Git autohospedado
GitLab en Docker: Servidor Git autohospedado con CI/CD, proyectos privados, users, webhooks, registry Docker, backup autom谩tico (alternativa GitHub Enterprise) 馃悪馃摝
GitLab es un servidor Git completo autohospedado con CI/CD integrado, proyectos privados/p煤blicos, gesti贸n usuarios, webhooks, registry Docker privado, backup autom谩tico, y todo auto-administrado en tu homelab. Alternativa de GitHub Enterprise sin suscripci贸n. Community Edition gratuita, Enterprise Edition con features premium. Production-ready Docker.
¿Qu茅 es GitLab en Docker?
GitLab es un servidor Git completo autohospedado que proporciona control de versiones, CI/CD integrado, gesti贸n de proyectos, usuarios y permisos, webhooks, registry Docker privado, y todas las features de GitHub Enterprise sin necesidad de suscripci贸n, completamente bajo tu control en Docker. Ideal para equipos de desarrollo y homelabs profesionales.
Propuesta clave: Git server enterprise-grade self-hosted. Repositorios privados/p煤blicos ilimitados. CI/CD pipelines integradas (.gitlab-ci.yml). Gesti贸n usuarios multi-tenant. Webhooks, API REST completa. Docker registry privado integrado. SSH + HTTPS Git access. Backup autom谩tico. Issues, Merge Requests, Discussions. Wiki integrado. Container registry. Package registry. Communities, groups, permissions granulares. Zero cloud, 100% privacidad. Community Edition gratuita, Enterprise Edition paid. Production-ready. Omnibus config Docker. Soporte PostgreSQL, Redis (opcional).
Caracter铆sticas principales
Git repositories
Repositorios privados/p煤blicos ilimitados. SSH + HTTPS access. Full Git features.
CI/CD integrado
Pipelines nativas .gitlab-ci.yml. Runners auto-escalables. Artifacts, caches.
Container registry
Docker registry privado integrado. Push/pull im谩genes. Integraci贸n CI/CD.
Gesti贸n usuarios
Multi-tenant. Roles (Admin, Maintainer, Developer). LDAP/OAuth opcional.
Merge Requests
Code review integrado. Discussions, aprobaciones. Auto-merge.
Issues + Epics
Tracking tareas. Epics (subissues). Labels, asignaciones, milestones.
Webhooks + API
API REST completa. Webhooks para eventos. Integraciones externas.
Backup autom谩tico
Backup scheduled. Restore f谩cil. Disaster recovery.
Requisitos del sistema
- Docker & Docker Compose v2+
- 8 GB - 16 GB RAM m铆nimo (GitLab consume recursos)
- 50 GB espacio disco m铆nimo (repositorios, CI/CD artifacts)
- /mnt/media/gitlab directorio accesible (o configurar ruta)
- Puertos TCP: 80, 443 (HTTP/HTTPS), 22 (SSH, opcional)
- Dominio v谩lido externo (NO localhost) - ej: gitlab.tudominio.com
- CPU: 4+ cores (GitLab es pesado, 6+ recomendado)
- Acceso internet (para webhooks, OAuth, notificaciones)
- PostgreSQL o SQLite (integrado en contenedor)
Estructura directorios /mnt/media
GitLab necesita carpetas para config, logs y datos:
Instalaci贸n con Docker Compose
Paso 1: Preparar estructura directorios
Paso 2: Crear docker-compose.yml
Paso 3: Configurar dominio y HTTPS
gitlab.example.com en docker-compose.yml a tu dominio real (ej: gitlab.miempresa.com). Sin esto GitLab no funcionar谩 correctamente.
Paso 4: Iniciar GitLab
Paso 5: Obtener contrase帽a root inicial
Acceder a GitLab
馃悪 GitLab Web UI: http://gitlab.example.com (o https:// si configuraste SSL)
Credenciales iniciales
- Usuario:
root - Contrase帽a: (obtener con comando arriba)
ssh://git@gitlab.example.com/user/project.git (reemplaza dominio y ruta)
Primeros pasos
1. Login y cambiar contrase帽a
- Abre
http://gitlab.example.com - Login: usuario
root, contrase帽a (obtenida arriba) - Click avatar (esquina superior derecha) → Settings
- Account → Change password
- Establece contrase帽a nueva segura
2. Crear proyecto nuevo
- Click "New project" (bot贸n azul)
- Opci贸n: "Create blank project"
- Project name: (ej: "mi-primer-proyecto")
- Project slug: auto-generado
- Visibility: Private (privado) o Public (p煤blico)
- Click "Create project"
3. Clonar proyecto y hacer commit
4. Crear usuario nuevo
- Admin area (icono admin en sidebar)
- Users → New user
- Fill: name, username, email
- Set password, click Create user
5. Agregar usuario a proyecto
- Project → Members
- Add members
- Selecciona usuario, rol (Developer, Maintainer, etc)
- Click "Add to project"
6. Configurar CI/CD (pipelines)
- En proyecto, crear archivo
.gitlab-ci.yml: - Ejemplo simple:
stages: - build - test build: stage: build script: - echo "Building..." - ls -la test: stage: test script: - echo "Testing..." - echo "Test passed!"
- Commit y push → CI/CD pipeline ejecuta autom谩tico
7. Usar Container Registry
Casos de uso
- Equipos de desarrollo: Git server profesional. CI/CD integrado. Control privacidad.
- DevOps: Container registry privado. CI/CD pipelines. Artifacts.
- Homelabs: Repositorios privados sin GitHub/GitLab.com. Backup local.
- Educaci贸n: Servidor Git para estudiantes. Privado y controlado.
- Compliance: Datos completamente on-premise. Sin cloud externo.
Gesti贸n y mantenimiento
Ver estado
Ver logs
Detener GitLab
Actualizar a versi贸n nueva
Backup (muy importante!)
Restore desde backup
Cambiar port SSH
GitLab Community Edition vs Enterprise Edition
- Community Edition (CE): Gratuita, open source. Features completas Git/CI/CD. Perfect para homelabs y peque帽os equipos.
- Enterprise Edition (EE): Pago (suscripci贸n GitLab). Features premium: LDAP sync, Geo replication, advanced security scanning, etc.
Para homelab, usa CE (imagen: gitlab/gitlab-ce:latest). Es completamente funcional y gratuita.
Comentarios
Publicar un comentario
Comenta...