unsubbed.co

Gogs

A painless, lightweight, self-hosted Git service written in Go. Minimal resource usage, easy setup, and runs on anything from a Raspberry Pi to a VPS.

Self-hosted Git hosting, honestly reviewed. What you actually get when you run Gogs on your own server.

TL;DR

  • What it is: A lightweight, MIT-licensed self-hosted Git service written in Go — think GitHub running on your own server for essentially nothing [5].
  • Who it’s for: Solo developers, small teams, and hobbyists who want private Git hosting on minimal hardware. Runs on a Raspberry Pi or a $5 VPS [1][5].
  • Cost savings: GitHub Team runs $4/user/month ($48/year per seat). GitLab Premium is $29/user/month. Gogs self-hosted costs nothing beyond the VPS — roughly $5–10/month for the whole instance regardless of seat count [3].
  • Key strength: Genuinely the lowest resource floor in the self-hosted Git category. 2 CPU cores and 512MB RAM for a team; some users run it in 64MB RAM Docker containers [README][5].
  • Key weakness: The project’s single-maintainer model caused the community to fork it as Gitea in 2016. Gitea has since outpaced Gogs in features, security patches, and active development. Known unpatched vulnerabilities (2FA bypass, path traversal) have been documented and not resolved promptly [1][3].

What is Gogs

Gogs (pronounced /gɑgz/, from “Go Git Service”) is a self-hosted Git platform that deliberately clones the GitHub interface and feature set. You get repositories, issues, pull requests, wikis, organization accounts, webhooks, and a web editor — the GitHub workflow your developers already know, running on infrastructure you control [5][README].

The project launched in early 2014. Its core pitch was blunt and accurate: GitHub’s UX, none of GitHub’s vendor lock-in, and hardware requirements so low that a Raspberry Pi handles it comfortably [2][5]. That pitch landed — the project sits at 47,583 GitHub stars today [3].

What makes Gogs technically interesting is its implementation. The entire service compiles to a single Go binary. No runtime dependencies beyond a database (MySQL, PostgreSQL, or SQLite). No Ruby, no Python, no Node. You download the binary, point it at a database, and run it. The LWN.net writeup from 2015 described the install process as getting “up and running with Gogs in a matter of minutes” using just the Go runtime and a downloaded package [2]. That speed is still accurate — and in 2026, Docker makes it even faster.

The honest context you need before reading further: in 2016, a group of contributors forked Gogs into a project called Gitea, explicitly because Gogs was bottlenecked on a single maintainer who wasn’t merging community contributions fast enough [1]. That fork has since become the more actively maintained project. Evaluating Gogs in 2026 means evaluating it against its own fork, not just against GitHub or GitLab.


Why people choose it

The consistent theme across reviews is “it works without a beefy server and without a complicated setup.” A 2016 AlternativeTo user put it plainly: “Initially I wanted to use GitLab for my projects, but its minimal requirement for RAM is 2GB. Gogs is working perfectly on 512MB RAM VPS so it’s pretty cheap for me. Gogs has almost everything I need and just works.” [3]

That comparison to GitLab is the most common entry point. GitLab’s self-hosted edition is genuinely powerful — CI/CD, container registry, security scanning, the works — but its baseline RAM requirement (4GB officially recommended for a production instance) prices out anyone running a small VPS or a home server. Gogs fits where GitLab doesn’t [3][5].

A 2014 AlternativeTo reviewer captured the setup contrast: “I’ve tried GitLab and other applications but setup is always a pain with them. The thing’s different with Gogs, you just download and extract it and run.” [3] That sentiment is echoed across nearly every review — ease of initial deployment is the product’s strongest practical attribute.

The DEV Community review [1] notes Gogs is still a reasonable choice for small teams and personal projects seeking minimal resource usage. But it also draws the clearest line on what Gogs is today: a tool that pioneered this category and then got lapped by its own fork. The review flags documented security vulnerabilities — 2FA bypass, permission bypass, and path traversal — and notes development velocity has slowed significantly compared to Gitea.

One AlternativeTo reviewer from 2024 is more direct: “Looks very dated, not actively maintained, even security bugs aren’t patched for a while. Packed with bugs and UX annoyances. It was a great software at its time, but these days there are far better forges out there with the same performance and more features. This one is from the past.” [3]

That’s a minority view by star count but a credible one by commit activity.


Features

Based on the README, official documentation, and third-party descriptions:

Core repository features:

  • User dashboard, profile pages, and activity timeline [README]
  • Access via SSH, HTTP, and HTTPS [README][5]
  • User, organization, and repository management [README]
  • Issues with labels and user assignment, milestones, releases [2]
  • Pull requests and code review [README]
  • Repository wikis and protected branches [README]
  • Web editor for files and wiki pages [README]
  • Migrate and mirror repositories (including wikis) from other hosts [README]
  • Git LFS support [README]
  • Deploy keys [README]

Integrations and webhooks:

  • Repository and organization webhooks for Slack, Discord, and Dingtalk [README]
  • Git hooks [README]
  • Jenkins CI integration via plugin [README]

