# 🦊 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