Gogs – A simple, stable and extensible self-hosted Git service
gogs.io
gogs.io
tl;dr "additional functionality" yes, and also some missing functionality.
I don't think that `git push --delete <remote_name> <branch_name>` is very easy to remember so I prefer doing it via the web interface.
https://github.com/gogs/gogs/graphs/contributors?from=2018-0...
https://github.com/go-gitea/gitea/graphs/contributors?from=2...
Gogs is a one man show that accepts occasional drive by commits, while Gitea has several active maintainers and a lot of smaller contributers.
All of these people self-host and it solves a problem for them.
It's also hard to justify routing traffic through different continents if all you want to do is share a repository with someone sitting at a desk right next to you.
Prime example is obviously github, why would my company host on github if they never made profit? that service could go away any time or the service could change in a way that is a pain for my company to migrate.
It swings for other things you'd host, if I use services on Azure (such as Thunderhead) and I'm developing games, well Microsoft also develops games. I put my IP at risk.
A business is often enough to spend that extra cash to be independend from a thirdparty.
The risk of not being able to deploy anything, because github is down, is real.
With Github, it's very possible that their seemingly frequent outages will cause problems for your deploys/etc. Yet, those problems will likely be short lived.
On the flipside, your tiny instance of Git will likely be more stable than Github, but if it does go down you better hope you had proper backups, can spin those backups easily, etc. It might be down for days. It's unlikely to happen, but you can't just go get coffee.
Though, with the right self hosted solution, it should be fairly trivial to deploy a new instance, restoring from backup/etc. The concern would be data loss, but even at that, it's Git so you're likely fine due to distributed backups.
git remote add github url_to_repo
git push —mirror github
If you're using git then you already have the whole repository everywhere you've cloned the remote repository. Therefore, your example is at best implausible.
That's a github-specific problem, not a git-specific problem. It doesn't make any sense to assume that a github-specific workflow would apply to a scenario involving self-hosting a git repository.
Man have we lost some real know how and decided big sevises are the "way to go".
It's not if your service -- self hosted or not -- it's when your service goes down.
I run both a gogs server and depend on GitHub. In the last 3 years GitHub has been down for my repos at least 2 times. My gogs instance has had zero down time ( minus breif upgrades ).
We really need to start checking out self on the dependency of 3 party service. There is no guarantee they will be available forever or that they will work the same 10 years from now. And if your build system depends on any of these services good luck with useful code eacrow.
Oh the typos!
1) self hosted service goes down 2) opinion 3) dot 4) start checking our selves
There are more I am sure, but I have no more time, back to holding a baby.
Also, stupid phones without physical buttons don't help.
I recently got rid of my personal gitlab because it's too painful to operate. I only need a simple ssh user with a directory for my own purposes.
Gitlab is only necessary at work where we are an entire team using it.
But as soon as you start touching HA, you have to unbuckle all of it's components, and that's where it becomes a real, real pain. Because gitlab does not assume you will do this and starts _freaking_ out when it tries to start something which doesn't exist on the local system.
It takes a long time to find all the dials and triggers to turn local starting off, and even then you basically have a full omnibus installation sitting on each of your nodes, because even if features are turned off they sometimes need some part of the code for the feature.
At this point upgrading anything is not just a tedious process, it's also error-prone and time consuming. Take every web-node down, upgrade the local packages on the web node you use to upgrade the database, then do the db migrations, then you go around upgrading everything else to the latest version, then you can slowly bring everything online and hope that it works.
Don't event get me started on extending it's authentication system.
You can open issues about specific complaints in [1] and [2].
Funny enough I believe I finally figured it out, after years! It was hanging on mail notification jobs because the MTA wasn't properly setup. Once the MTA was fixed sidekiq was working better and I was also receiving mail notifications.
Even so, syncing with AD I get internal names like shortname@addomain.local and most users don't update their profile. Thankfully the MTA just queues them and discards them without blocking sidekiq.
I've worked a lot with async jobs in Python using both RMQ and rq, I don't see why sidekiq should be such an issue. I've never had issues like that myself in my own projects.
Also felt that it was hard to manage compared to my own experiences with job management in Python. Adding to the frustration was having to understand a (to me) foreign language like Ruby. Something I never wanted to learn and avoided successfully. I ended up having to write a little bit of code that could kill sidekiq jobs because I couldn't figure out how to do it through any interface provided by Gitlab.
I think the most complicated thing I do with it is have a script which writes my LDAP server's credentials into it automatically.
I've always avoided the docker setup because I want control of where my database is and such details.
But yeah all I see when I look at the install instructions are the same steps as gitlab requires, unless you use Docker.
It would be possible for them to make a simpler package for simple users where they'd use sqlite for example. This can easily be upgraded to Postgres/MariaDB.
I like the ROOT setting because that means I can easily adopt gogs on my existing personal git server which simply uses a gitrepos directory in a home directory on a closet server.
So hypothetically were they to use a default database setting, and a default ROOT setting, you could have a working gogs setup with just two package manager commands, one to add the repo and one to install the package. That's painless!
Advanced step can be to create a mysql database and import your sqlite data.
I would love to share this little piece of information about GitLab installation with everyone.
Since there was a little confusion mentioning GitLab installation, I would love to clarify that our installation page [1] offers many different approaches. Before the installation process, please make sure that you read our Installation doc [2].
The Omnibus package may be the best choice installation since it is quicker to install, easier to upgrade, and it contains features to enhance reliability not found in other methods [2].
[1] https://about.gitlab.com/install/
[2] https://docs.gitlab.com/ee/install/
[3] Other official installation methods are via Docker, Kubernetes, Google Cloud Platform etc.
Full list of discussions about Gogs: https://hn.algolia.com/?query=gogs&sort=byPopularity&prefix&...