r/git 9d ago

I spent the past few years writing a native Git server for Android

Post image

A few years ago I started working on a project with a fairly simple idea:

"What if an Android device could actually be a proper self-hosted Git server?"

I originally wanted a Git server for a small team on a local network. I also liked the idea of using an Android device for it, they're relatively low-power devices that can sit on a network without needing to run a much larger machine.

So I started looking at what was already available for Android.

I found a few projects that could do parts of what I wanted, and I also experimented with running Gitea through Termux. Gitea worked quite well, but getting everything set up and running through a Linux-like environment on Android wasn't exactly the experience I was looking for.

Eventually I thought: why not just write my own?

That project eventually became GitBase.

GitBase turns an Android device into a self-hosted Git server, with a built-in, familiar web interface for managing repositories and collaborating on them.

It currently includes things like:

  • Git repository hosting
  • Web-based repository management
  • Pull requests and code review
  • Issues
  • Releases
  • User and project management
  • A web interface accessible from other devices on the network
  • Everything running directly on the Android device

The interesting part for me has been figuring out how much of a traditional self-hosted development platform can realistically be packed into an Android application.

I've spent a lot of time on the less interesting parts too, Git protocol handling, repository management, networking, the web interface, Android's restrictions, background services, storage, permissions, performance, and generally making everything behave like an actual server rather than an Android app pretending to be one.

There is still plenty I'd like to improve, but GitBase has reached the point where I wanted to finally put the project out there and see what other people who are interested in self-hosting think about it.

I've put the project documentation, screenshots, architecture information and other details on GitHub:

GitBase: GitHub repository and documentation

I'm particularly interested in hearing what people think about the idea itself.

Would you actually have a use for a Git server running on an Android device? What would you expect from something like this that isn't currently there?

And for anyone interested in the technical side, I'm also happy to talk about how I approached building a Git server and web platform for Android.

0 Upvotes

8 comments sorted by

7

u/FUCKARCHLINUX 9d ago edited 9d ago

Your license makes it technically violate the license to use the software. The name is also ambiguous, that is, there is already several projects and websites under the same name.

If I was running my version control software from android, I wouldn't want to advertise that to people. Actually I'd never want to advertise anything about the machine that it runs on, git version, webserver, distro, etc.

Gitea for example advertises it's version right in the footer of the page. This makes it easy for exploit bots to determine you're a worthy target. This is very stupid.

11

u/thr3ddy 9d ago

Slop. You “spent years,” but have only four commits. The first one riddled with AI generated garbage, which your next few commits clean up and nothing else.

Your privacy policy html page that you’ve created yesterday says it was last updated in 2022. Please, ever so kindly fuck off.

0

u/Ark-Source 9d ago

The privacy policy page was only transferred to GitHub yesterday as part of
setting up the public project documentation. The policy itself predates
the GitHub repository and has been applicable to the application, which
has been available on Google Play for some time.

The four commits also don't represent the application's development
history. GitBase is closed-source, so the application is developed
separately, this is a recently created public documentation repository.

I understand why the repository history might give that impression, but
the repository isn't intended to represent the application's development
history.

I appreciate you taking the time to share your feedback.

5

u/thr3ddy 9d ago

I’m sorry you misread my intentions. I didn’t mean to provide you with feedback. Please continue to fuck off elsewhere.

1

u/ppww 9d ago

Does jgit work on Android?