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