5.3 KiB
Raw Blame History

Internal Forge Comparison

Quick decision guide

If we want… Choose
A complete DevOps platform with integrated CI/CD, package registry, security scanning, and enterprise features GitLab
A lightweight, easy-to-operate Git server with minimal resource usage Gitea
A community-driven forge similar to Gitea but with built-in CI (Forgejo Actions) and future federation support Forgejo

Comparison

Pricing

Feature GitLab Gitea Forgejo
Free tier
Paid tier (per user/month) premium: 29$
ultimate: on request
enterprise: 19$ (donation-based)
Information on pricing info info info

Core Git Features

Feature GitLab Gitea Forgejo
Git repositories
Git LFS support
Git tags for releases
Protected branches
Repository mirroring
Webhooks

Collaboration and Project Management

Feature GitLab Gitea Forgejo
Issues
Pull / merge requests
Pull request reviewer assignment
Pull request inline comments
Wiki (per repository)
Snippets / gists ⚠️ limited ⚠️ limited
Project management free: simple kanban
premium: roadmap
simple kanban simple kanban
Organization / group hierarchy ⚠️ simpler model ⚠️ simpler model
Code search (global) ⚠️ limited ⚠️ limited
Repository mirroring (push/pull)

CI/CD and Automation

Feature GitLab Gitea Forgejo
Built-in CI/CD built-in Gitlab CI/CD external CI (woodpecker/Drone) Forgejo Actions (Github-Actions compatible)
Automated workflows ⚠️ external CI required
Workflow triggers ⚠️ depends on CI integration
External CI integration

Artifacts & Registries

Feature GitLab Gitea Forgejo
Package registry ⚠️ limited ecosystem support
Container registry ⚠️ plugin / external registry ⚠️ evolving support

Authentication and Access Control

Feature GitLab Gitea Forgejo
Access control
LDAP / Active Directory
SAML / enterprise SSO ⚠️ enterprise tier not supported not supported
Federation between instances not supported not supported ⚠️ planned (ForgeFed)

Operations / Self-Hosting

Feature GitLab Gitea Forgejo
Resource footprint heavy (many services) light light
Deployment complexity complex simple simple

Notes on the test project setup:

Gitea

  • SSH is disabled by default, so we use HTTPS to clone the repository.
    • it can be enabled in the Gitea settings if needed (see here and here)
  • HTTPS: works, but requires the user to set a password manually in the profile first. That's unexpected since it should be inherited by authentik. Probably a misconfiguration from there.

Forgejo

  • SSH is disabled by default, so we use HTTPS to clone the repository. Same as with Gitea.
  • HTTPS: Same as with Gitea.

Gitlab

  • SSH is active by default. But the port is wrongly configured and probably already used by the host...
  • HTTPS: works well.