Hacker News new | past | comments | ask | show | jobs | submit login
OneDev – A Lightweight Gitlab Alternative (github.com/theonedev)
200 points by steveluo9 56 days ago | hide | past | favorite | 69 comments

This isn't a Show HN.


This was the Show HN. There were already many discussions about onedev here and the resubmissions slowly get out of hand...

That was 2.5 years ago and I missed it. Are you a moderator?

Show HN is only for things you wrote yourself and want to share https://news.ycombinator.com/showhn.html

I'm not a moderator, but there are guidelines for posting and one of them is how often you should repost


was postet many times in the last 12 months and some users even reposted twice.


It's starting to get confusing/difficult to keep track if something is reposted again or just something with the same name.

Show HN is about showing your own work, not just sth you think is interesting. Doesn't matter if you missed it, still shouldn't have posted it.

I'd say "Shouldn't have put Show HN in the title", otherwise it's a good submission.

Disclaimer I am the author (not OP). I guess the user re-posted by simply copying my original one...

My main gripe was that it was postet by OP as a "Show HN" ;)

Nice work btw always astounded how you keep developing it for so long nearly solo. I was many times intrigued enough to try to switch to OneDev just to try it, but my personal git setup is working too well right now. Never switch a running system runs too deep in me.

Anyway there seem to be discussions taking place so I will cut the noise and stop whining.

I’d never seen it before, was glad for the post, looks cool.

Correct: Show HN is for sharing your own work. We've taken that out of the title now.


Coming in 2027: HubLab - An Opinionated OneDev Alternative!

Wheel-in-the-sky-keeps-on-turning jokes aside, the self hosted repo is a better intro: https://code.onedev.io/projects/onedev-server

It is running on a medium EC2 server with 2 core. So might be slow during in this HN traffic...

Not slow, but unavailable:

> code.onedev.io took too long to respond

Turns out the front end apache process is crawling for some reason. Restarted and is ok now.

Just in case, check the number of workers (assuming you are using mpm worker and not mpm event)

this was my thought as well. wasn't gitlab promoted as an open source alternative to github at one point?


These are signs of high growth markets, and how counter-intuitive the exponential growth of the internet has been.

At the beginning we had Github. And that was enough. Then we had Gitlab, and most of us wondered: "who are these crazy dudes that want to compete with Github?". They were absolutely right, and the market grew so big that they found their own space.

Now, more alternatives keep appearing (like OP's).

It happened the same with Slack or Zoom. When Slack/Zoom came out I thought: who would want to compete with (Skype,hipchat)/(Google Meet, etc). But the markets grew a lot and there was room for everybody.

I guess I'm not very smart about business :')

Best of luck OP!

In the beginning we had the VMS versioning file system [1] (well I had you might be older ;-) And that was enough. Then we got RCS. Then CVS. Then we got SourceForge. And that was enough. Then we got Git!

[1] https://en.wikipedia.org/wiki/Files-11 <3

To this day I still wish many of the VMS innovations hadn’t remained walled off. Files-11 was a brilliant thing.

I feel the same way about logicals. For those unfamiliar, the OS had a distributed hierarchical key-value store like etcd or zookeeper built in, years earlier than these technologies.

Any business that grows eventually gets taken over by shareholders and their goals of maximising profits so they can get their dividends or other benefits. They think their product has become invincible and nothing could sink it. Then when they think it actually might sink they double down on extracting profits. This strategy is always against the users of the product, so eventually they get tired of it a seek for an alternative. Then they find an alternative, it grows... and cycle repeats...

It's a sign that GitHub and GitLab are both too heavy-weight for what people want out of them, more than anything. It certainly has been this way with Gogs/Gitea.

I am not convinced that 'not using yaml' and then show a visual ui to define ci pipelines is a great selling point. I definitely wouldn't want to define that through a UI. Instead I think high level of testability of such CI pipelines would be.

