Introduction
Gitness is a developer platform built by Harness that combines Git hosting with integrated CI/CD pipelines. It ships as a single Go binary with an embedded database, making it straightforward to deploy and maintain for teams that want full control over their source code infrastructure.
What Gitness Does
- Hosts Git repositories with a clean web UI for browsing code and history
- Provides built-in CI/CD pipelines defined as YAML in the repository
- Supports pull requests with inline code review and approval workflows
- Offers repository-level and organization-level access controls
- Includes a container registry for storing and distributing images
Architecture Overview
Gitness is written in Go and ships as a single statically linked binary. It embeds SQLite by default for metadata storage and manages Git objects directly on disk. The web frontend is a React application bundled into the binary. Pipeline execution uses a container-based runner that can scale horizontally for parallel jobs.
Self-Hosting & Configuration
- Run via Docker or download the binary for Linux, macOS, or Windows
- Data persists in a single volume (
/data) containing repos and the database - Configure via environment variables:
GITNESS_URL_BASE,GITNESS_HTTP_PORT - Swap SQLite for PostgreSQL for larger deployments with
GITNESS_DATABASE_DRIVER - Place behind a reverse proxy with TLS for production use
Key Features
- Single-binary deployment with zero external dependencies
- Integrated pipelines eliminate the need for a separate CI/CD server
- Pull request workflows with reviewers, merge checks, and status gates
- Built-in secrets management for pipeline credentials
- Lightweight resource footprint suitable for small teams and edge deployments
Comparison with Similar Tools
- Gitea — mature self-hosted Git with large ecosystem but no built-in CI/CD
- GitLab CE — comprehensive DevOps platform but heavier on resources
- Forgejo — community fork of Gitea focused on governance; also lacks built-in CI
- OneDev — self-hosted Git with CI, but uses a Java stack
- Gogs — minimal Git hosting; pipelines require external tooling
FAQ
Q: How does Gitness compare to Gitea in resource usage? A: Both are lightweight Go binaries. Gitness adds pipeline execution, which uses more resources only when pipelines run.
Q: Can I migrate repositories from GitHub or GitLab? A: Yes. Gitness supports importing repositories via Git clone URLs and can mirror external repos.
Q: Is Gitness production-ready? A: Gitness is actively maintained by Harness. For large-scale production, use PostgreSQL as the database backend and run the pipeline runner on dedicated infrastructure.
Q: Does it support branch protection rules? A: Yes. You can require pull request reviews, status checks, and restrict who can push to protected branches.