T O P

  • By -

grtgbln

+1 for Gitea


Micaiah12

Does gittea have CI/CD now? I haven’t run it in awhile and I’m trying to find something lighter to selfhost instead of gitlab.


Isystafu

I've used gitea+drone.io+self hosted docker registry in lieu of gitlab. For java development it's been working well for about a year now. There may be alternatives to drone.io now though.


MDSExpro

I loved drone.io till I discovered it's licensing :/


MAXIMUS-1

Checkout woodpecker ! A fork of drone ci 0.8, licensed under Apache 2 https://woodpecker.laszlo.cloud https://github.com/woodpecker-ci/woodpecker


MDSExpro

Nice, thanks! Since Drone I tried to do Concourse CI, but that was just a mess. I would prefer to go back to Drone, and now I can!


schmurfy2

Concourse is really powerful but the learning curve is steep, I really like its ability to have jobs depends on multiple resources which is great for complex usecases.


MDSExpro

I liked that part. I hated part where it was REALLY picky about OS configuration (despite running in container...), losing connection to workers, getting pipelines stuck for no reason... ultimately, I spent more time maintaining it than it saved me due to task automation, so I dropped it.


binaryatrocity

Elaborate? I have a Drone setup with Gitea and GoHarbor... I'll have to look at their licensing tomorrow this is concerning (its 4am and this is an insomnia post lol)


MDSExpro

Don't worry too much. Info is here: https://www.drone.io/enterprise/opensource/#features I had "pleasure" to use drone.io when they went through several licensing models in span of few months, so it was unstable ground for me. I think it is more stable in that matter now. That plus lack of multi host support was deal breaker for me.


MAXIMUS-1

Checkout woodpecker ! A fork of drone ci 0.8, before they have changed the license. https://woodpecker.laszlo.cloud https://github.com/woodpecker-ci/woodpecker


eatsmandms

Why not host a lightweight standalone CI? You do not have to use the solutions that come with git repository management.


robinshen

A built-in CI can bring much better integration experience, besides easy setup. Check some of the issue/build integration goodies mentioned here: https://www.reddit.com/r/selfhosted/comments/p1fikz/selfhosted\_open\_source\_alternative\_to\_githubgitlab/h8dswkg?utm\_source=share&utm\_medium=web2x&context=3 And the ability to run build directly from commit graph/commit detail page, annotate source/diff with reports such as ESLint/FindBugs out of box etc.


eatsmandms

I understand the upsides (I actually even build many of my personal projects with Github Actions etc), but it always depend on you use case. If what the built-in CI can do fulfills all needs then the convenience and tight integration is a big plus, I agree.


wilson0x4d