At the moment it always commit and push the change and wait how the pipelines acts, rinse and repeat. If you could run it locally and find out the results would be such a time saver.

The UI internally generates a yaml file to store in the repository. For instance OneDev uses this yaml to build itself:


The advantage is that you can get things working quickly while still be able to diff changes, or generate the file with some other tool.

Onedev still commits it to the repository as a file, so you’re not entirely out of luck there.

Running locally is not a thing though. There’s services that do exactly that though (https://dagger.io/, https://earthly.dev/).

If you want to properly compete with an existing product that doesn't have a polished UI (e.g. GitLab), about the easiest way you can do it is deliver a polished UI. Unfortunately, OneDev's UI is even less polished than GitLab's.

However, it's a big project and I commend the authors.

I guess the main differentiators that OneDev, Gitea etc. have vs. self-hosted Gitlab is their more focused feature sets and small footprints. Gitlab's minimum 4 cores, 4-8gb of RAM just to run at all is prohibitive for some use cases. I use Gitea as a locally-hosted fallback so critical IaC repos are still available and can be accessed by things like flux in a (local) k8s even if Github isn't reachable. I don't need Gitlab's feature set for that, I could do with plain git repos over SSH, but having a lightweight UI is actually really nice, and I'll put up with some quirks as long as the basic functionality works well.

This. I chose Gitea instead of Gitlab specifically because of the high resource consumption. If OneDev turns out to be a sweet spot in between the two (I really wish I had CI/CD built into my VCS server), I might just switch.

Is the UI polish what bitters you most about GitLab, and would make you switch?

For me, yes. That it's unintuitive and messy is something I can get used to. The weight, resource, usage and slowness I can not. It feels like JIRA.

Thanks for the comment. What area of OneDev UI you feel is unpolished?

there's only 1 author

The thing I am still missing is a zero-weight alternative to Github/lab. Most of the task performed on either of them could be done in a completely distributed fashion (issue tracking, CI, etc.), just like git itself. But there has been frustratingly little development in that area, though a few projects exists (e.g. "git-bug", "act").

You mention CI being done in a distributed fashion. Could you elaborate on what you mean by this?

I'm asking as I'm someone who has developed a CI platform [1], and one of its features is the offline runner [2]. The offline runner allows you to run your CI builds on your own computer, and does not communicate with the CI server whatsoever. Is this what you had in mind?

[1] https://about.djinn-ci.com

[2] https://docs.djinn-ci.com/user/offline-runner/

I know about Google’s gerrit. I now found https://github.com/google/git-appraise, there seems to be a plethora on the issue and pr tracking side.

Then the other day there was a generic/abstraction layer to write CI that abstracte over gitlab, circle ci, and GitHub actions (maybe more). I suppose all that’s left is to get some api tokens somewhere and go?

Fossil advertises this as a main selling point: https://fossil-scm.org/home

Sure, but Git is the standard.

there's git appraise, however I find it a bit immature. I try to use it with a rebase workflow instead of a merge workflow and it completely fails with that.

Apart from the fact that the onedev website is slow as a snail, I'm also a bit iffy about the help documentation's styling. It feels very cramped and tiny. If you compare your help docs [0] with eg. Microsoft's docs [1], the latter is much easier to read and less tiring to look at!

[0] https://code.onedev.io/projects/162/files/main/pages/quickst... [1] https://docs.microsoft.com/en-us/microsoft-365/solutions/emp...

I also notice some outdated stuff like a 14px html and body font so your font size doesn't scale, as well as a fixed, 900px width div for your content. This all doesn't scale. Why haven't you set this up to be a bit more flexible?

> I'm also a bit iffy about the help documentation's styling. It feels very cramped and tiny. If you compare your help docs [0] with eg. Microsoft's docs [1], the latter is much easier to read and less tiring to look at!

wow, let's agree to disagree :D The MS site looks horrible cramped, and the title is waaay too large :P

Docs definitely needs to be improved. Currently I am writing all docs in OneDev itself, which may not be appropriate.

i'm using it since 3 full years now, Robin is doing great work !

Well, the doc is not perfect but let you start using advanced features, settings and workflows.

We're running our private instance and OneDev, it is fast and feet 90% our needs. it's our main central dev tool

wow, the onedev docs really do load extremely slowly - i gave up on waiting :/

It is running on a single 2 core medium class EC2 server. I am starting a powerful machine hoping to get things better during this HN traffic.

As a long-time user, I want to show my big thanks to OneDev and its author, for its features, performance, resource efficiency, and most importantly, Robin (the author)'s quick response to all questions and issues. This tool should have its position in DevOps market.

Thank you for seconding OneDev!

The most important thing i need from github, gitlab,... is the convenient tool for code review.

To review is different from to see the changes only.

We need context, fast scrolling, auto-smart jumping between related code parts...

isn't this something that should be done in your code editor instead? That is actually made for just these things

Indeed... I guess people expect to use the web interface as their IDE, but no single web UI can fit everybody.

Personally I don't think it's a viable alternative to GitLab. But it seems to be an excellent alternative to GitHub.

I am wondering how the performance compares to Gitea. I guess it would need way more resources

One thing that surprised me: pushing git-lfs files was around 3x faster in onedev on a ~3gb repository with about ~60k files. I don't know whats going on inside gitea to make it so much slower as they both just store data inside a folder.

Why gitlab in particular?

> “Lightweight”

> written in Java

seems like a contradiction, no?

edit: thanks for explaining me why this is not the case

Not at all. Java the language is not heavyweight (your smart cards and sim cards run Java code inside them!), and the regular JVM can run on pretty low resources.

It's the frameworks and architectural decisions that make Java software feel heavy or light. Very much like with JavaScript, for instance.

Back at some previous job, we ran a lot of small services written in Java; a service consuming 50 MB of heap was considered unusually heavy.

Besides git, OneDev only has one JVM process which actually saves resources compared to other products packaging dozens of processes.

In future, I will explore graalvm (or Jave native) to further reduce resources.

Java unfairly has been given a bad rep since its earlier versions (similar to how PHP still is tainted by its SQL injection vulnerabilities pre PHP7)

Java as you know is translated into byte code and then it is up to the compiler to use JIT compilation when running the code. JIT allows flexibility to choose how to optimise linkers and references to other libraries which means that it can choose how to optimise the code after Run 1, 10, 100. Some Java VMs can decide to optimise "fast startup" vs "fast runtime".

This is a nice flexibility and with Java maturing into Java 17 there are more and more optimisations on the horizon for VMs, GC and precompiling dependencies.

Lighter than Ruby or Python.

I've always thought like you... Until using OneDev.

For me, Java was : - slow and heavyweight - dist directory often a fucking mess

OneDev distribution (docker container or zip for baremetal) is clean and very well organized. There are running scripts for both plateform linux/windows. Fast.

isn't gitlab already the github alternative?

GitHub arguably have been turning around a bit and are starting to become more like GitLab. Initially, GitHub just cared about hosting code and enabling social features, while GitLab early focused on becoming "everything" for building services. Lately, GitHub are trying to become GitLab though.

What is dogfooding

When a company builds their products with their own products, thereby demonstrating real world use cases and confidence in the product.

When you eat your own dogfood (or rather, feed it to your own dogs), to demonstrate confidence in your product. You can experience things as your users do, which can help give you a better understanding of how people use your product and the issues they may find.

That was one of the unfortunate realities when developing Riak at Basho: while we used Riak, we didn’t need its massive scalability, so it was hard to find the problems that customers would eventually stumble upon.

We are dogfooding here: https://code.onedev.io/

All development happens here, and GitHub serves as a mirror

Using your own product.

Applications are open for YC Winter 2023

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact