# 🦊 Gitea: Lehký self-hosted Git server 👉 [[1.1.1 O projektu]] 👉 [[1.1.2 Vlastní digitální svět (přehled článků)]] ## 📌 Úvod: Proč Gitea? [Gitea](https://gitea.io/) je **lehký, rychlý a self-hosted Git server** napsaný v Go. Je to alternativa k GitHubu nebo GitLabu, která běží i na Raspberry Pi. Podporuje: - ✅ **Git repozitáře s webovým rozhraním** - ✅ **Pull requesty, issues, wiki, projekty** - ✅ **Gitea Actions (CI/CD kompatibilní s GitHub Actions)** - ✅ **OAuth přihlášení (GitHub, Google, LDAP)** V tomto článku si ukážeme, jak nasadit Gitea v Dockeru a začít spravovat své repozitáře. ![[image_gitea.png]] --- ## 📜 Licence a cena | Aspekt | Detail | |--------|--------| | **Licence** | MIT (plně open-source) | | **Self-hosting** | ✅ Ano, zdarma a bez omezení | | **Komerční použití** | ✅ Ano, bez omezení | | **Cloud verze** | Gitea Cloud (v přípravě) | | **Zdrojový kód** | [github.com/go-gitea/gitea](https://github.com/go-gitea/gitea) | > Gitea je **100% open-source pod MIT licencí**. Žádné placené funkce, žádná omezení. Vznikla jako fork Gogs s cílem být více community-driven. --- ## 🚀 Instalace v Dockeru ```yaml version: '3.8' services: gitea: image: gitea/gitea:latest container_name: gitea restart: always ports: - "3000:3000" - "2222:22" environment: - USER_UID=1000 - USER_GID=1000 - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=postgres_db:5432 - GITEA__database__NAME=gitea - GITEA__database__USER=admin - GITEA__database__PASSWD=your_secure_password volumes: - gitea_data:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro networks: - digilifehub_network depends_on: - postgres_db volumes: gitea_data: networks: digilifehub_network: external: true ``` 📌 **Gitea je dostupná na `http://IP_ADRESA:3000`** 📌 **SSH přístup na portu 2222 (nebo 22 pokud je volný)** --- ## ⚙️ Konfigurace ### První spuštění 1. Otevřete webové rozhraní 2. Dokončete průvodce instalací 3. Vytvořte admin účet 4. Nastavte URL serveru a SSH port ### Gitea Actions (CI/CD) ```ini # V app.ini nebo environment GITEA__actions__ENABLED=true ``` Poté spusťte Gitea Runner: ```yaml gitea-runner: image: gitea/act_runner:latest environment: - GITEA_INSTANCE_URL=http://gitea:3000 - GITEA_RUNNER_REGISTRATION_TOKEN=your_token volumes: - /var/run/docker.sock:/var/run/docker.sock ``` --- ## 💡 Praktické použití ### Use case 1: Soukromé repozitáře pro freelancera **Situace:** Jste freelancer, máte 20+ projektů pro různé klienty. GitHub Pro stojí $4/měsíc, ale hlavně – nechcete klientský kód na cizím serveru. **Řešení s Gitea:** - **Organizace:** Jedna organizace per klient - **Přístupy:** Klient může mít read-only přístup ke svému repozitáři - **Mirroring:** Automatická záloha na GitHub (veřejné projekty) - **CI/CD:** Gitea Actions pro build a deploy - **Náklady:** €60/rok VPS vs $48/rok GitHub Pro (ale neomezené repos a uživatelé) **Výsledek:** Plná kontrola nad kódem, profesionální prezentace klientům. ### Use case 2: Domácí Git server na Raspberry Pi **Situace:** Máte hobby projekty, Arduino kód, dotfiles. Nechcete platit za GitHub, nechcete veřejné repozitáře. **Řešení s Gitea:** - **Hardware:** Raspberry Pi 4 (2GB stačí) - **Přístup:** Lokální síť + Tailscale pro vzdálený přístup - **Spotřeba:** ~5W, běží 24/7 - **Záloha:** Automatická záloha dat na NAS - **Bonus:** Vlastní doména přes Cloudflare Tunnel **Výsledek:** Neomezené soukromé repozitáře za cenu elektřiny. ### Use case 3: Výuková platforma pro školu **Situace:** Učitel informatiky potřebuje, aby studenti odevzdávali úkoly přes Git, ale škola nechce používat veřejné služby. **Řešení s Gitea:** - **Uživatelé:** LDAP integrace s Active Directory školy - **Organizace:** Třída = organizace, předmět = repozitář - **Šablony:** Template repozitáře pro každý úkol - **Review:** Učitel dělá code review přes pull requesty - **Statistiky:** Kdo commitoval, kdy, kolik **Výsledek:** Profesionální workflow jako v praxi, data zůstávají ve škole. ### Use case 4: Záloha a mirror GitHubu **Situace:** Spoléháte na GitHub, ale co kdyby zítra zmizel? Nebo kdyby vám zablokovali účet? **Řešení s Gitea:** - **Mirror:** Automatická synchronizace z GitHubu do Gitea - **Bidirectional:** Push do Gitea, mirror na GitHub (nebo naopak) - **Interval:** Každou hodinu nebo při push - **Issues/Wiki:** Migrace včetně issues a wiki - **Disaster recovery:** Kdykoliv můžete přejít plně na Gitea **Výsledek:** Nikdy neztratíte kód, nezávislost na jednom provideru. ### Use case 5: Monorepo pro startup **Situace:** Startup s 5 vývojáři, monorepo s frontendem, backendem, infra. GitLab je overkill, GitHub drahý. **Řešení s Gitea:** - **Monorepo:** Jeden velký repozitář, všichni mají přístup - **Branch protection:** Main branch vyžaduje review - **Gitea Actions:** CI pipeline pro každý PR - **Webhooks:** Notifikace do Slacku, trigger deploy - **Projects:** Kanban board pro task management **Výsledek:** Vše potřebné pro efektivní vývoj, bez enterprise cenovky. --- ## 🆚 Gitea vs GitLab vs GitHub | Aspekt | Gitea | GitLab CE | GitHub | |--------|-------|-----------|--------| | **Licence** | MIT | MIT (CE) | Proprietary | | **RAM** | ~100 MB | ~4 GB | N/A (cloud) | | **CI/CD** | Gitea Actions | Built-in | GitHub Actions | | **Self-hosted** | ✅ | ✅ | ❌ (Enterprise ano) | | **Cena** | Zdarma | Zdarma | Od $0 (limity) | | **Ideální pro** | Malé týmy | Střední/velké | Veřejné projekty | --- ## 🏁 Závěr a další kroky ✅ **Gitea je lehká alternativa k GitHubu.** ✅ **Běží i na minimálním hardwaru (Raspberry Pi).** ✅ **Gitea Actions přináší CI/CD kompatibilní s GitHub Actions.** ✅ **MIT licence – 100% open-source, žádná omezení.** 👉 **Používáte self-hosted Git? Gitea, GitLab nebo něco jiného?** 🚀 --- ### ⏪ Související články ⏩ > **🔙 Předchozí článek:** > [[2025-05-15 code-server (VS Code v prohlížeči)|code-server (VS Code v prohlížeči)]] > > **🔜 Následující článek:** > [[2025-06-15 GitLab (kompletní DevOps platforma)|GitLab (kompletní DevOps platforma)]] #docker #gitea #git #selfhosted #opensource #osobniDigitalizace #digilifehub