Gogs is a free, open source version control & collaboration project written in Go and released under MIT. It has 47,821 GitHub stars, 5,069 forks and 1,009 open issues, and was last pushed 5 days ago. On this registry it ranks #2 of 30 tracked projects in Version Control & Collaboration, with 5 head-to-head comparisons available. It gained 15 stars over the last 6 tracked days.

Gogs — Self-hosted Git service that's lightweight and easy to install

What is Gogs?

Gogs is a self-hosted Git service written in Go and released under the MIT licence, aimed at individuals and small teams who want their own repository hosting without adopting a full collaboration platform.

What it is

Gogs (pronounced /gɑgz/) is a self-hosted Git service whose stated goal is to be simple, stable and extensible, and to be set up in the most painless way possible. Because it is written in Go, it ships as an independent binary distribution across every platform the Go toolchain supports, including Linux, macOS, Windows and ARM-based systems, and it occupies the Developer Tools / Version Control and Collaboration category among self-hosted source code management tools.

The concrete problem it solves is dependence on a hosted code host for private repositories. Gogs gives a team the repository management surface usually provided by a commercial Git host — repositories, organizations, issues, pull requests and wikis — running on hardware it already owns or rents cheaply. It can also migrate and mirror repositories together with their wikis from other code hosts, which makes it a landing point for teams leaving a hosted service rather than only a greenfield choice.

Key capabilities

  • Repository access over SSH, HTTP and HTTPS protocols.
  • User dashboard, user profile and activity timeline, plus user, organization and repository management.
  • Repository issues, pull requests, wiki, protected branches and collaboration, alongside Git hooks, deploy keys and Git LFS.
  • Repository and organization webhooks with integrations for Slack, Discord and Dingtalk.
  • Migration and mirroring of repositories with wiki content from other code hosts.
  • Authentication via SMTP, LDAP, reverse proxy, GitHub.com and GitHub Enterprise with 2FA.
  • Rich database backend support for PostgreSQL, MySQL, MariaDB, SQLite3, or any backend that speaks one of those protocols.

Additional documented features include a web editor for repository files and wiki pages, Jupyter Notebook and PDF rendering, customization of HTML templates and static files, and localization across 31 languages. The API is documented but marked experimental.

Who uses it and how

  • Hobbyist and single-user deployments run on a Raspberry Pi or a $5 DigitalOcean droplet; some operators run it in Docker containers with as little as 64MB of RAM.
  • Small teams use 2 CPU cores and 512MB of RAM as the baseline, adding CPU cores as team size grows while the memory footprint stays low.
  • Organizations that prefer managed deployment paths can install it through Cloudron, YunoHost or alwaysdata.
  • Teams standardizing on directory-based sign-in connect it to LDAP, a reverse proxy, or GitHub.com and GitHub Enterprise accounts with 2FA.
  • CI and configuration workflows attach through the Jenkins gogs-webhook plugin and the Puppet module, and a public instance at try.gogs.io allows evaluation before installation.

Getting started

Installation follows the guide at gogs.io/getting-started/installation, with Docker images and compose-based setups widely documented for running the service and a PostgreSQL backend. The CHANGELOG.md file in the repository lists changes per release.

How it compares

The README positions Gogs in the same space as GitHub.com and GitHub Enterprise, which appear as authentication sources and as code hosts it can migrate and mirror repositories from, and community tutorials describe it as a way to host a GitHub-like service privately. Against those hosted products the distinguishing axes are the MIT licence, full self-hosting, and ownership of repository data on infrastructure the operator controls, with no per-seat subscription implied.

When to use it — and when not to

A self-hoster must operate a database from the supported set — PostgreSQL, MySQL, MariaDB or SQLite3 — plus outgoing mail through SMTP, storage for repositories and Git LFS objects, and optionally LDAP or a reverse proxy for authentication. Teams that need a stable, fully specified API should look elsewhere, because Gogs documents its API as experimental, and the project carries 1009 open issues alongside 47,819 stars and 5,070 forks. The officially supported minimum browser resolution is 1024x768, so very small displays are out of scope.

project readme (upstream, from github) — read inline

GitHub Workflow Status Sourcegraph

👉 Deploy on DigitalOcean and <a href="https://m.do.co/c/5aeb02268b55">get $200 in free credits</a>!

🔮 Vision

The Gogs (/gɑgz/) project aims to build a simple, stable and extensible self-hosted Git service that can be set up in the most painless way. With Go, this can be done with an independent binary distribution across all platforms that Go supports, including Linux, macOS, Windows and ARM-based systems.

📡 Overview

💌 Features

  • User dashboard, user profile and activity timeline.
  • Access repositories via SSH, HTTP and HTTPS protocols.
  • User, organization and repository management.
  • Repository and organization webhooks, including Slack, Discord and Dingtalk.
  • Repository Git hooks, deploy keys and Git LFS.
  • Repository issues, pull requests, wiki, protected branches and collaboration.
  • Migrate and mirror repositories with wiki from other code hosts.
  • Web editor for quick editing repository files and wiki.
  • Jupyter Notebook and PDF rendering.
  • Authentication via SMTP, LDAP, reverse proxy, GitHub.com and GitHub Enterprise with 2FA.
  • Customize HTML templates, static files and many others.
  • Rich database backend support, including PostgreSQL, MySQL, MariaDB, SQLite3 or any database backend that speaks one of those protocols.
  • Have localization over 31 languages.

💾 Hardware requirements

  • A Raspberry Pi or $5 Digital Ocean Droplet is more than enough to get you started. Some even use 64MB RAM Docker CaaS.
  • 2 CPU cores and 512MB RAM would be the baseline for teamwork.
  • Increase CPU cores when your team size gets significantly larger, memory footprint remains low.

💻 Browser support

  • Please see Semantic UI for specific versions of supported browsers.
  • The smallest resolution officially supported is 1024*768, however the UI may still look right in smaller resolutions, but no promises or fixes.

📜 Installation

Please follow the guide in our documentation.

Deploy to cloud

Tutorials

📦 Software, service and product support

🙇‍♂️ Acknowledgments

This project is proudly supported by:

Other acknowledgments:

  • Thanks Egon Elbre for designing the original version of the logo.
  • Thanks Mintlify for sponsoring open source documentation plan.
  • Thanks Crowdin for sponsoring open source translation plan.
  • Thanks Buildkite for sponsoring open source CI/CD plan.

👋 Contributors

⚖️ License

This project is under the MIT License. See the LICENSE file for the full license text.

Frequently asked questions

Is Gogs free to use?

Gogs is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Gogs do?

Self-hosted Git service that's lightweight and easy to install

What is Gogs written in?

Gogs is primarily written in Go. Its source is publicly available at https://github.com/gogs/gogs, and it has 47,821 GitHub stars.