Linuxguide

Gitea – selbstgehosteter Git-Server 2025

GitHub-Alternative auf eigenem Server mit vollem Funktionsumfang

S
SeeColors IT
11. Juni 20264 Min. Lesezeit144 Aufrufe

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.

Artikel teilen

War dieser Artikel hilfreich?

Dein Feedback hilft uns, bessere Inhalte zu erstellen.

Kommentar hinterlassen

Verwandte Artikel