Authentication:

  • SMTP, LDAP, reverse proxy, GitHub.com, and GitHub Enterprise [README]
  • Two-factor authentication [README][5]
  • Note: a 2FA bypass vulnerability has been documented and not promptly patched [1]

Infrastructure:

  • Database backends: PostgreSQL, MySQL, SQLite3 [README][5]
  • Single binary deployment — no runtime dependencies [2][5]
  • Docker support [README]
  • Runs on Linux, macOS, Windows, ARM [README][5]
  • 31 languages via Crowdin localization [README]

What’s missing vs GitHub or GitLab:

  • No built-in CI/CD
  • No container registry
  • No Pages equivalent
  • No advanced analytics or contribution graphs beyond basic activity feeds
  • The API is described as “experimental” on the official docs [README]
  • No SSO beyond what LDAP provides

Pricing: SaaS vs self-hosted math

Gogs self-hosted:

  • Software: $0 (MIT license since 2014) [README][3]
  • VPS to run it on: $5–10/month on Hetzner, Contabo, or DigitalOcean
  • Hardware floor: 2 CPU cores, 512MB RAM for a small team [README]; personal use runs on even less

GitHub for comparison:

  • Free: unlimited public repos, 3 collaborators on private repos
  • Team: $4/user/month ($48/year per seat)
  • Enterprise: $21/user/month

For a team of 5: GitHub Team = $240/year. Gogs on a $6/month Hetzner VPS = $72/year. That’s roughly $170/year saved on a tiny team, and the gap widens as headcount grows because SaaS scales per seat while self-hosted doesn’t.

GitLab for comparison:

  • Free tier: available but limits CI/CD minutes and storage
  • Premium: $29/user/month
  • Ultimate: $99/user/month

For a 5-person team on GitLab Premium: $1,740/year. Against $72 for self-hosted Gogs, the math is obvious — though Gogs doesn’t give you CI/CD, so the comparison isn’t apples-to-apples.

Honest caveat: The pricing math assumes you only need Git hosting — repositories, issues, pull requests, wikis. If you also need CI/CD pipelines, you’ll need a separate tool (Jenkins, Woodpecker CI, Drone) or you’ll be paying for GitLab anyway. Price Gogs against what it actually replaces, not against the full GitLab feature set.


Deployment reality check

The single-binary architecture makes Gogs one of the easier self-hosted tools to deploy. The LWN.net article from 2015 described it as “a matter of minutes” with a Go runtime [2]. With Docker Compose in 2026, it’s roughly the same.

What you need:

  • A Linux VPS with 512MB RAM minimum (2GB recommended for comfort)
  • Docker and docker-compose, or a Go runtime if running the binary directly
  • A database — SQLite works for personal use, PostgreSQL or MySQL for teams
  • A domain and reverse proxy (Caddy or nginx) if you want HTTPS
  • Optional: SMTP credentials for email notifications

What can go sideways:

The biggest deployment gotcha isn’t technical — it’s the question of whether you should be deploying Gogs at all in 2026, or Gitea instead.

On security: the DEV Community review [1] documents vulnerabilities including a 2FA bypass, permission bypass, and path traversal that were not promptly addressed. If you’re running Gogs on a public-facing server with sensitive code, check the current CVE status before deploying. Gitea (the fork) has a more active security response process.

On longevity: AlternativeTo commenters in 2024 flag that the project looks “not actively maintained” with security bugs sitting unpatched [3]. The GitHub repository shows the project is still active (last commit April 2026 per AlternativeTo data), but commit velocity is slower than Gitea.

On the UI: the project uses Semantic UI and hasn’t received a visual refresh in years. It’s functional, it works, but it looks dated compared to Gitea’s more regularly updated interface [3].

Realistic time estimate: 30–60 minutes to a working instance for a developer who’s used Docker before. Non-technical founders should budget a full afternoon including domain setup, or hire someone to deploy it once.


Pros and cons

Pros

  • Genuinely the lowest resource floor in self-hosted Git. 512MB RAM for a team, less for personal use. Runs on hardware that GitLab won’t touch [3][README].
  • Single binary deployment. No dependency hell. Download, configure, run. This is rare in the self-hosted space [2][3].
  • MIT license since 2014. No licensing ambiguity, no usage restrictions, no “fair-code” clauses. You can fork it, embed it, redistribute it [README][3].
  • All the Git hosting basics work. Issues, pull requests, wikis, webhooks, LDAP auth, 2FA — the feature set covers 90% of what a small team needs from a Git host [5][README].
  • 31-language UI. Unusually strong localization for a project of this size [README].
  • Active online demo at try.gogs.io — you can test it before deploying [README].

