Gitea vs. GitLab vs. GitHub
Gitea:
✅ Sehr schlanker (< 100 MB RAM)
✅ Einfache Installation und Wartung
✅ Gitea Actions (GitHub Actions kompatibel)
❌ Kein natives Kubernetes (Helm vorhanden)
GitLab CE:
✅ Umfangreichste Funktionen
✅ Integriertes Kubernetes-Deploy
❌ Sehr ressourcenhungrig (4+ GB RAM)
Für KMU ohne DevOps-Team: Gitea
Gitea mit Docker installieren
# docker-compose.yml
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
environment:
USER_UID: 1000
USER_GID: 1000
GITEA__database__DB_TYPE: postgres
GITEA__database__HOST: db:5432
GITEA__database__NAME: gitea
GITEA__database__USER: gitea
GITEA__database__PASSWD: sicherespasswort
restart: unless-stopped
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
ports:
- "3000:3000"
- "222:22"
depends_on:
- db
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: gitea
POSTGRES_PASSWORD: sicherespasswort
POSTGRES_DB: gitea
volumes:
- postgres-data:/var/lib/postgresql/data
volumes:
postgres-data:
docker compose up -d
# Gitea Setup: http://server:3000
# Admin-Account erstellen
Gitea konfigurieren
# /opt/gitea/gitea/conf/app.ini (nach Setup)
# Wichtige Einstellungen:
# [server]
# DOMAIN = git.firma.de
# ROOT_URL = https://git.firma.de/
# DISABLE_SSH = false
# SSH_PORT = 222
# [repository]
# DEFAULT_PRIVATE = true # Neue Repos sind privat
# [service]
# DISABLE_REGISTRATION = true # Kein öffentliches Signup
# [mailer]
# ENABLED = true
# SMTP_ADDR = mail.firma.de
# SMTP_PORT = 587
# FROM = [email protected]
# USER = [email protected]
# Gitea neu starten nach Änderungen
docker compose restart gitea
SSH-Zugang
# SSH-Key in Gitea hinterlegen:
# Settings → SSH / GPG Keys → Add Key
# SSH-Config (~/.ssh/config)
Host git.firma.de
HostName git.firma.de
Port 222
User git
IdentityFile ~/.ssh/id_ed25519
# Repository klonen
git clone [email protected]:firma/mein-projekt.git
# Neues Repo pushen
git remote add origin [email protected]:firma/mein-projekt.git
git push -u origin main
Gitea Actions (CI/CD)
# .gitea/workflows/build.yml
name: Build and Test
on:
push:
branches: [main]
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test
- name: Build
run: npm run build
# Gitea Runner (für Actions) installieren
# Auf separatem Server oder Docker:
docker run -d --name gitea-runner -v /var/run/docker.sock:/var/run/docker.sock -v ./runner:/data -e GITEA_INSTANCE_URL=https://git.firma.de -e GITEA_RUNNER_REGISTRATION_TOKEN=TOKEN gitea/act_runner:latest
Organisations und Teams
Gitea → + → New Organization:
Name: firma-gmbh
Visibility: Private
Teams:
Developers: Push, Create Issues
Readonly: Pull only
Owners: Admin
Members → Invite via E-Mail
FAQ
Kann Gitea mit GitHub Actions Workflows kompatibel sein?
Weitgehend ja. Gitea Actions nutzt den gleichen Syntax wie GitHub Actions. Manche GitHub-spezifische Actions (GitHub Pages Deploy) sind nicht kompatibel.
Fazit
Gitea ist die perfekte GitHub-Alternative für KMU: in 5 Minuten installiert, 80% der Features, 5% der Ressourcen von GitLab.
Git-Server und CI/CD für KMU in Heidelberg, Mannheim und der Rhein-Neckar-Region. Anfragen.