Open-Source Wikis

/

GitLab

/

GitLab

gitlab-org/gitlab

GitLab

GitLab is an open-core, single-application DevSecOps platform that combines Git repository hosting, code review, CI/CD, container and package registries, security scanning, observability, and project management in one Ruby on Rails monolith. The canonical source lives at gitlab-org/gitlab on GitLab.com, and the same code powers both self-managed installations and the GitLab.com SaaS service. Most of the tree is MIT-licensed; files under ee/ are proprietary but source-available.

This wiki documents the canonical monorepo at version 19.0.0-pre (default branch: master). It is intended for engineers contributing to GitLab itself, not end users administering an installation. For user-facing documentation, see https://docs.gitlab.com.

What's in the box

The repository contains:

  • A Rails 7.2 web application (app/, lib/, config/) that serves the web UI, REST API, and GraphQL API.
  • A Vue.js / TypeScript frontend in app/assets/javascripts/ plus standalone "frontend islands" in frontend_islands/ and ee/frontend_islands/.
  • The Enterprise Edition tree under ee/ (proprietary features: Geo, advanced security, Duo, audit events, etc.).
  • Workhorse — a Go reverse proxy that handles long-running and resource-intensive HTTP traffic in front of Puma.
  • The Sidekiq cluster for background jobs, with ~170 worker namespaces.
  • A QA/end-to-end test framework in qa/.
  • 26 in-tree Ruby gems under gems/ extracted from the monolith.
  • Database schema for PostgreSQL 16+ in db/structure.sql (~2.8 MB DDL) and migrations in db/migrate/ and db/post_migrate/.

Companion repositories (not in this repo)

GitLab is delivered as a constellation of related projects whose versions are pinned here via *_VERSION files at the repo root:

The pinned versions live in GITALY_SERVER_VERSION, GITLAB_SHELL_VERSION, GITLAB_PAGES_VERSION, GITLAB_KAS_VERSION, GITLAB_ZOEKT_VERSION, GITLAB_ELASTICSEARCH_INDEXER_VERSION, etc.

Where to start in this wiki

Editions

Three editions ship from this tree:

  • Community Edition (CE) — MIT-licensed, excludes ee/ at build time via the FOSS_ONLY=1 flag.
  • Enterprise Edition (EE) — adds the ee/ tree under a proprietary "GitLab Source Available" license.
  • JiHu Edition (JH) — a downstream fork tailored for the Chinese market, hosted separately at https://about.gitlab.cn/.

Most code in this repository is shared between CE and EE; the build pipeline strips ee/ to produce CE artifacts.

Software stack

Layer Technology
Application server Puma (Ruby on Rails 7.2.3 on Ruby 3.3.10)
Reverse proxy Workhorse (Go)
Background jobs Sidekiq
Database PostgreSQL 16.5+ (multi-database: main + ci + sec + jh)
Cache and queues Redis 6.0+
OLAP analytics ClickHouse
Search Elasticsearch / Zoekt (code search)
Frontend Vue 2/3, GraphQL via Apollo, Vite + Webpack
Object storage S3-compatible (Fog)
Git RPC Gitaly (gRPC)
CI runners GitLab Runner (separate repo)

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

GitLab – GitLab wiki | Factory