[Toybox] GitHub Self Hosting Alternative Gitea

Rob Landley rob at landley.net
Wed Nov 13 12:44:40 PST 2024


On 11/13/24 03:20, Moritz Christian Weber wrote:
> https://github.com/go-gitea/gitea
> 
> Read a lot good about gitea, but have no deeper experience. At least the
> community edition is free and open source under MIT license.
> 
> Maybe someone has more hands on experience with it

Jeff and I installed gitea on a machine last year, to set it up for some 
internal (behind the firewall) j-core engineering projects. One of them 
was a linux-kernel fork and the command line git instances it ran behind 
the scenes ate 2 gigs of ram each trying to do anything in that repo, so 
if you ever had 3 people browsing the linux repo at once the 4 gig VM it 
was in went down, which even on a fairly small engineering team we 
couldn't guarantee.

But that was a git problem dealing with a large project with a long 
history, not specifically a gitea problem, and shouldn't be an issue for 
toybox anyway. (There was some config tweak they did? Was it checkins or 
browsing that caused the usage spike? It's coming up on 2 years ago and 
Rich dug into the details of that one more than me, I just remember the 
install had structural issues that made "expose to this to the public 
hosting a linux fork" questionable...)

The problem with me running my own gitea instance for toybox is getting 
a dedicated VM with static IP to run it on. Dreamhost's shared hosting 
does cgi but not long-running daemons, and gitea is explicitly designed 
NOT to do that, and when people asked if that could be changed they 
basically went "huh, we didn't think of that, let's not":

   https://github.com/go-gitea/gitea/issues/19854

Gitea is easy to set up, nice UI, but not a drop-in fix for my problems 
the way 
https://lists.mercurial-scm.org/pipermail/mercurial/2007-December/069359.html 
was back in the day when mercurial had a web server with reasonable UI 
built into the project, and designed to be called as a CGI hook on an 
arbitrary .hg directory.

(Which broke a year or so back and now throws an internal server error 
and goes "Response header name '<!--' contains invalid characters, 
aborting request" into the error logs when I touched NOTHING, but that's 
modern python for you. I just chmod-ed the directory so it's forbidden 
instead of internal server error and haven't gotten around to fixing it. 
Juggling too many balls...)

Didn't there used to be a similar-ish cgi script (in, sadly, perl) 
bundled with git? Like 15 years ago? The one "cgit" was created to 
replace. Where was it...

   https://git-scm.com/book/en/v2/Git-on-the-Server-GitWeb

Which... well it's not a TERRIBLE interface (my little sed one's worse), 
and maybe I could get it running in the https://landley.net/toybox/git 
directory with a similar .htaccess rewrite engine and hgwebdir.cgi file? 
People have done that (and more complicated things) with this before:

   https://github.com/tmacam/private-git-on-dreamhost

Instructions last touched 12 years ago, and my old hg cgi setup died 
from version skew LAST year. Sigh. Still, probably worth an evening 
playing with it. What's a repo running it...

   https://git.ghostscript.com/

Oh, it's what kernel.org uses. Duh.

Yes, I had missed the obvious option. Thanks for the poke, I'll throw it 
on the todo heap...

> Best regards,
> Moritz

Rob

P.S. Making "my domain, which I personally manage" a single point of 
failure is less creepy than making anything ELSE a single point of 
failure. The next step would be having it on a server under my desk but 
I've done that long ago and it SUCKED.


More information about the Toybox mailing list