
Gogs – Go Git Service - of
https://gogs.io/
======
Mahn
> How to use downloads?

> 1\. Extract the archive.

> 2\. cd into the directory just created.

> 3\. Execute ./gogs web and you’re done.

Can't beat the simplicity of running Go applications. It's funny because
running a compiled binary is so incredibly basic to computing, and yet 90% of
the time installing a new shiny toy in a server involves dealing with 342525
dependencies, half of which broke because god knows what dependency wasn't
targeting the right version. And you sit there debugging dependencies and
errors and pulling your hair for two hours, trying to get someone else's mess
to work, wondering how did we get this so wrong.

~~~
gnuvince
A lot of Java software is "(1) download the jar file, (2) java -jar
thefile.jar". Agree it's good for the user, but when people talk about
distributing a statically-linked program the "what about security updates"
question invariably comes up.

~~~
matt_wulfeck
It is still easier with static compiles if you ask me:

"Make sure you're running Gogs 1.64.2 or above"

"Make sure you're running Gogs 1.64.2, OpenSSL 1.2e, libcrypt 3.73, leftpad
2.0..."

Especially when the deployment of said binaries doesn't involve anything
installed on the host OS.

~~~
raimue
"Make sure you run Foo 1.7, Bar 2.1, Baz 2.3, ..."

"Make sure you update to OpenSSL 1.2e and restart all services."

If you think of more than one program using the same module, shared libraries
make a lot of sense.

~~~
robmccoll
You do run into false dependencies causing needless headaches with dynamic
libraries though. There's a vulnerability in hash X in OpenSSL. One (or worse
zero) of my 15 installed applications that depend on OpenSSL actually uses
hash X, but in order to upgrade, I have to carefully manage those 15
dependencies. With statically linked dependencies, the hash X code wouldn't be
in any of the other binaries and I only update the one (or perhaps don't have
to update at all).

~~~
raimue
What do you mean by managing dependencies? You upgrade to an OpenSSL version
that fixes hash X and be done with it? I don't understand your point.

~~~
mikecb
Can't upgrade if the fix was dropping the hash because it's fundamentally
flawed.

~~~
raimue
That would be an ABI incompatible change. These are only allowed when
increasing the compatibility version (SONAME). You would immediately notice
such a change. For the usual package managers that would even require to
create a new package.

------
Udo
I've been using Gogs now for a few months and can't recommend it enough as
opposed to GitLab. It does have some rough edges (for example the many
instances where its CSRF protection feature misfires), but generally it's a
very solid and performant git frontend. Although a plugin or widget system
would be nice, it was also easy to extend the Gogs UI simply by editing its
very straight-forward template files.

~~~
mh-cx
Same here. Gitlab is soooo extremely slow. Even on their own site many pages
take several seconds to load. And no one really seems to care.

Gogs is a great relief.