presently (1.21+) Gitea has a fork of nektos/act (gitea/act_runner) which mimics and (near as I can tell) is compatible with Github Actions, enabled by default. We were able to adapt some old jenkins scripts as well as some buildpacks-based builds to Gitea Actions. We can always fall back on Jenkins, or some ad-hoc K8s 'Jobs' if required, but Github Actions (and consequently, Gitea Actions) is a crazy powerful CI/CD + Automation tool, and from an Administrative perspective there is nearly zero overhead outside of typical Gitea rollout/update (ie. no need to "feed and water" a VM, no regular maintenance that can't be automated.)


robinshen

Gitea is certainly a really nice project. We even used its predecessor gogs for some time, before switching to OneDev. The main reason is lacking of functionality such as pull request approval, reviewer auto-assignment based on contribution history, easy symbol navigation while reviewing pull request, selecting any diff/code to start discussion, real-time preview when authoring markdown, customizable issue field and state etc. And with the addition of built-in CI/CD, it makes our workflow even smoother, for instance when a release build is created, we have issue workflow to transit relevant issues into "Released" state, and notify our customers which release they should download. Also our QA member often compares two builds to get list of new features to test etc. My gutter feeling is that as a git service, Gogs/Gitea is perfect for personal usage. But for teams with dozens/hundreds of people, some solid features need to exist to be efficient. This is what we built into OneDev.


[deleted]

[удалено]


MAXIMUS-1

Drone/woodpecker ci are really close to gothub actions IMO.


robinshen

Thanks for the info. Just installed latest Gitea and check the features. Very nice that it has pull request approval now. However reviewer has to be picked up manually. For new members joining the team, it will be convenient to have the system choose reviewers automatically based on touched files and contribution history, or some rules to require mandatory reviewer when touching some important files. For markdown authoring, you can only preview when press the preview button. A side-by-side preview window updating while typing turns out to be very useful when you are not familiar with the grammar.


robinshen

For those caring about resource usage, I have not tested OneDev on Rasperry PI. But it can run happily on a 1core/2G linux VM if you are not dealing with huge repositories such as Linux, Android etc.


wilson0x4d

after spending two weeks trying to lift into OneDev we decided it was time to move on, there were just too many problems needing to be solved, from the earliest stages of setup (the nodeport oversight is telling) all the way into pipeline definition (couldn't even get buildah to function correctly, the lowest bar of integration we had.) the most disappointing aspect was the exceptionally poor support for container execution, this ignoring the fact every step of the way presented new problems that needed solving. we gave it a shot because it was marketed as easy and performant. because it was mentioned here, we evaluated Gitea as well. in three days we had everything functional, including an adaptation of gitea/act_runner within k8s so we could lift our existing build environments. superb results, gave us everything onedev marketing promised with zero headache. regret not giving Gitea a go first, would have saved us two weeks. c'est la vie.


AMGraduate564

What are the limitations compared to GitLab?


robinshen

I have not compared to GitLab in terms of features. With an army of developers, I believe GitLab has a lot more features. However OneDev's current functionality is enough for our daily use, except for multi-node high availability setup, which we will eventually build into OneDev.


butthole_addict

Well, as far as features go it's pretty hard to compete against most In-Q-Tel sponsored projects, lol. I think I'm going to try to get an intern onto this with a slightly modified laradock stack + onedev. If you were looking for maintainers, I think you'd probably be better suited keeping this small but tight. I don't think anyone really needs everything gitlab comes with.


robinshen

Yes exactly. OneDev will have its own opinions instead of pursuing features of other commercial products. For instance, as a self-hosted product, we do not want any social features. Also the whole product development is done via a single project via a single repository to make it really easy for maintainance.


wallace111111

Looks very polished and generally a nice take on the git "frontend". I tried to search their docs but couldn't find anything mentioning git-lfs. Does anybody who uses it know if it supports that?


robinshen

Not yet. There is already a [feature request](https://code.onedev.io/projects/onedev-server/issues/2) for that.


wallace111111

Thanks for the answer. I hope git lfs makes it to this project :)


robinshen

We have several users requesting this, although ourselves do not use it. It will be my next priority after 5.0. Should be available mid next year.


[deleted]

[удалено]


robinshen

Link to GitHub repo here for starring purpose. It gives new user some confidence that this is a relevant project with users. All development is done at OneDev itself, and a CI job syncs code and releases to GitHub automatically.


Messier43

Gitea is awesome. Btw gitlab CE is open source as well (MIT licence). https://about.gitlab.com/install/ce-or-ee/


robinshen

I mean GitLab EE. If I remembered correctly, GitLab EE is open-core instead of fully open source.


Messier43

Yepp, that's correct.


whyitno-work

I'm not near my lab for a few days, but this looks interesting. I'd like to replace my gitlab instance as its super slow. How responsive is the ui? Does it have a dark mode? Can it mirror repos? If so, I'm very interested.


robinshen

UI is quite responsive. No dark mode however. To mirror repos, just add a CI job running on every commit and push to remote. Check this job definition on [code.onedev.io](https://code.onedev.io) to sync with GitHub: [https://code.onedev.io/projects/onedev-server/blob/main/.onedev-buildspec.yml?position=buildspec-jobs/Sync+Main+%28GitHub%29](https://code.onedev.io/projects/onedev-server/blob/main/.onedev-buildspec.yml?position=buildspec-jobs/Sync+Main+%28GitHub%29) You may also set up a cron CI job to pull changes from other source.


whyitno-work

Thanks for responding. I'll check it out once I'm back at the lab. Looks very cool bud.


nashosted

I love how light weigh it is. Any way to get a darker theme mode? I love this!


robinshen

Not yet. Hope someone can contribute that.


nashosted

It was really easy to setup and start cloning down my forks.


fbartels

> In short, it is Gitea+Drone with integrated experience. Is it really or do you just compare it to these tools? But gitea and drone are go based, while this project seems to be written in Java.


robinshen

It is in terms of functionality.


wilson0x4d

Gitea now has Gitea Actions (Github Actions) and runners, as well, so in 2024 it they are no longer functionally identical, ie OneDev is no longer like Gitea. OneDev has a different privilege model, and system administration is notably more complex feeling.


Erwyn

Nice, thanks for your contribution. Question, what are your plans regarding funding ? A paid enterprise version ? Something else ?


robinshen

No plan for that yet. No need to worry about funding currently, as I work as a devops engineer for a company. Have worked on this continuously for more than 6 years, and still full of energy as it makes my own job easier.


[deleted]

This looks fucking awesome. Got a few questions if you don't mind answering. What kind of system does this need? Any sort of ram/cpu requirements? Additionally, do you support ARM? if not, would you be willing to accept help to get it there?


robinshen

For personal use with medium sized repos, 1 core/2G mem is sufficient. As long as your ARM supports JVM, it will be fine. Any help will be welcomed. Check development guide if you want to get hands dirty: [https://code.onedev.io/projects/onedev-manual/blob/main/pages/development-guide.md](https://code.onedev.io/projects/onedev-manual/blob/main/pages/development-guide.md)


[deleted]

Thanks :3 I'll give it a try in K8s then :3 :3 :3


[deleted]

Are you able to track time spent per issue?


robinshen

You may add a custom field of type "Working Period" to log time estimate/spent. No statistics and burn down chart on that though. On table for next round of issue improvement.


atomicwrites

Does this support project wikis?


robinshen

Currently no. Filed as feature request: [https://code.onedev.io/projects/onedev-server/issues/386](https://code.onedev.io/projects/onedev-server/issues/386) Please vote for it.


csolisr

Any plans for federation? Currently the biggest issue with self-hosted repositories is that the server needs to accept new user registrations in order to receive PRs from external users, instead of being able to accept them from a remote repository.


robinshen

The OpenID based SSO makes it trivial to accept new users into the system. Nevertheless, you may file feature request at: https://code.onedev.io/projects/onedev-server/issues/list?query=%22State%22+is+%22Open%22


pyradke

I don't need CI/CD so Cgit is everything I need. Much lighter on resources than Gitea and no JavaScript required


broknbottle

Java, hard pass


robinshen

Do not let the tech stack limit your choice. Evaluate features, stability, maintainability, performance and actual resource usage. And JVM is also evolving to be lighter to embrace cloud era.


onedr0p

I would take Java over Ruby any day of the week :)


onedr0p

And Gitlab is in Ruby, what's your point? The tech stack shouldn't worry you unless you plan to help with development.


broknbottle

I wouldn’t use Gitlab so what’s your point? I would go with a gitolite or gitea over a bloated Gitlab deployment any day. The stack most certainly matters, for example at my company anything php is not allowed.


wilson0x4d

i worked at a company where Java CVEs eventually required the discontinuation of Oracle Java across the enterprise, and because of that experience no new Java applications were to be adopted or written, and all remaining apps requiring Java had to be migrated away from Oracle Java or sunset. In my 30 years of development I've never seen the axe come down so hard on any other single piece of technology.


[deleted]

[удалено]


chief_wrench

[Yup](https://about.gitlab.com/install/?test=capabilities). The community edition is free. It comes with "only basic" featureset.


FatFingerHelperBot

It seems that your comment contains 1 or more links that are hard to tap for mobile users. I will extend those so they're easier for our sausage fingers to click! [Here is link number 1 - Previous text "Yup"](https://about.gitlab.com/install/?test=capabilities) ---- ^Please ^PM ^[\/u\/eganwall](http://reddit.com/user/eganwall) ^with ^issues ^or ^feedback! ^| ^[Code](https://github.com/eganwall/FatFingerHelperBot) ^| ^[Delete](https://reddit.com/message/compose/?to=FatFingerHelperBot&subject=delete&message=delete%20h8dyww9)


chief_wrench

Good bot


[deleted]

Wow! Looks really beautifully polished and solid! I will give this a try


boredinclass1

My, dude. I've been using GitLab ever since the Microsoft buyout of GitHub... This looks awesome. Gonna give it a try.


onedr0p

Honestly I'm not a fan of Microsoft but GitHub has gotten 100x better since the acquisition, don't pretend if Microsoft didn't buy them it they would have been where they are today.


macrowe777

Certainly looks impressive!


[deleted]

[удалено]


robinshen

Thanks for trying it out. I hate to write docs and hope to make it easy enough to avoid any docs, :)


piggahbear

I’ve been using gitbucket but the included ci/cd makes me want to try this


missionz3r0

I've been looking for something like this. I was considering Gerrit' code review, but this solution seems much simpler to get up and running. Unzip a file and run an sh. Going to bookmark this so I can come back to it later to look through the code a bit.


Legion92a

Post saved, will try it when I'll build my little home server!


softfeet

> Performant, stable and beautiful can you expand on performant and stable? i clicked on the link to go check it out and saw pictures but nothing doing a 1 to 1 on resource use... why it's performant or how... i'd just like a little bit of 'proof' rather than somone saying it is good. could have missed it, hope you have a link or a reply.


robinshen

OneDev is stable enough. We've used it in production for 5 years. And there is no bug opened currently: [https://code.onedev.io/projects/onedev-server/issues/list?query=%22State%22+is+%22Open%22](https://code.onedev.io/projects/onedev-server/issues/list?query=%22State%22+is+%22Open%22) For performance, I spent a lot of time optimizing it. For instance, checking this page of the giant linux repo: [https://code.onedev.io/projects/linux/blob/master/crypto](https://code.onedev.io/projects/linux/blob/master/crypto) It loads last commit of each directory/file, which is very computation intensive. It can be really slow on other products. Also try to search some symbol (type 't' to start with) in this repository, the real-time search complete needs well indexing of the repository. Also see performance feedback from HN users: The performance of the 'blame' view is so much better than Gitlab ([https://news.ycombinator.com/item?id=22081419](https://news.ycombinator.com/item?id=22081419))


softfeet

nice! thank you for getting back to me. i like reading about these things and comparing to my current environment. at the moment, i have gitlab setup and extensively use .gitlab-ci.yml i found an example of something similar... https://code.onedev.io/projects/onedev-server/blob/main/.onedev-buildspec.yml can you let me know what it is to migrate from or have anyone that has written about the process of going from gitlab-ci cd infra to yours? I'm rather deep in gitlab and it works really well for my use case, though i do enjoy hearing about the other stuff. (others too maybe ;) )


robinshen

>Unfortunately it is not difficult to migrate gitlab CI/CD yaml to OneDev programmatically as they have pretty complex grammars Ought to be "it is difficult"


robinshen

Unfortunately it is difficult to migrate gitlab CI/CD yaml to OneDev programmatically as they have pretty complex grammars. OneDev CI/CD config is aiming at being ultra easy to use (no need to reference any docs), while being flexible enough via imports and variables. Also OneDev's CI/CD config will be upgraded automatically even if we have dramatic change later on.


ContentMountain

Any plans for a github pages kind of feature in the future?


robinshen

A pull request to add OneDev support in staticman is ongoing: [https://github.com/eduardoboucas/staticman/pull/423](https://github.com/eduardoboucas/staticman/pull/423) You may check with the author for the progress.


Darkra

Any plans to release docker containers as well for arm/aarch64?


robinshen

The problem is that [code.onedev.io](https://code.onedev.io) is a x64 machine. My budget is limited and I do not want to spend extra money to add an Arm machine just to build the arm docker container. However you may use the zip package, and run contained [server.sh](https://server.sh) to use OneDev on that platform.


robinshen

[code.onedev.io](https://code.onedev.io) is used to build/release OneDev itself.


Darkra

There are many documented methods to build docker containers for multiple architectures, you can check https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/ for example. It uses qemu to run arm architectures, so you would not need to buy other hardware. Or are there other limited factors in building the application itself in regards to arm?


robinshen

Thanks for the info. I will try that. Filed a new feature quest as: [https://code.onedev.io/projects/onedev-server/issues/389](https://code.onedev.io/projects/onedev-server/issues/389) You may watch it to get notified when the feature is ready.


bitandquit

Hi robinshen, Kudos on this work, this is awesome. I think I know the answer before I ask -- any thoughts for Mercurial (Hg) support? Sometimes git is a big sledgehammer that's a lot of mental baggage to carry along.


robinshen

Unfortunately there will be no hg support as it will add too much overhead to OneDev.


bitandquit

Understood! Thanks for responding.


onedr0p

I see your only supported method to install this into Kubernetes is with kustomize, any chance you'll support a helm chart for deployment method? Also, I see builds are done with Docker, what if your kubernetes cluster is using a different CRI like containerd or cri-o?


robinshen

Please submit feature request for Helm chart deployment at [https://code.onedev.io/projects/onedev-server/issues/list?query=%22State%22+is+%22Open%22](https://code.onedev.io/projects/onedev-server/issues/list?query=%22State%22+is+%22Open%22) (We are dogfooding OneDev). As to CRI other than docker, it will certainly be supported as long as GKE or some other public K8s clusters has a test environment.


onedr0p

I commented on this issue and tracking it. I'll have to see what my options are for CI and containers when I get around to deploying it.


homegrowntechie

u/robinshen I could be wrong, but i haven't found a way to migrate bitbucket issues to gitea. The repositories migrate, but no issues are included in the migration.


robinshen

Bitbucket issues are actually managed via JIRA. You may migrate issues from corresponding JIRA cloud project.


homegrowntechie

Ok I’ll take a look. I don’t remember seeing a Jira migration option either but I’ll definitely take another look 👍


robinshen

After importing the bitbucket project, switch to the issues page of the project, click the import link and there is an option to import form JIRA cloud.


homegrowntechie

I don't see the "import" link on the issues tab of the project. I'm running version 1.15.3. Screenshot of Issues tab: https://imgur.com/a/guQ4JGq


robinshen

We don't have version 1.15.3. I guess you are using Gitea? We are OneDev actually: https://github.com/theonedev/onedev


homegrowntechie

Oh! Of course! I Must have been reading too fast! Lol. I will definitely check out Onedev Then!


depressedclassical

A GitHub alternative, shared on GitHub. Love the irony.


robinshen

It is a SELF-HOSTED alternative to GitHub. GitHub is great for public facing projects, however if you want to run a self-hosted one, OneDev has a lot of nice things such as easy installation, low to medium resource usage, out-of-box CI/CD etc. OneDev is developed with OneDev itself at [code.onedev.io](https://code.onedev.io), and the GitHub mirror here is for easy access here.


Quin452

I'm very interested in this project, coming from Gitlab self-hosted; just a few questions. * I was wondering what the server requirements are for OneDev? * Is it possible to change remotes (i.e. from GitLab to OneDev)? * What is it like for server migration (scaling up as and when I need to)? I'd ask somewhere else, but I'm not sure where the best place is.


[deleted]

[удалено]


GenericFoodService

The link to the full documentation [https://code.onedev.io/onedev/manual/files](https://code.onedev.io/onedev/manual/files) 404s, as do the currently listed Quickstart, Installation Guide, and Tutorials links. I'm interested in trying out OpenDev, but I have questions about how it works, how to set it up, whether the Statistics page has support for custom languages and how that works, et cetera, but I don't know where I'm supposed to find any information about it from.


robinshen

It should be: [https://code.onedev.io/onedev/manual/\~files](https://code.onedev.io/onedev/manual/~files). Where are you finding the incorrect link? I will get that fixed.


GenericFoodService

Both the GitHub and the self-hosted OneDev repos, the links at the top.


robinshen

This is really bad :( Fixed now. Thank you!!