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