~~~
sytse
GitLab.com is slow because of operational issues, like everything running from
one NFS server. GitLab on your own server with enough memory should be fast.
The slowness of GitLab.com is unacceptable to us, work to improve it is
ongoing in [https://gitlab.com/gitlab-
com/operations/issues/42](https://gitlab.com/gitlab-com/operations/issues/42)

~~~
mh-cx
Can't confirm that. I have to work with gitlab with different customers on
several independent project teams. No installation feels fast. Memory is >2GB.
Also have it here on a machine with 4GB. No page loads under 1 s. And the ajax
requests seem to take even longer than a full page reload. Its a pitty you now
load almost everything with Ajax and there's no option to turn that off. I
often find myself to click a second time on a link because the browser spinner
doesn't move and your progress bar is not really where my focus is.

I had been using 5.1 for quite some time before. It wasn't really fast either,
but things have gotten much worse with newer versions.

~~~
sytse
Thanks for your feedback. As we added more and more functionality to GitLab it
probably has gotten slower. Since a few months we have 2 people working on
improving performance fulltime. As you can see in [https://gitlab.com/gitlab-
com/operations/issues/42](https://gitlab.com/gitlab-com/operations/issues/42)
our focus is GitLab.com performance but many of the changes should also
improve the speed for on-premises installations. Changes include fewer calls
to git, better caching of markdown rendering, etc. We already saw a lot of
improvement in GitLab 8.5
[https://about.gitlab.com/2016/02/22/gitlab-8-5-released/](https://about.gitlab.com/2016/02/22/gitlab-8-5-released/)
and we plan to continue making progress here.

~~~
mh-cx
Sounds good. But honestly since I've read this my faith in the ruby/rails
stack (or is it the gitlab devs?) is somewhat limited:
[http://doc.gitlab.com/ce/operations/sidekiq_memory_killer.ht...](http://doc.gitlab.com/ce/operations/sidekiq_memory_killer.html)

A quite forthright confession of memory leaks - with imo questionable
countermeasures.

~~~
sytse
Blame us more than the stack. These memory leaks are hard to diagnose. Our
meta issue to do this is [https://gitlab.com/gitlab-org/gitlab-
ce/issues/3700](https://gitlab.com/gitlab-org/gitlab-ce/issues/3700) We're
currently we're more focussed on improving responsiveness and plan to address
the memory leaks and a multithreaded app server [https://gitlab.com/gitlab-
org/gitlab-ce/issues/3592](https://gitlab.com/gitlab-org/gitlab-
ce/issues/3592) after that.

------
qz_
I wonder if Gogs will have to change its ui..
[https://news.ycombinator.com/item?id=11374786](https://news.ycombinator.com/item?id=11374786)

~~~
tschellenbach
They should. Github obviously spent countless hours perfecting their UI. Other
apps shouldn't be allowed to copy it. (I have no affiliation with Github,
other than that I'm a developer and respect the hard work they've put into
their product.)

~~~
ycmbntrthrwaway
It is even worse than copyrighted APIs. Such attitude will allow Microsoft to
sue KDE for Windows look-and-feel and LibreOffice for Office look-and-feel,
even without patents. Good features and ideas should be copied as widely as
possible instead of reinventing the wheel for the sake of difference.

~~~
dumbguy
Someone needs to pay the bills.

------
merpnderp
We downloaded and installed Gogs, Gitlab, and Bitbucket. I liked Gogs the
best, but Gitlab seemed more enterprise-y, and Bitbucket had an issue we could
never figure out. We're trying to replace TFS, so we'll probably end up with
Gitlab.

But since I was the one doing the installing, I sure wish we'd go with Gogs.
It was 5 minutes from start to finish.

~~~
sytse
What can we improve in GitLab to make it better? Did the install take too
long? Did you try our Omnibus packages or a source install?

~~~
merpnderp
I tried installing the omnibus and from source. Both times I could not get it
completely working. On CentOS 5.3 x64. I eventually got everything but git
commits working over ssh, but I quit trying to get that working after it
looked like I had to give up port 22.

I was just installing installing for evaluation and hopefully our sys admins
will do the final install.

Gogs was just 'install Go', 'run binary', 'link to database/git ssh user'
done.

~~~
sytse
I'm sorry to hear you had problems installing GitLab. Maybe it was an SE Linux
problem? [https://gitlab.com/gitlab-org/omnibus-
gitlab/blob/master/doc...](https://gitlab.com/gitlab-org/omnibus-
gitlab/blob/master/doc/common_installation_problems/README.md#selinux-enabled-
systems) You can configure an alternative ssh port for the Omnibus packages in
[https://gitlab.com/gitlab-org/gitlab-
ce/blob/30e4d3ce9a18340...](https://gitlab.com/gitlab-org/gitlab-
ce/blob/30e4d3ce9a18340c689557cd0c7b5f69e48795d4/config/gitlab.yml.example#L426)
If you encourter problems again please email support@gitlab.com and include a
link to this comment.

~~~
merpnderp
I think I remember that most of my issues were SE Linux related. We liked
Gitlab and are going with it, I just personally found Gogs a lot easier and
simpler to get going and the missing features weren't that important to us.
Thanks for the helpful links.

~~~
sytse
Thanks for the feedback. Glad to hear you're going with GitLab. If you have
any idea's how to improve our SE Linux experience please let me know.

------
aaronpk
I wrote about how and why I switched to Gogs from GitLab and Bitbucket here:
[https://aaronparecki.com/2016/02/13/18/](https://aaronparecki.com/2016/02/13/18/)

------
matheweis
I switched to gogs from GitLab and haven't looked back. The installation
literally took 10 minutes including all of the sysadmin work.

Main reason was the resource utilization of GitLab was just too high. iirc, it
was actually the CEO of GitLab that recommended the switch... ;)

~~~
sytse
Yes, if you are resource constrained (less than 2GB of memory) and using it
privately I think Gogs is a great choice.

~~~
mh-cx
Sorry, but even with 2GB Gitlab is painfully slow. And it also happens on
gitlab.com where I assume resources are optimized. Loading times of up to 3
seconds for a stupid list of issues are not really acceptable for a web
application in 2016. In fact, they never were.

------
FiloSottile
For extra ease and security (two things not often found together!) try setting
it up in a Sandstorm server, works with one click and is sandboxed from the
rest of your server. [https://sandstorm.io/](https://sandstorm.io/)

~~~
pellucide
Took me about 3 minutes to have it running on a free account.

------
idoom
Thumbs up, docker image
([https://github.com/gogits/gogs/tree/master/docker](https://github.com/gogits/gogs/tree/master/docker))
works great and is easy to setup. I've had it running for a while on a machine
and stopped paying for github :)

------
empressplay
We run Gogs on a bog-standard $10 VPS and it works great; quick, snappy,
reliable. Very efficient.

Can't recommend it enough. Resource usage matters.

------
tazjin
Been using this for a while now and very happy with it. I decided to stop
using Github for personal projects due to political disagreements with the
company and the fact that git should really not be centralised.

Gogs has probably 95% feature parity with Github and it is a lot faster (is
Github still Ruby? That would explain it ...)

I run a personal Kubernetes cluster for services and getting Gogs up and
running was super-simple:
[https://git.tazj.in/tazjin/infrastructure/src/master/gogs/go...](https://git.tazj.in/tazjin/infrastructure/src/master/gogs/gogs-
rc.yaml)

~~~
mbrock
How can you compare speeds when you can't run GitHub on your setup? Running a
multimillion user service is vastly different from running your own personal
server, right?

~~~
minaguib
End-user usability feel (perceived speed) is all that matters, no ?

~~~
Touche
Sure, but you can't conclude that the language is the source of GitHub's
(relative to this) lesser speed.

------
Bedon292
I have been using gogs at home for a few months now as well. It has been great
for all of my needs. Like version controlling little python scripts I am
playing around with, or my resume, term papers, etc in LaTeX. Stuff that will
never be public that I would like to have a little more control over.

~~~
StavrosK
Yes! I've been using it for this purpose as well, and I love it. Easy to
install/update, great GUI for all my needs, and runs on my home server. If you
aren't using it at home, you need to start yesterday.

------
fweespee_ch
If anyone is interested in trying it, the packages are pretty good at keeping
your installation up to date:

[https://gogs.io/docs/installation/install_from_packages](https://gogs.io/docs/installation/install_from_packages)

It is what I use for my misc things at home.

------
mmoya
Eagerly waiting for 2FA
[https://github.com/gogits/gogs/issues/945](https://github.com/gogits/gogs/issues/945)

------
ihowlatthemoon
Previous discussion
[https://news.ycombinator.com/item?id=9210978](https://news.ycombinator.com/item?id=9210978)

------
jeromenerf
I use gogs and github. Both are great git backends, featuring simple
collaboration management. The issues and wiki however feels too primitive to
be useful. I can't really decide if they are already bloated or if they have
not reached MVP yet.

Anyway, I would love to see better integration on both with their mandatory
complements, such as kanban, CI, ...

------
xtacy
Kudos on the polished project release. I am relatively new to go, and I am
curious about the technology stack behind such a webapp. How does it work
under the hood?

\- How do you develop such web apps with html, css, javascript, go, etc. all
interacting with each other?

\- How are static assets packaged in a single binary?

\- Any simple tutorial or stack walkthrough you would recommend me reading?

thanks!

~~~
dejawu
\- As it happens, this is also on the front page:
[https://astaxie.gitbooks.io/build-web-application-with-
golan...](https://astaxie.gitbooks.io/build-web-application-with-
golang/content/en/preface.html)

\- I also recommend going through Go's example wiki tutorial:
[https://golang.org/doc/articles/wiki/](https://golang.org/doc/articles/wiki/)

\- By default, Go binaries are statically linked. If by static assets you mean
CSS, JS, etc., those are usually just deployed alongside the binary.

------
_1
Why is software still being named for the language it was written in?

~~~
voidlogic
For everyday software this is fair, but is software made FOR DEVELOPERS. All
things being equal between two solutions, I am going to take the one
implemented technology I know and can hack on easier.

Also, many of the most popular solutions in this space are written in what
some people would call "low performance languages", since the author here is
using a "high performance language", its just good marketing too.

------
reactor
[https://notabug.org/](https://notabug.org/) on a fork of Gogs

------
11mariom
Do you know any Continous Integrations which fits well with Gogs?

Something small, easy to setup, easy to use. Just as Gogs is.

All I want - integration with git/gogs (webhook?), status page (with detailed
build/test info, especialy for fails), status image (for readme in gogs).

------
mrmondo
I use gogs at home, but run Gitlab At work - it just has so more many more
features and far more customisable - also Gitlab CI rocks, it seems to scale
really well - 60 active developers on a tiny vm and its lightening quick and
we can easily do more than 100 releases a day.

~~~
sytse
Glad to hear that you like GitLab CI. Continuous Delivery FTW!

------
djhworld
I've been running this on my raspberry pi for a few months now, it works
great!

------
Rapzid
How viable would alternate backends be? Like say, AWS CodeCommit?

------
ausjke
the installation doc is not complete, at least not so simple like a 'unzip;
./gogs web', you need create a database, set up users etc, those really should
be documented for a good first-time experience.

also after installation it refreshes into localhost:3000 instead of my-remote-
host:3000, so you have a dead page after the installation.

yes they're easy to fix, but it's good if they're documented

------
ksec
Is there any Gogs.com hosted version?

~~~
of
Yeah, there's [https://notabug.org/](https://notabug.org/)

------
fiatjaf
Does it run on Heroku?

~~~
simonw
Probably not without major changes - it looks like it stores a lot of stuff
(including gir repos and uploaded attachment files) on the file system.

------
mohsinr
Github killer free app is on Github :)

------
kevinSuttle
It kills me when people build GitHub alternatives that are hosted on GitHub.

~~~
skj
Why? Github is about distribution and collaboration with a community. This
product seems to be about private self-owned hosting.

~~~
kevinSuttle
Then why aren't they hosting on their own product?

~~~
patrickaljord
Because that would be public hosting, parent just explained that gogs is great
at _private_ hosting. When it comes to public hosting of open source projects
with network effect, github is still king. I don't think anyone denies that.

------
gramakri
(Pitching my own company [https://cloudron.io](https://cloudron.io) here)

If you want a single click install on a _private_ server and with a custom
domain -
[https://cloudron.io/appstore.html?app=io.gogs.cloudronapp](https://cloudron.io/appstore.html?app=io.gogs.cloudronapp).
We track Gogs releases actively and keep it up to date with no effort on your
part.

My own repos are hosted on gogs -
[https://git.girish.in](https://git.girish.in)

Edit: Since I got asked a couple of times about this (wow, you guys are fast),
anyone can write apps for the Cloudron. It's docker based and you can find the
Gogs app code here [https://github.com/cloudron-io/gogs-
app](https://github.com/cloudron-io/gogs-app)

~~~
fiatjaf
How does this relate to that other similar tool the name I just forgot?

~~~
gramakri
Sorry, which tool :-) ? Docker compose?

Cloudron gives you a private server (we use DigitalOcean right now) on which
you can install web apps. We automate everything about maintaining your server
- DNS, certs, app updates, backups etc. In short, we want to make it possible
for everyone to have their own server. Cloudron is more a consumer product
than a development tool (of course, we have tooling that enables developers to
create apps).

~~~
kbaker
Maybe sandstorm.io?

[https://apps.sandstorm.io/app/d9ygf47xrtnw12j92cyt6cu8ut75es...](https://apps.sandstorm.io/app/d9ygf47xrtnw12j92cyt6cu8ut75esx01u4q3kcrn8415w9qzzgh)

~~~
gramakri
The products are similar. Do give both of them a try.

We have a demo at: [https://my-demo.cloudron.me](https://my-demo.cloudron.me)
(username: cloudron password: cloudron)

