mrkeyoor.com_
Thu 03 Sept 17:49 UTC
Self-Hostedevaluationupdated 03 Sept 2026

gogs review

Gogs is a self-hosted Git service for teams that want repositories, code review, issues, wikis, and access control on their own server. It packages a familiar web interface with Git over SSH and HTTP, without requiring a GitLab-sized operations stack.

trackingstars / 7d
Verdict

Our Gogs checkout installed 415 pnpm packages in 16 seconds, but exposed no build or test target, so that clean install does not verify the Git server. Gogs remains appealing for a small, self-hosted forge if its documented feature set is enough and you will stay current on security patches. Choose Gitea or GitLab when CI, packages, enterprise sign-in, or deeper API automation belongs inside the same product.

We ran it

Lab card: what happened when we ran gogsScreenshot of gogs (gogs.io)
Install✓ · 16s415 packages · 244 MB
Buildn/ano build script
Testsn/ano test script
Repo2643 files~202,613 lines of source · 38.8 MB · 7 CI workflows · Dockerfile

Answers from our run

Does gogs build from source?

Dependencies installed in 16 seconds (415 packages), and the project has no separate build step. We cloned commit aec2b84 into a clean Debian container with 3 CPUs and no project-specific setup.

Does gogs have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use gogs?

Organizations that require SAML today: issue 1221 has tracked SAML support since 2015 and remains open.

What are the alternatives to gogs?

Gitea, Forgejo, GitLab Community Edition. Our Gogs checkout installed 415 pnpm packages in 16 seconds, but exposed no build or test target, so that clean install does not verify the Git server.

Setup3/5Binary paths are clear; source build and lab verification are incomplete
Docs4/5Good install and config detail, with a source-build gap
Community4/547,800 stars and recent issue activity despite an August push
Maturity3/5Long-running core, but v0.14.3 carried broad security repairs

Who it’s for

Small teams whose server meets the documented baseline of 2 CPU cores and 512 MB of RAM.
Administrators who can manage one Go service, backups, TLS, SSH, and upgrades.
Organizations comfortable choosing among 4 supported database families.
Low-resource installations where integrated CI and a package registry are not requirements.

Who it’s NOT for

Organizations that require SAML today: issue 1221 has tracked SAML support since 2015 and remains open.
Automation that depends on a complete, stable pull-request API: the README calls the API experimental, and issue 2253 still requests core pull-request endpoints.
Source builders who expect one documented command to produce a verified server: issue 8410 reports that the former Go build command no longer works after the project layout changed.
Operators who cannot apply security releases promptly: v0.14.3 fixed remote code execution, authorization bypasses, SSRF, stored XSS, and private-data exposure.
Teams expecting OIDC in the current release: pull request 8032 remains open and its test-case checkbox is unfinished.

Setup reality

Our sandbox installed 415 pnpm packages in 16 seconds, using 244 MB on disk. The checkout exposed no build script or target and no test script or target, so both steps were skipped. Commit aec2b84 contained 2,643 files, about 202,613 source lines, and 38.8 MB of checked-out data.

A running Gogs service needs Git 1.8.3 or newer, a database, custom/conf/app.ini, and an unguessable secret. SQLite is the smallest database path; MySQL, MariaDB, and PostgreSQL need initial database creation. SSH requires either the built-in server or a separate SSH service.

Binary and Docker installs are documented, but source setup is less settled. The docs offer a modern non-root image with fewer container options and a traditional root-privileged image with more controls. Open issue 8410 asks for a working bare-metal source-build procedure after the repository layout changed.

More than 31 translations sit atop a Git forge without bundled CI

Gogs translates its interface into more than 31 languages and puts repositories, pull requests, issues, wikis, organizations, webhooks, Git LFS, and branch protection behind one web service. Users can clone over SSH, HTTP, or HTTPS. Authentication options include SMTP, LDAP, reverse proxy headers, GitHub, GitHub Enterprise, and two-factor authentication. That is enough for a private engineering team whose build system already lives elsewhere.

The boundary is as useful as the feature list. Gogs does not claim an integrated CI runner or package registry in its README. Its API is labeled experimental. The browser floor is also conservative: the smallest officially supported resolution is 1024 by 768. Teams wanting one product for source, pipelines, artifacts, planning, and modern phone layouts will reach Gogs' edges sooner than a group seeking a compact Git server.

The 16-second install did not expose a server build

Our commit aec2b84 checkout installed 415 pnpm packages in 16 seconds and occupied 244 MB afterward. The repository is a workspace monorepo, but it had no build script or target and no test script or target available to our runner. Both steps were skipped. This is a narrower result than a passing Go compilation or an end-to-end login and clone test.