Cons

  • Fork problem. Gitea, the community fork, has more features, faster security patches, and more active development. Choosing Gogs over Gitea in 2026 needs justification [1][3].
  • Security vulnerabilities documented and slow to patch. 2FA bypass, permission bypass, and path traversal issues flagged in third-party reviews [1][3].
  • Experimental API. The REST API is described as experimental on the official docs, limiting programmatic integration [README].
  • No built-in CI/CD. You need a separate tool — Jenkins, Woodpecker, Drone — if you want automated pipelines [5].
  • Dated UI. Functional but visually behind Gitea and the modern look users expect from developer tooling [3].
  • Single-maintainer history. The same architectural bottleneck that caused the 2016 fork remains a structural risk for a tool you might run for years [1].
  • Missing from the data: No commercial support tier, no managed cloud offering, no enterprise features — this is a personal/small team tool only.

Who should use this / who shouldn’t

Use Gogs if:

  • You’re running on genuinely constrained hardware — a Raspberry Pi, an old NAS, a 512MB VPS — and GitLab and Gitea are too heavy.
  • You want the absolute simplest possible setup: download binary, run binary. No containers required if you prefer.
  • You’re archiving personal projects on a home server and will never expose it to the public internet.
  • You’ve evaluated Gitea and specifically prefer Gogs for a reason you can articulate.

Skip it (pick Gitea instead) if:

  • You’re deploying on any hardware above the bare minimum. Gitea has essentially the same resource profile and surpasses Gogs in features, security response, and active development [1].
  • You need a public-facing instance with any team access. The documented security vulnerabilities make a publicly-exposed Gogs instance a risk you don’t need to take when Gitea exists.
  • You want OAuth2 providers beyond GitHub (Google, Discord, etc.) — Gitea supports those, Gogs doesn’t.
  • You want any CI/CD integration that’s more than a webhook to Jenkins.

Skip it (pick GitLab) if:

  • You need built-in CI/CD, container registry, or security scanning in one package and have the hardware to support it (4GB+ RAM).

Skip it (use GitHub/Codeberg) if:

  • You don’t want to maintain a server at all. The cost of a $5 VPS is low but the maintenance responsibility is real.

Alternatives worth considering

  • Gitea — the direct successor and community fork of Gogs. Same lightweight Go architecture, same low resource requirements, faster development, better security response. For almost every use case where Gogs fits, Gitea fits better [1][3].
  • Forgejo — a more recent fork of Gitea, emphasizing community governance over commercial interests. Worth evaluating if Gitea’s development direction concerns you.
  • GitLab CE — the open-source edition is free and full-featured (CI/CD, container registry, wikis, merge request reviews). Requires significantly more RAM (4GB+ recommended). Best if you need the full DevOps stack in one tool.
  • Gitea + Woodpecker CI — if you want Gogs-style simplicity but with CI/CD added, this is the current community-recommended combination.
  • Codeberg — hosted Gitea, free for open-source projects. Zero server management if you’re willing to use someone else’s infrastructure.
  • GitHub — the incumbent. Best ecosystem, best integrations, private repos free up to a point, but the bill scales per seat and you’re handing code to Microsoft’s servers.
  • Soft (Charm’s ecosystem) — if you specifically want a terminal-first, SSH-only Git forge with minimal overhead. Niche but interesting for solo developers.

Bottom line

Gogs earned its reputation honestly: in 2014 it was the first self-hosted Git service that a developer could run on a $5 VPS without reading a 40-page manual. That remains true. The binary deployment, the 512MB RAM floor, the MIT license — all of it still works as advertised.

The honest problem is that Gitea exists. It started as Gogs’s own code and community, and it has spent the last eight years running ahead. If you’re setting up new self-hosted Git infrastructure today, the practical question isn’t “Gogs or GitHub” — it’s “Gitea or Forgejo.” Gogs makes sense if you have a specific hardware constraint that nothing else fits, or an existing deployment you don’t want to migrate. For a new setup with no strong reason to prefer the original, start with Gitea.

If deploying either is the blocker, unsubbed.co’s parent studio upready.dev handles one-time self-hosted deployments — you end up owning the infrastructure without owning the afternoon.


Sources

  1. DEV Community“Revolutionize Your Workflow: Gogs, the Self-Hosted Git Server You’ve Been Waiting For”. https://dev.to/githubopensource/revolutionize-your-workflow-gogs-the-self-hosted-git-server-youve-been-waiting-for-nak

  2. Nathan Willis, LWN.net“Self-hosting projects with Gogs” (July 7, 2015). https://lwn.net/Articles/650145/

  3. AlternativeTo“Gogs — A painless self-hosted Git service written in Go” (user reviews and metadata). https://alternativeto.net/software/gogs-go-git-service-/about/

  4. WebAppers“Gogs — An Open Source Self-Hosted Git Service” (November 6, 2015). https://www.webappers.com/2015/11/06/gogs-an-open-source-self-hosted-git-service/

  5. LinuxLinks“Gogs — self-hosted Git service”. https://www.linuxlinks.com/gogs-self-hosted-git-service/

Primary sources:

Features

Authentication & Access

  • LDAP / Active Directory
  • Two-Factor Authentication

Integrations & APIs

  • Plugin / Extension System
  • Webhooks

Mobile & Desktop

  • Mobile App