# 🦊 GitLab: Kompletní DevOps platforma
👉 [[1.1.1 O projektu]]
👉 [[1.1.2 Vlastní digitální svět (přehled článků)]]
## 📌 Úvod: Proč GitLab?
[GitLab](https://about.gitlab.com/) je **kompletní DevOps platforma**, která zahrnuje Git hosting, CI/CD, container registry, security scanning a mnohem více – vše v jednom nástroji.
Podporuje:
- ✅ **Integrované CI/CD pipelines**
- ✅ **Container Registry pro Docker images**
- ✅ **Security scanning (SAST, DAST, dependency scanning)**
- ✅ **Kubernetes integrace a deployment**
V tomto článku si ukážeme, jak nasadit GitLab CE (Community Edition) v Dockeru.
![[image_gitlab.png]]
---
## 📜 Licence a cena
| Aspekt | Detail |
|--------|--------|
| **Licence** | MIT (Community Edition) |
| **Self-hosting** | ✅ Ano, CE je zdarma |
| **Premium funkce** | GitLab Premium/Ultimate (placené) |
| **Cloud verze** | gitlab.com (free tier + placené plány) |
| **Zdrojový kód** | [gitlab.com/gitlab-org/gitlab](https://gitlab.com/gitlab-org/gitlab) |
> GitLab CE (Community Edition) je **open-source pod MIT licencí**. Obsahuje většinu funkcí potřebných pro běžný vývoj. Premium/Ultimate verze přidávají enterprise funkce jako advanced security, compliance a support.
### Co je v CE vs Premium
| Funkce | CE (zdarma) | Premium |
|--------|-------------|---------|
| Git repos + CI/CD | ✅ | ✅ |
| Container Registry | ✅ | ✅ |
| Basic security scans | ✅ | ✅ |
| Advanced SAST/DAST | ❌ | ✅ |
| Dependency scanning | ❌ | ✅ |
| Audit events | ❌ | ✅ |
---
## 🚀 Instalace v Dockeru
```yaml
version: '3.8'
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
hostname: 'gitlab.yourdomain.com'
ports:
- "80:80"
- "443:443"
- "2222:22"
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.yourdomain.com'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
postgresql['enable'] = true
puma['worker_processes'] = 2
volumes:
- gitlab_config:/etc/gitlab
- gitlab_logs:/var/log/gitlab
- gitlab_data:/var/opt/gitlab
shm_size: '256m'
networks:
- digilifehub_network
volumes:
gitlab_config:
gitlab_logs:
gitlab_data:
networks:
digilifehub_network:
external: true
```
📌 **GitLab potřebuje minimálně 4 GB RAM (doporučeno 8 GB)**
📌 **První spuštění trvá několik minut**
---
## ⚙️ Konfigurace
### Získání root hesla
```bash
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
```
### CI/CD Runner
```yaml
gitlab-runner:
image: gitlab/gitlab-runner:latest
container_name: gitlab-runner
restart: always
volumes:
- gitlab_runner_config:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock
networks:
- digilifehub_network
```
---
## 💡 Praktické použití
### Use case 1: Kompletní DevOps pro SaaS produkt
**Situace:** Startup buduje SaaS produkt. Potřebuje Git, CI/CD, container registry, monitoring a security scanning – ideálně v jednom nástroji.
**Řešení s GitLab:**
- **Repos:** Monorepo nebo microservices, branch protection
- **CI/CD:** Pipeline pro každý commit – lint, test, build, deploy
- **Registry:** Docker images přímo v GitLabu
- **Environments:** Dev → Staging → Production s manuálním approve
- **Review apps:** Automatický deploy pro každý merge request
- **Monitoring:** Integrace s Prometheus, Grafana
**Výsledek:** Celý DevOps stack v jedné platformě, single sign-on.
### Use case 2: Regulované prostředí (GDPR, ISO)
**Situace:** Firma v regulovaném odvětví (finance, zdravotnictví) musí mít audit trail a compliance reporty.
**Řešení s GitLab:**
- **Self-hosted:** Data nikdy neopustí firemní infrastrukturu
- **Audit logs:** Kdo co kdy změnil (Premium feature)
- **Merge request approvals:** Vynucené code review
- **Protected branches:** Pouze schválené změny jdou do produkce
- **Compliance frameworks:** Predefinované pipeline templates
- **Backup:** Automatické zálohy s verzováním
**Výsledek:** Splnění regulatorních požadavků, důkazy pro audit.
### Use case 3: Open-source projekt s CI/CD
**Situace:** Udržujete open-source knihovnu. Potřebujete automatické testy, release management, dokumentaci.
**Řešení s GitLab (gitlab.com free tier):**
- **Public repo:** Neomezené CI/CD minuty pro public projekty
- **Pipeline:** Testy na každý PR, release při tagu
- **Pages:** Dokumentace hostovaná na GitLab Pages
- **Package registry:** npm/PyPI packages přímo z GitLabu
- **Security:** Dependency scanning v free tier pro public repos
**Výsledek:** Enterprise-grade CI/CD pro open-source zdarma.
### Use case 4: Kubernetes-native development
**Situace:** Tým vyvíjí aplikace pro Kubernetes. Potřebuje GitOps workflow a auto-deploy.
**Řešení s GitLab:**
- **Auto DevOps:** Automatická detekce jazyka, build, deploy
- **Kubernetes agent:** Spojení s clustery bez exposing API
- **GitOps:** ArgoCD/Flux integrace, deklarativní deploy
- **Environments:** Namespace per environment/branch
- **Helm:** Automatický deploy Helm charts
- **Monitoring:** Metriky přímo v GitLab UI
**Výsledek:** Od commitu k produkci za minuty, plně automaticky.
### Use case 5: Migration z legacy SVN/TFS
**Situace:** Enterprise zákazník má 15 let starý kód v SVN. Vývojáři chtějí moderní nástroje.
**Řešení s GitLab:**
- **Migrace:** Import z SVN včetně historie
- **Training:** GitLab UI je intuitivní, vývojáři se rychle naučí
- **Gradual rollout:** Nejdřív nové projekty, pak migrace starých
- **Integrace:** GitLab umí s Jenkins, Jira, pokud je potřeba
- **Single source of truth:** Vše na jednom místě
**Výsledek:** Modernizace bez big-bang migrace.
---
## 🆚 GitLab vs GitHub vs Azure DevOps
| Aspekt | GitLab CE | GitHub | Azure DevOps |
|--------|-----------|--------|--------------|
| **Licence** | MIT | Proprietary | Proprietary |
| **Self-hosted** | ✅ | ❌ (Enterprise) | ✅ (Server) |
| **CI/CD** | Built-in | Actions | Pipelines |
| **Registry** | ✅ | ✅ | ✅ |
| **All-in-one** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| **Cena** | Zdarma (CE) | Od $0 | Od $0 |
---
## 🏁 Závěr a další kroky
✅ **GitLab je all-in-one DevOps platforma.**
✅ **Integrované CI/CD, registry a security scanning.**
✅ **Ideální pro větší týmy a komplexní projekty.**
✅ **CE verze je open-source a zdarma.**
👉 **Používáte GitLab? Jaké funkce využíváte nejvíce?** 🚀
---
### ⏪ Související články ⏩
> **🔙 Předchozí článek:**
> [[2025-06-01 Gitea (lehký self-hosted Git server)|Gitea (lehký self-hosted Git server)]]
>
> **🔜 Následující článek:**
> [[2025-07-01 OwnCloud (soukromý cloud pro soubory)|OwnCloud (soukromý cloud pro soubory)]]
#docker #gitlab #devops #cicd #opensource #osobniDigitalizace #digilifehub