We measured 2,643 files, roughly 202,613 lines of source, and a checkout size of 38.8 MB. Our scan found 7 CI workflow files, a Dockerfile, and no tests directory. Those signals describe the measured commit, not every release artifact. They also explain why the quick package install should not be mistaken for proof that repository creation, SSH transport, database migration, or pull requests worked.

What happened when we ran it

In our fresh Debian sandbox, pnpm completed the available install in 16 seconds with 415 packages and 244 MB on disk. The container had 3 CPUs, 8 GB of RAM, no secrets, and no elevated privileges. Nothing in the install step failed. The project supplied no runnable build target, so our automation recorded the build as skipped rather than inventing a Go or frontend command.

Tests were skipped for the same reason: the checkout exposed no test script or target. We therefore have 0 measured server tests to report, not a passing test suite. The lab result is still useful because it identifies a verification gap in this 2,643-file repository. Anyone building from source needs a project-specific procedure and should test the compiled server, database migrations, web login, SSH clone, HTTP push, and backup restore separately.

SQLite is easy; SSH, secrets, and backups remain yours

The installation guide requires Git 1.8.3 or newer plus SQLite 3, MySQL 5.7 or newer, MariaDB 10.3 or newer, or PostgreSQL 9.6 or newer. Git over SSH adds either the built-in SSH server or a system SSH service. A custom/conf/app.ini sets the public URL and database connection. Gogs refuses to start with the unsafe default secret, which is exactly the right failure mode.

SQLite keeps a small installation compact, while a shared team may prefer a separate database. The sample PostgreSQL configuration points to 127.0.0.1:5432. The first person to register on an empty instance becomes the administrator unless an admin is created from the command line. Put TLS in front, restrict sign-up before publishing the URL, store the secret outside source control, and prove that repository data plus the database can be restored.

Version 0.14.3 is a security-mandatory upgrade

Release v0.14.3, published June 7, 2026, is almost entirely a security repair release. Its notes include fixes for remote command execution, server-side request forgery, stored cross-site scripting, authorization failures, arbitrary file writes, private attachment access, and cross-repository LFS disclosure. A code host receives untrusted names, Markdown, notebooks, webhooks, Git objects, and credentials, so these are operating concerns rather than obscure edge cases.

The release notes also describe a container transition that is still underway. A next-generation, non-root image began publishing in v0.14.1, while the traditional root-privileged image is deprecated. The current docs say the modern image lacks some container options. Test volume ownership, SSH ports, configuration variables, and backup jobs before changing image families, then pin a release instead of following a moving tag.

SAML issue 1221 remains open after 11 years

Issue 1221 has requested SAML authentication since April 2015 and remained open when checked. An OIDC implementation exists as open pull request 8032, but its checklist says test cases are still missing. The README's present authentication list names other methods and does not claim either SAML or OIDC. Companies with a required identity provider should confirm the released feature, not budget around an open contribution.

API coverage has a similar limit. Issue 2253, opened in December 2015 and updated September 2, 2026, asks for pull-request listing, file, diff, and comment endpoints. The project's own README calls API support experimental. A bot that only creates repositories or users may be fine, but review automation should map every required call against the current API reference before migration.

August code activity coexists with a large open queue

GitHub recorded the last push on August 26, 2026, and issue discussions were active on September 2. The repository had 47,800 stars and 1,011 combined issues and pull requests. That is an active project with a large backlog, rather than a project made stale by the June release date. Issue 8410, about source builds after the layout change, also shows that current changes can get ahead of the installation path.

Gogs is a sensible choice when you value a focused Git forge, modest documented hardware needs, and database flexibility. Our 16-second dependency install makes the checkout cheap to inspect, yet the missing build and test targets leave the important server behavior unproved. If SAML, OIDC, CI, packages, or pull-request API coverage is mandatory, settle that requirement before moving repositories.

Alternatives

ProjectWhat it isPick it when
Gitea gh↗A self-hosted development service with Git hosting, packages, and built-in CI.pick this instead when integrated Actions, package storage, and a wider current feature set matter more than Gogs' smaller scope.
ForgejoA community-governed Git forge derived from Gitea and hosted primarily on Codeberg.pick this instead when community governance and federation work matter to your hosting decision.
GitLab Community Edition gh↗A much broader development platform with CI, security workflows, and project planning.pick this instead when one heavier platform should own source, pipelines, packages, and planning.

What people are saying

  1. [github-trending] gogs/gogs

Sources

  1. Gogs README
  2. Gogs installation guide
  3. Gogs v0.14.3 release
  4. Source build issue 8410
  5. Pull request API issue 2253
  6. SAML support issue 1221

More self-hosted reviews

limusic · xbmc · owncast · crowdsec · kopia · openreplay · the whole board →