Gitlab replacement in Go – gogs

In my past job and for my own scripts I used gitlab as repository. Most of the time it was running fine and the functionalities are also ok. But from time to time I faced problems in updating gitlab from the repository (on Ubuntu). The process to reconfigure gitlab was failing often due to issues with postgresql.

Therefore I started to search for an alternative to gitlab. I prefer to run my own server therefore github is out of scope. A short google search pointed to a git repository server written in GO.

Features (Source: Github gogs)

  • Activity timeline
  • SSH and HTTP/HTTPS protocols
  • SMTP/LDAP/Reverse proxy authentication
  • Reverse proxy with sub-path
  • Account/Organization/Repository management
  • Add/Remove repository collaborators
  • Repository/Organization webhooks (including Slack)
  • Repository Git hooks/deploy keys
  • Repository issues, pull requests and wiki
  • Migrate and mirror repository and its wiki
  • Web editor for repository files and wiki
  • Gravatar and Federated avatar with custom source
  • Mail service
  • Administration panel
  • Supports MySQL, PostgreSQL, SQLite3 and TiDB (experimental)
  • Multi-language support (22 languages)

I have installed it on my Raspberry PI 2 as a PoC and I have to say I’m impressed of the performance and simplicity compare to Gitlab. In my next post I will write a small how to setup Gogs on Ubuntu.