From the FAQ, forˈd͡ʒe.jo, to my midwestern ear, "4 Jay yo", Esperantese for Forge. A fork of Gitea [0] but managed via a non profit, no premium upsells, all freely licensed [1](GPL) etc.
Good to see their community outreach is via Matrix and Mastadon. My kind of nerds.
Apparently this is what Codeberg is running out, if you click . Looks like gitea/github to me, nothing wrong with that [2] source code is available from the little branch icon in the top right corner, hosted on codeberg which TIL is a forgejo instance [3]
From my understanding the fork was done because gitea created a company to build custom-features for companies if they ask. Not really many indicators for a rugpull
The pricing page (https://about.gitea.com/pricing/) talks about paywalled "Enhanced enterprise-level features and experiences". Are you sure that doesn't count as a premium upsell?
Actually, they thought that the Esperanto word for forge, is «forgejo». When somebody pointed out, that «forgejo» (fora gejo -> forgejo) is «faraway gay person», it was already too late. So, now they say that it is inspired by «forĝejo», which is the word for forge.
I was kind of passively wondering the other day what the main differences were between gitea and forgejo at this point, since they've been separate projects for a bit now. It seems there aren't any direct comparisons I could find, though.
I got curious about why Forgejo split off from Gitea, and it seems like yet another case of broke FOSS creators/maintainers getting screwed from above (and maybe below too).
From the Gitea incorporation announcement (below), it looks like they couldn't pay their bills as FOSS, and there were wealthy free-riders (which the MIT license allows).
> "Over the years we have tried various ways to support maintainers and the project. Some ways we have tried include bounties, direct donations, grants, and a few others. We have found that while there have been many wonderful individuals, and a few corporations who have been incredibly generous, and we are so thankful for their support, there are a few corporations (with revenues that are greater than some countries GDP) are building on Gitea for core products without even contributing back enhancements. [emphasis added]
I'm not a fan of Bruce Perens, but he kind of nails the problem when he says:
> "We have a great corporate welfare program, our users are the richest companies in the world. Indeed, we've enabled companies like Google to be created.
> "In contrast, if our developers aren't working for those companies, they probably go un-compensated."
----
On the flip side, the community rebelled when the creators formed a company, but not supposedly because they formed a company, but because that co held the domain and trademark. Seems like a small hill to die on to me, but I don't know the details.
Regardless, it looks like exhibit #187 of FOSS failing for anyone outside of hobbyists and FAANGs.
FOSS isn't a business model. It never was and never will be.
What Free Software always was is an ethical movement—one which didn't need to prioritize income streams because the point wasn't sustainable development, it was user freedom. Nowhere in "users should have the freedom to do what they want with software" does it say "and we should be able to pay a few developers a salary for their work towards that fundamentally ethical goal". Under the original paradigm and goals, any income streams are just cream on top of doing the right thing.
According to the OSI's history of itself [0], at some point people got it into their heads that the open development model was inherently a good one for business, too—Netscape jumped on board, and then some people got together and decided to rebrand Free Software:
> The conferees decided it was time to dump the moralizing and confrontational attitude that had been associated with "free software" in the past and sell the idea strictly on the same pragmatic, business-case grounds that had motivated Netscape. They brainstormed
about tactics and a new label. "Open source", contributed by Chris
Peterson, was the best thing they came up with.
The word FOSS reminds me a lot of American corporate Buddhism—mindfulness and meditation totally removed from its original deeply religious context and turned into some sort of self-help program, with the result being something that would be barely recognizable to the original practitioners. Free Software was never about sustainable development. It was about doing the right thing—enabling user freedom—because it is right. Everything else was just means to that end, but at some point along the line the means became the end and we started wondering why FOSS wasn't paying the bills like it was supposed to.
> FOSS isn't a business model. It never was and never will be.
This seems an interesting point and one I share. Yet it seems equally unethical to enable the corporate extractavism that we now see. It's time the "users should have the freedom to do what they want with software" be updated to something like 'users and makers should be free of coercion and exploitation by software.' What, after all, are the grounds for such freedoms? Are they issues of property? Or are they ones of the dignity of the persons involved? It doesn't seem controversial that we tend to find it problematic if another uses us as means to their ends without our consent. In personal actions, many act as if they believe this. Yet corporations consistently do not act with those values. You're right: we should strive toward a system not in which it's viable to create businesses out of FOSS but in which both users and developers are not exploited or used unwillingly.
> What Free Software always was is an ethical movement—one which didn't need to prioritize income streams because the point wasn't sustainable development, it was user freedom.
This actually illustrates the key flaw in Stallman's understanding. To him, "user" encompassed both humans and megacorporations. But a corporation is an abstract legal convenience, cannot feel the pain of being "thwarted" in its use of software, and thus, want freedom. Freedom is only an ethical good for humans.
Further, I would argue that providing megacorporations with unpaid labor is deeply misguided, if not actually unethical itself. Encouraging otherwise borders on encouraging exploitation.
tl;dr Nobody should go broke to enrich Bezos in their spare time, and encouraging THAT is unethical.
Many open source developers has misread the room and thinking the environment is still like it was 15~20 years ago where open source software were the works of hobbyists who has a well-paid day job and only here for street credit.
You know who read the room correctly? GitLab. They've found a balanced way to offer their product under an open source scheme while keeping their lights on. They've earned trust as well as income, that's a job well done.
If one wants to live off of their open source work, then they need to run it as a business and perform appropriate business tricks. Otherwise their own effort may one day become their own rip-off. Not saying anything sinister, but fairness is a balancing game, if you hard work don't treat you well, then it's unfair too.
GitLab has collected a few severe CVEs. I would choose "v4 final final actually final" folders as a versioning scheme before I used them. It is surprising to me that they have any users at all.
GitLab isn't profitable yet, at least on a GAAP basis. They're definitely moving in that direction, and I hope they'll get there, but IMO it's a bit early to put them on a pedestal.
Copyleft licenses are supposed to prevent to an extent this sort of free riding, but they are no longer "fashionable".
I don't see the point of refusing to add additional (copyleft) terms to a license, only to end up hoping companies act as if the terms existed out of good will.
Companies like Google love the permissive licenses, and go as far as to sponsor MIT/BSD-licensed replacements to common building blocks like toybox.
EDIT: I see that Forgejo v9+ is indeed GPL-licensed.
I released a tiny toy fun project under the GPL. It’s the kind of thing that no one could possible want to monetize, but the first PR was someone pleading the case that I should relicense to something more friendly, like MIT. I’d never before been so instantly tempted to ban someone from a project.
I agree that copyleft is less fashionable these days, but I think big companies have figured out all the tricks they need.
Case in point: Amazon offers a hosted Grafana service, which is AGPL. They may not be able to meaningfully change the code in secret, but they can still impoverish the actual Grafana creators trying to sell Grafana as a service.
How exactly does that apply? What's the "corporate welfare" here? Almost nobody is profiting off Gitea, especially not big tech. I know using the big tech boogeyman is useful to justify open source projects rugpulling on their licenses, but it doesn't even apply here. Not that it usually makes sense[0], but in this case it's not even something that the maintainers themselves ever alluded to.
[0] projects like MongoDB, ElasticSearch or Redis only became popular because they were OSS, and probably limited competition for years simply because competing with free is hard. only to then switch on their users years further down the line. So any money that they ever got was due to them being OSS in the first place since absolutely nobody would've used MongoDB 1.0 if it was a commercial product.
> Regardless, it looks like exhibit #187 of FOSS failing for anyone outside of hobbyists and FAANGs.
Forks that survive after splitting off are cases of FOSS succeeding, not failing. Failing would mean closing down, in this case it's replicating with changes, we (the public) are getting even more options.
The idea behind choosing a license like MIT is that people can create forks from your work, requiring not much more than attribution. If what the license calls out as valid is considered a failure in your eyes, don't choose a license like MIT.
This paints it as if Gitea was not a fork of Gogs specifically to turn a profit out of something they did not make on their own. I might be more sympathetic if they'd created Gitea, but given it's a fork of another project, it looks a lot like they're playing the same game that beat them.
I don’t think this is quite correct. Gitea was a community fork of Gogs, because Gogs was limited by its single maintainer, who was often unresponsive for months. See https://news.ycombinator.com/item?id=13296717
It's not that FOSS fails, it's that unethical corporations worth billions of dollars go unpunished for abusing it (because the law exists to protect them).
FOSS is fundamentally anarchy (the good kind that shows that human beings are not all pieces of shit). Anarchy can't exist in a capitalist society because it shows people that they don't HAVE to live like slaves. They can live as members of tribes, as evolution intended for us.
So as always the organism is originally healthy and successful until the parasite that is capitalism spreads and suffocates it for its own reproduction.
> They can live as members of tribes, as evolution intended for us.
Please, quit the cheap sophistry.
Evolution doesn't intend or plan anything for us, and you will have a very hard time convincing people that we would be better off living in a tribal/clan society than whatever we have today.
I'm sympathetic to some of what you're saying, and I believe the original hacker ethos spurred some of the original FS impulses, but...
FOSS licenses don't, and can't, embody anarchism (or any socialism) because they make no distinction between humans and capital-holding entities, lumping them all under the term "users".
It's a shame "federation" these days basically just means "implement activitpub". So many projects get caught up in the complicated mess of mapping their data model onto AP, debating about how exactly to map things and writing standard extension proposals....
Useful federation between Forgejo instances could be solved with little more than OIDC and a few webhooks (cross-instance collaboration, forking, and PRs). Nobody needs federation between Forgejo and Mastodon - what would that even mean??
> So many projects get caught up in the complicated mess of mapping their data model onto AP, debating about how exactly to map things and writing standard extension proposals....
Well, you either use an existing standard so you can federate with existing implementations, or you come up with a new standard and ask others to implement that. Seems they chose the simpler way, thankfully.
> Useful federation between Forgejo instances could be solved with little more than OIDC and a few webhooks (cross-instance collaboration, forking, and PRs).
What about federation between more software than just your own? Once you've done those things, you basically end up with another spec (but informal instead of formal) that others also need to implement. So instead of going the informal way, they aim for the formal one. That does sound appropriate to me.
Slightly besides the point, but for someone who dealt more with decentralized/distributed systems than bloated authentication systems, it seems both simpler and easier to map+implement ActivityPub than implement OIDC+"a few webhooks", but that might just be because of my familiarity.
I'll say that ActivityPub is a pretty simple standard though, compared to what's out there.
I tend to agree that ActivityPub seems pretty horrifying to work with (as an outsider). At least it works, though, and is implemented by a large amount of different projects and not owned by any single one.
> Useful federation between Forgejo instances could be solved with little more than OIDC and a few webhooks (cross-instance collaboration, forking, and PRs).
That would only solve the problem of "I don't have an account on this forge yet". The much more relevant problem is identity + reputation. With ActivityPub-based federation you can use your domain-bound identifier to contribute to various projects across servers and gain reputation and trust. If we use OIDC, then it is a lot less clear if the server, you authenticate with, is hosting the real franga2000.
Although the last mention of federation in a monthly update was in October, where they stressed that federation was and is their 'highest priority'.[0]
FYI: Just last Friday there was a call/meeting to coordinate and build out the federation efforts in Forgejo. More work is coming and more help is appreciated! There will be a presentation at FOSDEM on this topic and there is a matrix room dedicated to Forgejo Federation.
Over the years I've come to the conclusion that all these UIs on top of Git make little sense. Git itself is already distributed, which goes beyond federation. Exposing a Git repo over the network is trivial with HTTP or SSH. It supports code review workflows via email, though I really like the approach of storing reviews inside the repo itself via something like git-appraise[1]. Integrating it with CI/CD pipelines _can_ be simple, if the pipeline can be triggered by pushes.
Instead we've created these centralized UIs over Git, and are trying to get them to integrate with one another. This seems backwards to me since Git is already decentralized.
There's value in quickly browsing files of a project without needing to clone it first -- especially for quickly linking others to specific lines, API docs linking to implementation, etc. That needs to expose content at every commit, for stable links. So, some sort of a "web git viewer" is very useful.
Unfortunately, the more minimal read-only ones have ended up with far worse UX than the Github clones, or are a scary tangle of shell scripts and/or C. :-(
(Anyone want to collaborate on a Rust-based read-only git browsing web UI that aims for great usability? I'm all in, I want one. I know how to make it handle search etc, I'm not great at wrangling CSS to will or getting navigation right.)
I needed something like this 16 years ago at work to manage shared code, tickets, and code review of private code across a team of engineers. Code review for formal quality assurance was the most important need. I started with trac, then Phabricator, then GitHub enterprise. I just checked out git appraise to see how my nuclear and mechanical engineer friends would like it, and from what I see, I'm guessing they would not. We were using eclipse back then so maybe if that eclipse UI plugin still works it could work.
Really looking forward to the federation, hosting Forgejo for my own stuff while having discoverability/issue tracking with other instances would be the best of both worlds. As of now I'm mirroring stuff across self-hosted forgejo/github.com/gitlab.com where the forgejo instance is just part of my self-hosting hobby and not "load bearing".
I think that Gitlab Cells[1] might go into the same direction, there is a mention of federation in the design document.
I would expect Gitea to merge back in federation functionality once it's stable if they get some help with it. IIRC that initiative started in gitea and I'm not aware of that level of animosity or divergence of goals between the two?
I’ve migrated over the years from Gogs to Gitea to Forgejo. It’s such an excellent piece of software.
90% of the time, I can get by with hosting my personal git repos on an SSH server I have. When all I’m trying to do is put my Chezmoi repo somewhere that all my computers can access it, Forgejo and friends don’t add much to it. For the 10% of the time when I want to share my code privately with some friends it’s brilliant (and free beats a GitHub paid plan). And if I’m going to have it running anyway for those 10% projects, might as well use it as my personal git repo of record for everything else, too.
You run that locally on your own machine, or you host it yourself somewhere? If the latter, you just stop programming fully if the internet connection for whatever reason doesn't work?
I'd never consider running my code editor as infrastructure, but certainly interesting to see that others seems to do.
Not my thing but I see why others would like it. Forgejo is freaking tiny by comparison resource-wise, though. It’s a Go program that runs comfortably on a Raspberry Pi with a dozen other services. That alone makes it super attractive to drop onto any spare computer you have laying around.
My first stab at running a git server was Gitlab CE (because I was using it at work.) I tried running it on an Atom based server with insufficient RAM and it just crawled. Page loads just timed out. I switched to Gitea and it was a breath of fresh air.
Forgejo got to my attention when Fedora chose it for their repo server. My needs are pretty simple - just some centralized file storage of notes and some source code. I've tested a migration from Gitea 1.21 to Forgejo 9 and it was frictionless.
I'm seriously consider migrating, but I still wonder which will be better supported (and suitable for free-as-in-beer use) in the long run.
Did you notice any important differences between gitea and forgejo (besides ideology)? Although it seems like forgejo has added actions in the meantime
I initially had a Gogs install, but moved to GitLab because of GitLab CI and some other features. It was a bit too heavyweight in comparison and the updates became difficult to keep up with, so I eventually moved over to Gitea and Drone CI (some might also like the Woodpecker CI project).
Honestly, my eventual next move will be either Forgejo with their Actions https://forgejo.org/docs/next/user/actions/ for CI/CD or maybe going off into the deep end with moving back to Jenkins.
I will never go back to Jenkins. It was my job across several shops over the last decade to keep that thing slogging along and I’m beyond done with it.
The tag line isn't the most informative. It took me a scroll or two on the main page to figure out its purpose. (Self hosted GitHub alternative). I'd suggest making that clearer earlier as the word "forge" in terms of software could have a variety of interpretations.
The only time I ever see Sourceforge mentioned is in advertisements on /.. I think most young developers today have no idea what it is, if they even know what /. is.
It’s clearly a self hosted GitHub alternative and that’s IMO the way to talk about it. And per other comments, it’s obviously this once you start using it - it’s basically the GitHub interface and it’s great that it is - it’s very familiar and easy to use
Thank you. I was trying to figure out what "forge" meant here.
When I think "forge", I think a tool to turn a raw material into finished product. Ergo, the blacksmith tool that turns iron into a horseshoe.
The software analogy would be turning text source code into a runable binary. Ergo, a compiler or an interpreter.
Github and SourceForge move source code from one place to another. To overextend the analogy, they are more like a combination shop/delivery service. Source code is moved but never altered or transformed.
Long story short, this crusty C/C++ dev thinks forge is a really weird term for a self-hosted, sugar-crusted Git server.
After my struggles with trying to keep Gitlab CE (Community Edition) up and running (it needs a lot of CPU and memory) I switched to Forgejo and have not been disappointed. It runs as a rootless container and uses almost nothing, memory and CPU wise. Updating it has been a simple podman pull that JustWorks(tm).
It now also runs actions that keep my static websites updated by running Jekyll etc.
I really like it to have my own forge that can import repos, issues etc from other forges like GitHub, Gitlab etc. and I am looking forward to the upcoming ActivityPub based integration to the wider fediverse.
Having a decentralised, but connected approach to code hosting is what I always wanted to have and now it’s (almost) there.
I did my Github -> self-hosted Gitlab -> Gitea -> Forgejo journey over the years, and I haven't looked back.
Forgejo is great and it's probably going to become even greater once federation is done (having distributed forks and PRs across multiple instances solves the fragmentation problem of self-hosted solutions).
And I lost my trust in Gitea once it spun off a for-profit branch backed by VC money (which was exactly the reason why it was forked into Forgejo).
The only thing I lost from Gitlab is the out-of-the-box CI/CD platform. But I could migrate my pipelines to Drone CI and trigger them via webhooks. Just keep in mind that, depending on the complexity of your Gitlab pipelines, this may not always be an option. Anyway, for me hosting a Gitlab server that hogged up 5GB of RAM to serve a couple of small projects was a big no-no. Forgejo takes 500MB of RAM at peak.
Can anyone comment on the code review experience? (I assume similar to Gitea but I haven't tried either).
I recently did some moderately serious code review in GitHub and discovered it's a baby's toy version of a code review tool. It seems it would be unusable for serious engineering work unless you totally design your source control model around making that work, at the expense of all the other things that influence how you wanna manage your history.
I am mostly used to Gerrit which has a very reasonable basic model but a lot of rough edges and some performance issues.
Suddenly I realised I don't think I've ever actually used a review tool I really like! I wonder if our industry is just getting by without one?
IIRC the Gitlab one was slightly better than GitHub but I can't remember too much about it.
I've used Phabricator and GitHub to design nuclear power plant design code... seems pretty serious. Can you tell us more about what's missing in your opinion from making the reviews usable? Curious what I've been missing out on!
The fundamental issue is that GitHub thinks the artifact you are reviewing is code. But the artifact I want to review is a series of commits. I make review comments like "please split this into a separate commit", "please add info XYZ to the commit message".
GitHub doesn't offer any way to review changes to those things. If the author force-pushes (which is normal and healthy if you are iterating on a series of patches, instead of on a blob of code) there's no way to diff the details I want to look at.
Compare Gerrit where for each individual commit you can diff between two versions of that commit, with a side-by-side UI showing the comments inline that the changes were made in response to.
From speaking to friends I believe this is because "why would you force-push? Just push a new commit called 'respond to review comments'". When I said "but now your commit log is a mess" they say "no, you just squash the whole PR into a single commit when you merge it. So... yes, your commit log is a mess. Bear in mind there is also no support for dependencies between PRs. So basically, you are throttled to one in-flight PR per area of work at a time. So... your commits are gonna end up being huge. Not really viable for a large project.
I have noticed that there are major projects like k8s underway on Github and they seem to get by, so maybe I'm missing something. I know that Go allow PRs but if you wanna do serious contributions they will funnel you to contribute via Gerrit instead.
I miss Phabricator. Whilst it was certainly overkill for personal use, the additional applications meant I could do so much in one place and have everything integrated. Funny how what we have now, including GitHub feels a step back.
"Forgejo hosts source code repositories, lets you track and manage issues (and review code changes), and provides all the integrations you'd expect with CI/CD and similar tooling."
I don't see why it's so critical to not mention Github. That would instantly convey what it is to basically everyone, and it doesn't mean it doesn't have its own identity or anything.
"A platform to host your git repositories including collaboration features like issues, discussions, and a projects page to track important parts of your code base. All able to run on your server local and private."
Their communication really is all over the place. Even the name is really awkward in English.
(And yes, not everything should be forced to be English and it's apparently supposed to be Esperanto; but nothing else on the site is so that's not how most people will parse it).
There are only five pages of repositories there, so it's no surprise it responds quickly. We've been running gitea for several years, and when you put enough data into it (repositories, issues, comments, etc) it doesn't feel as fast anymore, although most pages still render within 500 ms. For example, opening large-ish issues can stall the server for a second or two (it reports rendering time in the footer, so I'm sure it's the server).
I don't know if that's the whole story? Sure, GitHub has more data to process (and way more compute), but even when switching between tabs within one repo (going from code to pull requests, for example) GitHub is still much slower even though its query shouldn't be affected by the number of repositories it has.
Can anyone who migrated from Gitea to Forgejo explain the differences in usability? I understand the fork was driven by licensing/project ownership concerns but it's not clear to me from reading the website how different the end product is now. I believe Gitea is still being actively developed.
I host a private Gitea instance (mainly to mirror all my GitHub stuff) so wondering if it is worth migrating.
I evaluated it again a couple of weeks ago and there are basically no differences right now (besides a few cosmetic ones) because the hard fork happened just a few months ago. Stick on 1.22 for the time being, it's the last version from which Forgejo supports in-place upgrades. You'll have to transfer data half-manually or perform deep surgery on the database if you upgrade past 1.22 and then decide to switch forges.
Although the next version of gitea should include support for full mirroring from GitHub (so periodic synchronization of new issues, PRs, etc), not just (code mirroring XOR one-off full copy) like it does right now. This might be of interest to you.
A lot of their early value-proposition were saner security defaults and additions to increase confidence in the software's security. A lot of the changes were attempted to upstream into Gitea, but not everything made its way in. They were a soft-fork for a while before hard-forking, and even after the hard-fork continued to sync changes from Gitea where possible.
Forgejo v10 is the first release I've seen where there's been a focus on tiny UX improvements (versus trying to remain compatible with Gitea). I'm hopeful these will continue to come, but it does still feel essentially identical in appearance and functionality with Gitea.
They have a FAQ (https://forgejo.org/compare-to-gitea/) TLDR:
Forgejo is free software, prioritizes security and stability over new features and is actively developing the federation module (thus working to enable communities of federated forges)
I wish they would have chosen a better name. Honestly if I have to install a Git server one day I’m gonna install Gitea, not a tool I can’t even pronounce.
Names are important, this is why I also don’t use DuckDuckGo.
The reasons for forking from Gitea were also a bit weak in my opinion.
> Names are important, this is why I also don’t use DuckDuckGo.
You won't use DuckDuckGo because of the name? DuckDuckGo is so tricky to write on mobile that I copy pasted from your comment, but that doesn't stop me from using it. For me, googlability of names is important, but otherwise I don't care.
I'm really curious about your reasoning. Does it offend your aesthetic sensibilities? Do you think people who would choose such a name can't be trusted with search? Or something else entirely?
Yes. I’m completely aware it’s irrational and probably a bit dumb, but I don’t want to use something with a name I actively hate. Some names are "meh" or boring and that’s ok. But for DuckDuckGo and Forgejo I have a visceral reaction against their name.
DuckDuckGo is an even worst offender because their logo is ALSO dumb and terrible, and I don’t want to see it.
jazzyjackson provided the pronunciation guide in a comment above:
> forˈd͡ʒe.jo, to my midwestern ear, "4 Jay yo"
It's totally OK for a project to use words from a foreign language. "Linux" is derived from Finnish Linus (/ˈliːnʊs/) and pronounced /ˈlɪn.əks/, unlike the English Linus - /lɑ́jnəs/.
IMHO Forgejo should have the IPA pronunciation spelled out on the landing page.
> this is why I also don’t use DuckDuckGo
Just how silly "Google" sounded when it first popped up? How Torvalds joked that he named "git" after himself? "Bash" is a play on "Bourne" and "born again"? Silly names are a part of the hacker culture, remaining playful despite the product having huge impact brings color to people's lives.
> Just how silly "Google" sounded when it first popped up? How Torvalds joked that he named "git" after himself?
I knew these examples were coming. Subjectively speaking, these are catchy names, which is why they work. Forjego and DuckDuckGo are not catchy, there's something wrong with their flow. Maybe they're too long or too "breaking", or maybe they don't work internationally (I'm French) somehow, I don't know. I'm not going to write a thesis on why some names don't work, but if someone did I would love it. Silly names are ok but there's a very thin line between "silly" and "annoying". DuckDuckGo definitely crosses it for me.
off: google translate English lady pronounces it as "4 Jay ho" with an H. That isn't how a native English speaker would attempt to pronounce Forgejo, is it?
It might not be a very strong reason, but quite enough to pick the original project which also has more development effort behind it (and is still used by Blender FWIW, I don't think they have any plans of migrating). I understand your first language is German. Figures. The name is unpronounceable and feels weird to me also. If we ever migrate from gitea (although I currently see no reason to do it), I'll have to pick some generic term and introduce it to others under that name.
I know. But I don’t want to use something with a naming sounding weird that I actively hate, especially when there are alternatives with a better name.
Clearly Postgres is not a good database and you will wisely use any other. I can see real advantages to this. It saves you so much effort and time. In fact, it allows you to make no effort at all.
I have never heard anyone mispronounce postgres. It's even more straightforward than Gitea, which native-roman-language-speakers might pronounce "git-tay-ah"
Even if one is somehow monolingual, forgejo is a perfectly fine word in English. There are even multiple ways to make it sound funny (forge-joe, forge-yo, etc).
This is more or less how Phabricator (dead, but lives on as Phorge[1]) works. It uploads/downloads patches via HTTP.
IMO, using Git remotes but with a one-review-unit-per-commit approach like Gerrit has a much better UX. Shipping around diffs has all sorts of sharp edges, especially when you stack multiple changes or binary data, and you end up reinventing native Git functionality but worse.
Phabricator started out as "paste your diff here" and eventually ended up with a CLI tool that reinvented half of the Git CLI.
I think it is an interesting take. It might be nice to point folks towards https://github.com/picosh/git-pr it has a better explanation.
So this is like the email source diff/patching workflow but extended to use ssh instead?
I try and limit my ssh access to servers and endpoints that I control. The attack surface for ssh is actually quite large.
It seems since you are shipping a patch, that it could be signed with your ssh key, but posted over https. This would make running a server way way more portable. Everything else about it seems quite nice.
Since the language is Go, creating an https service should be just as easy correct?
I like the idea of dynamic RSS streams with patches flying around.
Exactly. People don’t struggle with format-patch, they struggle with integrating patches into their email clients.
Our design philosophy is to not require the project’s git repo in order to enable developers to collaborate.
We are also trying to make this service a supplement to other code forges. Competing with GitHub is a huge uphill battle, instead I’m thinking of this service more as a patch-bin instead of a git collaboration tool for corporate entities
Neat! Thanks. I see this is located in the docs between "comment via email" and "message templates". If the devs see this, perhaps adding more buzzwords would be helpful to discovery.
It sounds like this is trying to coin a new term. I hadn't heard the word forge used to mean an all-in-one git+issue tracker+project mgmt+etc. suite before.
Once upon a time, a lot of software was released/available through "source forge", which is pretty self-explanatory in the context of software publishing. Then a decade ago, SourceForge shit the bed and destroyed its reputation. I'd bet that most of the developers saying they've never heard of "forge" in this context have entered in the industry in that time.
This is a bad association even for people that recognize it. Presumably there were good years but most will probably remember the ugly endgame with awkward UX and weird ads masquerading as fake download links.
Yup! That clears it up. It’s the site that serves lots of ads and binary packages of some old software. At least as of the last time I looked some years ago.
Ok then, not sure I would want more things like that today to self host, but to each their own.
It's not clear from the landing page whether it's a git code platform / mercurial / entirely new VCS. I wish it was clearer (looking at the Readme, looks like it's indeed a git hosting platform).
I don't really care about the governance model as a user seeing this landing page for the first time, so I wonder why it's so prominent, vs telling me what the actual product is.
The governance model is the reason for its existence -- Gitea went stupid proprietary, so this is the rebel alliance being proud of being the rebel alliance.
I think this is a great peace of software, though i think its mostly tailored for the single dev, or business case for closed source software, but much less a software peace that allow for great community building. I think this is because of:
a) The network effect that you inherently get with for example github
b) The barrier to create accounts on yet another platform to contribute.
In that regards i find the original way of just using email's to send patches just such a brilliant idea, because at least it eliminates my second point completely. That's why i think sourcehut [0] is such a nice idea at least in theory. Though now you have to teach people not only how to use "git" but also how to use "git" via email :D
Gitea and Forgejo support OAuth integration and AGit Flow*, which is a breath of fresh air compared to the connected "fork" and PR strategies. It's a good middle ground between the "modern" method and email collaboration. With some UX tweaks it could become very accessible for many.
Available platforms like Codeberg provide the option to sign in/register with GitHub and GitLab auth, so needing "yet another account" has become a much weaker argument.
can anyone share what the benefit is over using a self hosted repository host over a service like github/gitlab? obviously you get more power over the interface & such but are there truly any gains over using the larger platforms?
A self hosted repository host gives you the ability to develop software projects without giving up privacy or locking you into a service you don't control.
Aside from the whole self hosting ethos, if you are hosting it from a home server and you are the primary user, you will get a nice performance boost. Downloading binaries, cloning repositories will be instant. If you use CI, it will be running on an actual machine rather than 10% of some 2GHz cloud CPU.
I regularly have to upload multi GB images to a VPS and it's very annoying when it takes like 10 minutes.
If you're going to use SQLite, make sure you enable the WAL mode on the database. It makes such a huge difference to performance that I don't know why it isn't the default.
If you're going to have multiple concurrent users (or even just one user but a large number of background writing jobs, such as mirroring public repositories), then seriously consider using Postgres. Yes, theoretically it's possible to make SQLite backed applications work fine in this scenario, but Gogs/Gitea/Forgejo has not designed their application like that, so it falls over at surprisingly small sizes and migrating after the fact is painful.
It's very useful for companies - more control, don't have to host your code externally, and you don't have to pay (well, ish; we ended up paying for Gitlab Premium, but that doesn't exist for Forgejo).
- Not all projects are suitable for hosting by third parties (you may not want to give away the special sauce behind your wannabe next trillion dollar company, or you may be handling sensitive or confidential data like medical records, etc)
- You are immune to the trending process recently referred to as enshittification that consists of providers in a consolidated market like this one giving you an increasingly worse experience to compel you into more expensive plans, i.e. you gain independence and control
- It might be a competitive advantage to your business to still have the lights on when inevitably the centralised platform becomes unavailable to most (think of trading and events like crowdstrike)
Downtime when you can afford it (for us it's in the middle of the night, and very rarely), not in the middle of the working day when GitHub fucks up yet again.
we are considering moving from gitlab to forgejo. it's not a immediate concern but i think the days of gitlab are numbered with recent change in top management.
I'm not sold on Forgejo as a better alternative to Gitea. The Forgejo fork was completely unnecessary. The trigger behind the fork was the Forgejo authors tried to add their own copyright header into a patch contributed back to Gitea. They (Forgejo/Codeberg) followed it up with a lot of misinformation on FOSS e.t.c. some of which is still on their Gitea comparison page that ended up fracturing the community.
Some Codeberg admins had at some point threatened to blanket ban certain types of projects, notably anything slightly related to blockchain tech and that has always made me cautious of their site.
From the FAQ, forˈd͡ʒe.jo, to my midwestern ear, "4 Jay yo", Esperantese for Forge. A fork of Gitea [0] but managed via a non profit, no premium upsells, all freely licensed [1](GPL) etc.
Good to see their community outreach is via Matrix and Mastadon. My kind of nerds.
Apparently this is what Codeberg is running out, if you click . Looks like gitea/github to me, nothing wrong with that [2] source code is available from the little branch icon in the top right corner, hosted on codeberg which TIL is a forgejo instance [3]
[0] https://forgejo.org/2024-02-forking-forward/
[1] https://forgejo.org/2024-08-gpl/
[2] https://v10.next.forgejo.org/explore/repos
[3] https://codeberg.org/forgejo/forgejo
> no premium upsells
So.. like gitea?
From my understanding the fork was done because gitea created a company to build custom-features for companies if they ask. Not really many indicators for a rugpull
The pricing page (https://about.gitea.com/pricing/) talks about paywalled "Enhanced enterprise-level features and experiences". Are you sure that doesn't count as a premium upsell?
[flagged]
9 replies →
It's more like "forge place" in the same way that kafejo (cafe) is "coffee place".
It's actually more like "distant gay" (and would be pronounced with a hard "g") because it's a (presumably deliberate) misspelling of forĝejo.
That's English for you, same word is usable for describing action, place and the furnace.
Actually, they thought that the Esperanto word for forge, is «forgejo». When somebody pointed out, that «forgejo» (fora gejo -> forgejo) is «faraway gay person», it was already too late. So, now they say that it is inspired by «forĝejo», which is the word for forge.
I was kind of passively wondering the other day what the main differences were between gitea and forgejo at this point, since they've been separate projects for a bit now. It seems there aren't any direct comparisons I could find, though.
The Fedora Project (Linux) is switching to this, FWIW https://fedoramagazine.org/fedora-moves-towards-forgejo-a-un...
this is big!
I got curious about why Forgejo split off from Gitea, and it seems like yet another case of broke FOSS creators/maintainers getting screwed from above (and maybe below too).
From the Gitea incorporation announcement (below), it looks like they couldn't pay their bills as FOSS, and there were wealthy free-riders (which the MIT license allows).
> "Over the years we have tried various ways to support maintainers and the project. Some ways we have tried include bounties, direct donations, grants, and a few others. We have found that while there have been many wonderful individuals, and a few corporations who have been incredibly generous, and we are so thankful for their support, there are a few corporations (with revenues that are greater than some countries GDP) are building on Gitea for core products without even contributing back enhancements. [emphasis added]
I'm not a fan of Bruce Perens, but he kind of nails the problem when he says:
> "We have a great corporate welfare program, our users are the richest companies in the world. Indeed, we've enabled companies like Google to be created.
> "In contrast, if our developers aren't working for those companies, they probably go un-compensated."
----
On the flip side, the community rebelled when the creators formed a company, but not supposedly because they formed a company, but because that co held the domain and trademark. Seems like a small hill to die on to me, but I don't know the details.
Regardless, it looks like exhibit #187 of FOSS failing for anyone outside of hobbyists and FAANGs.
FOSS isn't a business model. It never was and never will be.
What Free Software always was is an ethical movement—one which didn't need to prioritize income streams because the point wasn't sustainable development, it was user freedom. Nowhere in "users should have the freedom to do what they want with software" does it say "and we should be able to pay a few developers a salary for their work towards that fundamentally ethical goal". Under the original paradigm and goals, any income streams are just cream on top of doing the right thing.
According to the OSI's history of itself [0], at some point people got it into their heads that the open development model was inherently a good one for business, too—Netscape jumped on board, and then some people got together and decided to rebrand Free Software:
> The conferees decided it was time to dump the moralizing and confrontational attitude that had been associated with "free software" in the past and sell the idea strictly on the same pragmatic, business-case grounds that had motivated Netscape. They brainstormed about tactics and a new label. "Open source", contributed by Chris Peterson, was the best thing they came up with.
The word FOSS reminds me a lot of American corporate Buddhism—mindfulness and meditation totally removed from its original deeply religious context and turned into some sort of self-help program, with the result being something that would be barely recognizable to the original practitioners. Free Software was never about sustainable development. It was about doing the right thing—enabling user freedom—because it is right. Everything else was just means to that end, but at some point along the line the means became the end and we started wondering why FOSS wasn't paying the bills like it was supposed to.
[0] http://web.archive.org/web/20071115150105/https://opensource...
> FOSS isn't a business model. It never was and never will be.
This seems an interesting point and one I share. Yet it seems equally unethical to enable the corporate extractavism that we now see. It's time the "users should have the freedom to do what they want with software" be updated to something like 'users and makers should be free of coercion and exploitation by software.' What, after all, are the grounds for such freedoms? Are they issues of property? Or are they ones of the dignity of the persons involved? It doesn't seem controversial that we tend to find it problematic if another uses us as means to their ends without our consent. In personal actions, many act as if they believe this. Yet corporations consistently do not act with those values. You're right: we should strive toward a system not in which it's viable to create businesses out of FOSS but in which both users and developers are not exploited or used unwillingly.
1 reply →
> What Free Software always was is an ethical movement—one which didn't need to prioritize income streams because the point wasn't sustainable development, it was user freedom.
This actually illustrates the key flaw in Stallman's understanding. To him, "user" encompassed both humans and megacorporations. But a corporation is an abstract legal convenience, cannot feel the pain of being "thwarted" in its use of software, and thus, want freedom. Freedom is only an ethical good for humans.
Further, I would argue that providing megacorporations with unpaid labor is deeply misguided, if not actually unethical itself. Encouraging otherwise borders on encouraging exploitation.
tl;dr Nobody should go broke to enrich Bezos in their spare time, and encouraging THAT is unethical.
7 replies →
Sometimes I wish I could upvote twice in replies like this.
Many open source developers has misread the room and thinking the environment is still like it was 15~20 years ago where open source software were the works of hobbyists who has a well-paid day job and only here for street credit.
You know who read the room correctly? GitLab. They've found a balanced way to offer their product under an open source scheme while keeping their lights on. They've earned trust as well as income, that's a job well done.
If one wants to live off of their open source work, then they need to run it as a business and perform appropriate business tricks. Otherwise their own effort may one day become their own rip-off. Not saying anything sinister, but fairness is a balancing game, if you hard work don't treat you well, then it's unfair too.
GitLab has collected a few severe CVEs. I would choose "v4 final final actually final" folders as a versioning scheme before I used them. It is surprising to me that they have any users at all.
1 reply →
GitLab isn't profitable yet, at least on a GAAP basis. They're definitely moving in that direction, and I hope they'll get there, but IMO it's a bit early to put them on a pedestal.
Copyleft licenses are supposed to prevent to an extent this sort of free riding, but they are no longer "fashionable".
I don't see the point of refusing to add additional (copyleft) terms to a license, only to end up hoping companies act as if the terms existed out of good will.
Companies like Google love the permissive licenses, and go as far as to sponsor MIT/BSD-licensed replacements to common building blocks like toybox.
EDIT: I see that Forgejo v9+ is indeed GPL-licensed.
I released a tiny toy fun project under the GPL. It’s the kind of thing that no one could possible want to monetize, but the first PR was someone pleading the case that I should relicense to something more friendly, like MIT. I’d never before been so instantly tempted to ban someone from a project.
I agree that copyleft is less fashionable these days, but I think big companies have figured out all the tricks they need.
Case in point: Amazon offers a hosted Grafana service, which is AGPL. They may not be able to meaningfully change the code in secret, but they can still impoverish the actual Grafana creators trying to sell Grafana as a service.
How exactly does that apply? What's the "corporate welfare" here? Almost nobody is profiting off Gitea, especially not big tech. I know using the big tech boogeyman is useful to justify open source projects rugpulling on their licenses, but it doesn't even apply here. Not that it usually makes sense[0], but in this case it's not even something that the maintainers themselves ever alluded to.
[0] projects like MongoDB, ElasticSearch or Redis only became popular because they were OSS, and probably limited competition for years simply because competing with free is hard. only to then switch on their users years further down the line. So any money that they ever got was due to them being OSS in the first place since absolutely nobody would've used MongoDB 1.0 if it was a commercial product.
FOSS is a distribution strategy, not a business model.
> Regardless, it looks like exhibit #187 of FOSS failing for anyone outside of hobbyists and FAANGs.
Forks that survive after splitting off are cases of FOSS succeeding, not failing. Failing would mean closing down, in this case it's replicating with changes, we (the public) are getting even more options.
The idea behind choosing a license like MIT is that people can create forks from your work, requiring not much more than attribution. If what the license calls out as valid is considered a failure in your eyes, don't choose a license like MIT.
This paints it as if Gitea was not a fork of Gogs specifically to turn a profit out of something they did not make on their own. I might be more sympathetic if they'd created Gitea, but given it's a fork of another project, it looks a lot like they're playing the same game that beat them.
I don’t think this is quite correct. Gitea was a community fork of Gogs, because Gogs was limited by its single maintainer, who was often unresponsive for months. See https://news.ycombinator.com/item?id=13296717
1 reply →
It's not that FOSS fails, it's that unethical corporations worth billions of dollars go unpunished for abusing it (because the law exists to protect them).
FOSS is fundamentally anarchy (the good kind that shows that human beings are not all pieces of shit). Anarchy can't exist in a capitalist society because it shows people that they don't HAVE to live like slaves. They can live as members of tribes, as evolution intended for us.
So as always the organism is originally healthy and successful until the parasite that is capitalism spreads and suffocates it for its own reproduction.
> They can live as members of tribes, as evolution intended for us.
Please, quit the cheap sophistry.
Evolution doesn't intend or plan anything for us, and you will have a very hard time convincing people that we would be better off living in a tribal/clan society than whatever we have today.
12 replies →
What is unethical about the actions of the corporations who use the software? They did so in accordance with the license.
7 replies →
Which megacorporation abused Gitea here? And how?
I'm sympathetic to some of what you're saying, and I believe the original hacker ethos spurred some of the original FS impulses, but...
FOSS licenses don't, and can't, embody anarchism (or any socialism) because they make no distinction between humans and capital-holding entities, lumping them all under the term "users".
An interesting aspect of Forgejo is ongoing work on forge federation
https://codeberg.org/forgejo/forgejo/issues/59#issuecomment-...
In an ideal world github and gitlab would also support federation, but I guess that's probably not going to happen.
An alternative solution in the problem space would be going p2p, e.g https://radicle.xyz/
It's a shame "federation" these days basically just means "implement activitpub". So many projects get caught up in the complicated mess of mapping their data model onto AP, debating about how exactly to map things and writing standard extension proposals....
Useful federation between Forgejo instances could be solved with little more than OIDC and a few webhooks (cross-instance collaboration, forking, and PRs). Nobody needs federation between Forgejo and Mastodon - what would that even mean??
> So many projects get caught up in the complicated mess of mapping their data model onto AP, debating about how exactly to map things and writing standard extension proposals....
Well, you either use an existing standard so you can federate with existing implementations, or you come up with a new standard and ask others to implement that. Seems they chose the simpler way, thankfully.
> Useful federation between Forgejo instances could be solved with little more than OIDC and a few webhooks (cross-instance collaboration, forking, and PRs).
What about federation between more software than just your own? Once you've done those things, you basically end up with another spec (but informal instead of formal) that others also need to implement. So instead of going the informal way, they aim for the formal one. That does sound appropriate to me.
Slightly besides the point, but for someone who dealt more with decentralized/distributed systems than bloated authentication systems, it seems both simpler and easier to map+implement ActivityPub than implement OIDC+"a few webhooks", but that might just be because of my familiarity.
I'll say that ActivityPub is a pretty simple standard though, compared to what's out there.
2 replies →
I tend to agree that ActivityPub seems pretty horrifying to work with (as an outsider). At least it works, though, and is implemented by a large amount of different projects and not owned by any single one.
1 reply →
> Useful federation between Forgejo instances could be solved with little more than OIDC and a few webhooks (cross-instance collaboration, forking, and PRs).
That would only solve the problem of "I don't have an account on this forge yet". The much more relevant problem is identity + reputation. With ActivityPub-based federation you can use your domain-bound identifier to contribute to various projects across servers and gain reputation and trust. If we use OIDC, then it is a lot less clear if the server, you authenticate with, is hosting the real franga2000.
It's already awkward just between Lemmy and Mastodon.
I guess Lemmy could be in the form of issues on the repo and Mastodon would be thumbs up emojis and/or "starring" the repo.
Yeah I wish there was a different protocol if we are jamming everything on top of it.
The federation page on the Forgejo Web site (https://forgejo.org/2023-01-10-answering-forgejo-federation-...) is out of date and most of the links don't work. They also used to publish annual progress reports until 2023 (on a Web site that no longer seems to be accessible: https://web.archive.org/web/20240830030315/https://forgefrie...).
Although the last mention of federation in a monthly update was in October, where they stressed that federation was and is their 'highest priority'.[0]
[0]: https://forgejo.org/2024-10-monthly-update/#:~:text=Forgejo%...
FYI: Just last Friday there was a call/meeting to coordinate and build out the federation efforts in Forgejo. More work is coming and more help is appreciated! There will be a presentation at FOSDEM on this topic and there is a matrix room dedicated to Forgejo Federation.
Over the years I've come to the conclusion that all these UIs on top of Git make little sense. Git itself is already distributed, which goes beyond federation. Exposing a Git repo over the network is trivial with HTTP or SSH. It supports code review workflows via email, though I really like the approach of storing reviews inside the repo itself via something like git-appraise[1]. Integrating it with CI/CD pipelines _can_ be simple, if the pipeline can be triggered by pushes.
Instead we've created these centralized UIs over Git, and are trying to get them to integrate with one another. This seems backwards to me since Git is already decentralized.
[1]: https://github.com/google/git-appraise
There's value in quickly browsing files of a project without needing to clone it first -- especially for quickly linking others to specific lines, API docs linking to implementation, etc. That needs to expose content at every commit, for stable links. So, some sort of a "web git viewer" is very useful.
Unfortunately, the more minimal read-only ones have ended up with far worse UX than the Github clones, or are a scary tangle of shell scripts and/or C. :-(
(Anyone want to collaborate on a Rust-based read-only git browsing web UI that aims for great usability? I'm all in, I want one. I know how to make it handle search etc, I'm not great at wrangling CSS to will or getting navigation right.)
I suspect the reason is the same as the use of local git GUIs and TUIs; git has a terrible CLI, so everyone uses its plumbing, but not its porcelain.
4 replies →
I needed something like this 16 years ago at work to manage shared code, tickets, and code review of private code across a team of engineers. Code review for formal quality assurance was the most important need. I started with trac, then Phabricator, then GitHub enterprise. I just checked out git appraise to see how my nuclear and mechanical engineer friends would like it, and from what I see, I'm guessing they would not. We were using eclipse back then so maybe if that eclipse UI plugin still works it could work.
Gitlab has experimental support for activitypub: https://gitlab.com/gitlab-org/gitlab/-/blob/v17.1.0-ee/doc/d...
See also: https://gitlab.com/groups/gitlab-org/-/epics/11247#why
Really looking forward to the federation, hosting Forgejo for my own stuff while having discoverability/issue tracking with other instances would be the best of both worlds. As of now I'm mirroring stuff across self-hosted forgejo/github.com/gitlab.com where the forgejo instance is just part of my self-hosting hobby and not "load bearing".
I think that Gitlab Cells[1] might go into the same direction, there is a mention of federation in the design document.
[1] https://handbook.gitlab.com/handbook/engineering/architectur...
I would expect Gitea to merge back in federation functionality once it's stable if they get some help with it. IIRC that initiative started in gitea and I'm not aware of that level of animosity or divergence of goals between the two?
I’ve migrated over the years from Gogs to Gitea to Forgejo. It’s such an excellent piece of software.
90% of the time, I can get by with hosting my personal git repos on an SSH server I have. When all I’m trying to do is put my Chezmoi repo somewhere that all my computers can access it, Forgejo and friends don’t add much to it. For the 10% of the time when I want to share my code privately with some friends it’s brilliant (and free beats a GitHub paid plan). And if I’m going to have it running anyway for those 10% projects, might as well use it as my personal git repo of record for everything else, too.
For my projects I have been using Onedev https://github.com/theonedev/onedev which has also kanban and code editor
You run that locally on your own machine, or you host it yourself somewhere? If the latter, you just stop programming fully if the internet connection for whatever reason doesn't work?
I'd never consider running my code editor as infrastructure, but certainly interesting to see that others seems to do.
3 replies →
Not my thing but I see why others would like it. Forgejo is freaking tiny by comparison resource-wise, though. It’s a Go program that runs comfortably on a Raspberry Pi with a dozen other services. That alone makes it super attractive to drop onto any spare computer you have laying around.
My first stab at running a git server was Gitlab CE (because I was using it at work.) I tried running it on an Atom based server with insufficient RAM and it just crawled. Page loads just timed out. I switched to Gitea and it was a breath of fresh air.
Forgejo got to my attention when Fedora chose it for their repo server. My needs are pretty simple - just some centralized file storage of notes and some source code. I've tested a migration from Gitea 1.21 to Forgejo 9 and it was frictionless.
I'm seriously consider migrating, but I still wonder which will be better supported (and suitable for free-as-in-beer use) in the long run.
I wonder about that, too. I’m still on Forgejo 7 which hasn’t diverged too much from Gitea, but there’s going to be a decision point soon.
When I looked recently, it looked like Forgejo was getting much more activity. If I had to guess, I think it’s going to be the leading fork.
3 replies →
Did you notice any important differences between gitea and forgejo (besides ideology)? Although it seems like forgejo has added actions in the meantime
Gitea also has actions.
https://docs.gitea.com/usage/actions/overview
3 replies →
Not a thing. I don’t use actions yet, just the primary repo management UI. I don’t know if I could tell the difference.
I initially had a Gogs install, but moved to GitLab because of GitLab CI and some other features. It was a bit too heavyweight in comparison and the updates became difficult to keep up with, so I eventually moved over to Gitea and Drone CI (some might also like the Woodpecker CI project).
Honestly, my eventual next move will be either Forgejo with their Actions https://forgejo.org/docs/next/user/actions/ for CI/CD or maybe going off into the deep end with moving back to Jenkins.
I will never go back to Jenkins. It was my job across several shops over the last decade to keep that thing slogging along and I’m beyond done with it.
For me GitLab CI is a reason to move _away_ from it.
2 replies →
The tag line isn't the most informative. It took me a scroll or two on the main page to figure out its purpose. (Self hosted GitHub alternative). I'd suggest making that clearer earlier as the word "forge" in terms of software could have a variety of interpretations.
"forge" has been used since "sourceforge" if not longer to describe these kind of hosting-packages.
I guess technically you could have called Redmine, and other systems at the time, forges I think the term took off after that.
The only time I ever see Sourceforge mentioned is in advertisements on /.. I think most young developers today have no idea what it is, if they even know what /. is.
4 replies →
I used to use libraries that were hosted on sourceforge and I did not get the connection.
You can’t even rely on young devs to get Monty Python jokes anymore. Referring to a website that went away when jr devs were ten is a bad plan.
You’re old, dudes.
Disagree. Refering to GitHub as category-defining would be antithetical to the Forgejo spirit. Forgejo stands on its own.
Disagree. Unfortunately Forge is not a well known category defining term. Using it as a tagline defying the purposes to popularize Forgego.
10 replies →
Forgejo is a GitHub clone. No one can claim with a straight face that it's somehow completely unrelated.
9 replies →
Calling it a software forge is the correct form. Even if the term isn't that well known. See: https://en.wikipedia.org/wiki/Forge_(software)
It’s clearly a self hosted GitHub alternative and that’s IMO the way to talk about it. And per other comments, it’s obviously this once you start using it - it’s basically the GitHub interface and it’s great that it is - it’s very familiar and easy to use
Thank you. I was trying to figure out what "forge" meant here.
When I think "forge", I think a tool to turn a raw material into finished product. Ergo, the blacksmith tool that turns iron into a horseshoe.
The software analogy would be turning text source code into a runable binary. Ergo, a compiler or an interpreter.
Github and SourceForge move source code from one place to another. To overextend the analogy, they are more like a combination shop/delivery service. Source code is moved but never altered or transformed.
Long story short, this crusty C/C++ dev thinks forge is a really weird term for a self-hosted, sugar-crusted Git server.
After my struggles with trying to keep Gitlab CE (Community Edition) up and running (it needs a lot of CPU and memory) I switched to Forgejo and have not been disappointed. It runs as a rootless container and uses almost nothing, memory and CPU wise. Updating it has been a simple podman pull that JustWorks(tm).
It now also runs actions that keep my static websites updated by running Jekyll etc.
I really like it to have my own forge that can import repos, issues etc from other forges like GitHub, Gitlab etc. and I am looking forward to the upcoming ActivityPub based integration to the wider fediverse.
Having a decentralised, but connected approach to code hosting is what I always wanted to have and now it’s (almost) there.
What is the status of federation support? I imagine cross-instance pull requests and bug reports would make collaboration effortless.
I did my Github -> self-hosted Gitlab -> Gitea -> Forgejo journey over the years, and I haven't looked back.
Forgejo is great and it's probably going to become even greater once federation is done (having distributed forks and PRs across multiple instances solves the fragmentation problem of self-hosted solutions).
And I lost my trust in Gitea once it spun off a for-profit branch backed by VC money (which was exactly the reason why it was forked into Forgejo).
The only thing I lost from Gitlab is the out-of-the-box CI/CD platform. But I could migrate my pipelines to Drone CI and trigger them via webhooks. Just keep in mind that, depending on the complexity of your Gitlab pipelines, this may not always be an option. Anyway, for me hosting a Gitlab server that hogged up 5GB of RAM to serve a couple of small projects was a big no-no. Forgejo takes 500MB of RAM at peak.
Can anyone comment on the code review experience? (I assume similar to Gitea but I haven't tried either).
I recently did some moderately serious code review in GitHub and discovered it's a baby's toy version of a code review tool. It seems it would be unusable for serious engineering work unless you totally design your source control model around making that work, at the expense of all the other things that influence how you wanna manage your history.
I am mostly used to Gerrit which has a very reasonable basic model but a lot of rough edges and some performance issues.
Suddenly I realised I don't think I've ever actually used a review tool I really like! I wonder if our industry is just getting by without one?
IIRC the Gitlab one was slightly better than GitHub but I can't remember too much about it.
I've used Phabricator and GitHub to design nuclear power plant design code... seems pretty serious. Can you tell us more about what's missing in your opinion from making the reviews usable? Curious what I've been missing out on!
The fundamental issue is that GitHub thinks the artifact you are reviewing is code. But the artifact I want to review is a series of commits. I make review comments like "please split this into a separate commit", "please add info XYZ to the commit message".
GitHub doesn't offer any way to review changes to those things. If the author force-pushes (which is normal and healthy if you are iterating on a series of patches, instead of on a blob of code) there's no way to diff the details I want to look at.
Compare Gerrit where for each individual commit you can diff between two versions of that commit, with a side-by-side UI showing the comments inline that the changes were made in response to.
From speaking to friends I believe this is because "why would you force-push? Just push a new commit called 'respond to review comments'". When I said "but now your commit log is a mess" they say "no, you just squash the whole PR into a single commit when you merge it. So... yes, your commit log is a mess. Bear in mind there is also no support for dependencies between PRs. So basically, you are throttled to one in-flight PR per area of work at a time. So... your commits are gonna end up being huge. Not really viable for a large project.
I have noticed that there are major projects like k8s underway on Github and they seem to get by, so maybe I'm missing something. I know that Go allow PRs but if you wanna do serious contributions they will funnel you to contribute via Gerrit instead.
I miss Phabricator. Whilst it was certainly overkill for personal use, the additional applications meant I could do so much in one place and have everything integrated. Funny how what we have now, including GitHub feels a step back.
Have you tried Codelantis? It's a review tool for GitHub
Q: “What is Forgego?”
A: “Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.”
?
Without mentioning GitHub/BitBucket/GitLab/etc., how would you describe what they are?
Collaborative development platform with Git repository hosting, CI/CD, and project management features.
5 replies →
Source code hosting and version control platform?
"Forgejo hosts source code repositories, lets you track and manage issues (and review code changes), and provides all the integrations you'd expect with CI/CD and similar tooling."
1 reply →
By describing what they do (also, there is no rule you can't mention github)
I don't see why it's so critical to not mention Github. That would instantly convey what it is to basically everyone, and it doesn't mean it doesn't have its own identity or anything.
"A platform to host your git repositories including collaboration features like issues, discussions, and a projects page to track important parts of your code base. All able to run on your server local and private."
Git hosts with proprietary features
Repository Hub
Their communication really is all over the place. Even the name is really awkward in English.
(And yes, not everything should be forced to be English and it's apparently supposed to be Esperanto; but nothing else on the site is so that's not how most people will parse it).
Checking out https://v10.next.forgejo.org/explore/repos , the main thing I notice in comparison to GitHub is how fast this is. I wish GitHub was so fast.
There are only five pages of repositories there, so it's no surprise it responds quickly. We've been running gitea for several years, and when you put enough data into it (repositories, issues, comments, etc) it doesn't feel as fast anymore, although most pages still render within 500 ms. For example, opening large-ish issues can stall the server for a second or two (it reports rendering time in the footer, so I'm sure it's the server).
Click on any repo from: https://codeberg.org/explore/repos
It's very speedy. Not as much as sourcehut, but you get a nicer UI. Github is becoming slow enough to meaningfully detract from productivity.
3 replies →
I don't know if that's the whole story? Sure, GitHub has more data to process (and way more compute), but even when switching between tabs within one repo (going from code to pull requests, for example) GitHub is still much slower even though its query shouldn't be affected by the number of repositories it has.
I have around 1.2 GB of compressed git commits on disk, still fast on an ancient Intel E3 1275-v6 with 64 GB of RAM and 2 TB Intel P3520.
Version 10 also now without any startup errors due to slightly wrong sqlite database structure.
Together with vscodium a joy to use.
Now picture it running on-prem !
Can anyone who migrated from Gitea to Forgejo explain the differences in usability? I understand the fork was driven by licensing/project ownership concerns but it's not clear to me from reading the website how different the end product is now. I believe Gitea is still being actively developed.
I host a private Gitea instance (mainly to mirror all my GitHub stuff) so wondering if it is worth migrating.
I evaluated it again a couple of weeks ago and there are basically no differences right now (besides a few cosmetic ones) because the hard fork happened just a few months ago. Stick on 1.22 for the time being, it's the last version from which Forgejo supports in-place upgrades. You'll have to transfer data half-manually or perform deep surgery on the database if you upgrade past 1.22 and then decide to switch forges.
Although the next version of gitea should include support for full mirroring from GitHub (so periodic synchronization of new issues, PRs, etc), not just (code mirroring XOR one-off full copy) like it does right now. This might be of interest to you.
A lot of their early value-proposition were saner security defaults and additions to increase confidence in the software's security. A lot of the changes were attempted to upstream into Gitea, but not everything made its way in. They were a soft-fork for a while before hard-forking, and even after the hard-fork continued to sync changes from Gitea where possible.
Forgejo v10 is the first release I've seen where there's been a focus on tiny UX improvements (versus trying to remain compatible with Gitea). I'm hopeful these will continue to come, but it does still feel essentially identical in appearance and functionality with Gitea.
They have a FAQ (https://forgejo.org/compare-to-gitea/) TLDR: Forgejo is free software, prioritizes security and stability over new features and is actively developing the federation module (thus working to enable communities of federated forges)
I wish they would have chosen a better name. Honestly if I have to install a Git server one day I’m gonna install Gitea, not a tool I can’t even pronounce.
Names are important, this is why I also don’t use DuckDuckGo.
The reasons for forking from Gitea were also a bit weak in my opinion.
> Names are important, this is why I also don’t use DuckDuckGo.
You won't use DuckDuckGo because of the name? DuckDuckGo is so tricky to write on mobile that I copy pasted from your comment, but that doesn't stop me from using it. For me, googlability of names is important, but otherwise I don't care.
I'm really curious about your reasoning. Does it offend your aesthetic sensibilities? Do you think people who would choose such a name can't be trusted with search? Or something else entirely?
> Does it offend your aesthetic sensibilities
Yes. I’m completely aware it’s irrational and probably a bit dumb, but I don’t want to use something with a name I actively hate. Some names are "meh" or boring and that’s ok. But for DuckDuckGo and Forgejo I have a visceral reaction against their name.
DuckDuckGo is an even worst offender because their logo is ALSO dumb and terrible, and I don’t want to see it.
1 reply →
Use ddg.co on mobile.
7 replies →
> a tool I can’t even pronounce
jazzyjackson provided the pronunciation guide in a comment above:
> forˈd͡ʒe.jo, to my midwestern ear, "4 Jay yo"
It's totally OK for a project to use words from a foreign language. "Linux" is derived from Finnish Linus (/ˈliːnʊs/) and pronounced /ˈlɪn.əks/, unlike the English Linus - /lɑ́jnəs/.
IMHO Forgejo should have the IPA pronunciation spelled out on the landing page.
> this is why I also don’t use DuckDuckGo
Just how silly "Google" sounded when it first popped up? How Torvalds joked that he named "git" after himself? "Bash" is a play on "Bourne" and "born again"? Silly names are a part of the hacker culture, remaining playful despite the product having huge impact brings color to people's lives.
> Just how silly "Google" sounded when it first popped up? How Torvalds joked that he named "git" after himself?
I knew these examples were coming. Subjectively speaking, these are catchy names, which is why they work. Forjego and DuckDuckGo are not catchy, there's something wrong with their flow. Maybe they're too long or too "breaking", or maybe they don't work internationally (I'm French) somehow, I don't know. I'm not going to write a thesis on why some names don't work, but if someone did I would love it. Silly names are ok but there's a very thin line between "silly" and "annoying". DuckDuckGo definitely crosses it for me.
off: google translate English lady pronounces it as "4 Jay ho" with an H. That isn't how a native English speaker would attempt to pronounce Forgejo, is it?
2 replies →
Yep, same reason I never used Google, or ffmpeg, or Debian, or Kubernetes.
That's a weak reason and you know it.
It might not be a very strong reason, but quite enough to pick the original project which also has more development effort behind it (and is still used by Blender FWIW, I don't think they have any plans of migrating). I understand your first language is German. Figures. The name is unpronounceable and feels weird to me also. If we ever migrate from gitea (although I currently see no reason to do it), I'll have to pick some generic term and introduce it to others under that name.
3 replies →
I think they don't.
I know. But I don’t want to use something with a naming sounding weird that I actively hate, especially when there are alternatives with a better name.
Clearly Postgres is not a good database and you will wisely use any other. I can see real advantages to this. It saves you so much effort and time. In fact, it allows you to make no effort at all.
I have never heard anyone mispronounce postgres. It's even more straightforward than Gitea, which native-roman-language-speakers might pronounce "git-tay-ah"
1 reply →
Why? I don't think Postgres is a bad name, it's not great but not terrible.
> I can’t even pronounce
Even if one is somehow monolingual, forgejo is a perfectly fine word in English. There are even multiple ways to make it sound funny (forge-joe, forge-yo, etc).
for-get-hoe
Ex-meta engineer here. I miss their internal GitHub which is a mercurial fork. They have so many awesome features like layered PRs.
That is something I have not seen anywhere .
I’m working on a git collaboration server that doesn’t require a git remote.
The premise is to leverage format-patch with an ssh app and then rely on range-diff:
https://pr.pico.sh
I’m curious what others here think
This is more or less how Phabricator (dead, but lives on as Phorge[1]) works. It uploads/downloads patches via HTTP.
IMO, using Git remotes but with a one-review-unit-per-commit approach like Gerrit has a much better UX. Shipping around diffs has all sorts of sharp edges, especially when you stack multiple changes or binary data, and you end up reinventing native Git functionality but worse.
Phabricator started out as "paste your diff here" and eventually ended up with a CLI tool that reinvented half of the Git CLI.
[1]: https://we.phorge.it
I think it is an interesting take. It might be nice to point folks towards https://github.com/picosh/git-pr it has a better explanation.
So this is like the email source diff/patching workflow but extended to use ssh instead?
I try and limit my ssh access to servers and endpoints that I control. The attack surface for ssh is actually quite large.
It seems since you are shipping a patch, that it could be signed with your ssh key, but posted over https. This would make running a server way way more portable. Everything else about it seems quite nice.
Since the language is Go, creating an https service should be just as easy correct?
I like the idea of dynamic RSS streams with patches flying around.
https://www.phind.com/search?cache=izzjsrslnqwrwmh3mtxwyrx4
Exactly. People don’t struggle with format-patch, they struggle with integrating patches into their email clients.
Our design philosophy is to not require the project’s git repo in order to enable developers to collaborate.
We are also trying to make this service a supplement to other code forges. Competing with GitHub is a huge uphill battle, instead I’m thinking of this service more as a patch-bin instead of a git collaboration tool for corporate entities
1 reply →
Does this have a CI/CD solution? I don't see anything from skimming the user docs.
It does, called “Actions”
https://forgejo.org/docs/latest/user/actions/
Neat! Thanks. I see this is located in the docs between "comment via email" and "message templates". If the devs see this, perhaps adding more buzzwords would be helpful to discovery.
Yes, you need to spin a forgejo runner
they are currently developing Forgejo Actions[0], or you can use the existing Woodpecker[1]
[0] https://forgejo.org/docs/next/user/actions/
[1] https://woodpecker-ci.org/docs/administration/forges/forgejo
The project is amazing
The name of the project is horrible
Looks interesting but I’m not quite sure exactly what it is based on what I am seeing on the front page.
It sounds like this is trying to coin a new term. I hadn't heard the word forge used to mean an all-in-one git+issue tracker+project mgmt+etc. suite before.
The term is decades old at this point. It doesn't seem to play well outside of the older open source communities, now that github has xeroxed.
It is not new. I have heard that word for more than a decade already.
I guess you need to know about the foss ecosystem to know it.
It is not new, but also not ubiquous enough to express something everyone understands.
Trying to get "forge" across as some kind of defacto term just adds noise to the product description, I think.
I also knew it but look at the number of comments saying "what is a forge?" here - it's clearly not a good description.
1 reply →
Once upon a time, a lot of software was released/available through "source forge", which is pretty self-explanatory in the context of software publishing. Then a decade ago, SourceForge shit the bed and destroyed its reputation. I'd bet that most of the developers saying they've never heard of "forge" in this context have entered in the industry in that time.
https://en.m.wikipedia.org/wiki/Forge_(software)
That Wikipedia page was created in April 2008.
> Examples of such services are: Sourceforge.net, GNU Savanah, Google code
https://en.wikipedia.org/w/index.php?title=Forge_(software)&...
Ever heard of Sourceforge?
This is a bad association even for people that recognize it. Presumably there were good years but most will probably remember the ugly endgame with awkward UX and weird ads masquerading as fake download links.
3 replies →
> Ever heard of Sourceforge?
Yup! That clears it up. It’s the site that serves lots of ads and binary packages of some old software. At least as of the last time I looked some years ago.
Ok then, not sure I would want more things like that today to self host, but to each their own.
The first time I heard that word was in Sourceforge, decades ago.
It’s not new, it’s outdated and they’re trying to make it come back.
It's not clear from the landing page whether it's a git code platform / mercurial / entirely new VCS. I wish it was clearer (looking at the Readme, looks like it's indeed a git hosting platform).
I don't really care about the governance model as a user seeing this landing page for the first time, so I wonder why it's so prominent, vs telling me what the actual product is.
The governance model is the reason for its existence -- Gitea went stupid proprietary, so this is the rebel alliance being proud of being the rebel alliance.
I think this is a great peace of software, though i think its mostly tailored for the single dev, or business case for closed source software, but much less a software peace that allow for great community building. I think this is because of:
a) The network effect that you inherently get with for example github b) The barrier to create accounts on yet another platform to contribute.
In that regards i find the original way of just using email's to send patches just such a brilliant idea, because at least it eliminates my second point completely. That's why i think sourcehut [0] is such a nice idea at least in theory. Though now you have to teach people not only how to use "git" but also how to use "git" via email :D
https://sourcehut.org/
Gitea and Forgejo support OAuth integration and AGit Flow*, which is a breath of fresh air compared to the connected "fork" and PR strategies. It's a good middle ground between the "modern" method and email collaboration. With some UX tweaks it could become very accessible for many.
Available platforms like Codeberg provide the option to sign in/register with GitHub and GitLab auth, so needing "yet another account" has become a much weaker argument.
* https://forgejo.org/docs/latest/user/agit-support/
can anyone share what the benefit is over using a self hosted repository host over a service like github/gitlab? obviously you get more power over the interface & such but are there truly any gains over using the larger platforms?
A self hosted repository host gives you the ability to develop software projects without giving up privacy or locking you into a service you don't control.
Aside from the whole self hosting ethos, if you are hosting it from a home server and you are the primary user, you will get a nice performance boost. Downloading binaries, cloning repositories will be instant. If you use CI, it will be running on an actual machine rather than 10% of some 2GHz cloud CPU.
I regularly have to upload multi GB images to a VPS and it's very annoying when it takes like 10 minutes.
Two self hosting tips:
If you're going to use SQLite, make sure you enable the WAL mode on the database. It makes such a huge difference to performance that I don't know why it isn't the default.
If you're going to have multiple concurrent users (or even just one user but a large number of background writing jobs, such as mirroring public repositories), then seriously consider using Postgres. Yes, theoretically it's possible to make SQLite backed applications work fine in this scenario, but Gogs/Gitea/Forgejo has not designed their application like that, so it falls over at surprisingly small sizes and migrating after the fact is painful.
It's very useful for companies - more control, don't have to host your code externally, and you don't have to pay (well, ish; we ended up paying for Gitlab Premium, but that doesn't exist for Forgejo).
From the top of my head with dozens of others:
- Not all projects are suitable for hosting by third parties (you may not want to give away the special sauce behind your wannabe next trillion dollar company, or you may be handling sensitive or confidential data like medical records, etc)
- You are immune to the trending process recently referred to as enshittification that consists of providers in a consolidated market like this one giving you an increasingly worse experience to compel you into more expensive plans, i.e. you gain independence and control
- It might be a competitive advantage to your business to still have the lights on when inevitably the centralised platform becomes unavailable to most (think of trading and events like crowdstrike)
You just have to pay for the hardware instead of going onto crazy expensive fee schemes.
Downtime when you can afford it (for us it's in the middle of the night, and very rarely), not in the middle of the working day when GitHub fucks up yet again.
Maybe privacy, outside of that, same client, so not much.
we are considering moving from gitlab to forgejo. it's not a immediate concern but i think the days of gitlab are numbered with recent change in top management.
Is fogejo the platform that codeberg uses?
Yes
Who owns the Forgejo domains and trademarks? > The Forgejo domains are in the custody of the non-profit Codeberg e.V..
e.g. https://forgejo.org/faq/
And vice versa. Codeberg is the official host of the sourcecode
Been using forgejo for years to maintain mirrors of GitHub repos I like.
Works great. Easy to set up (especially on nixos)
I think Gitea not being maintained via Gitea was reason enough to fork it— I am glad Forgejo did!
I'm not sold on Forgejo as a better alternative to Gitea. The Forgejo fork was completely unnecessary. The trigger behind the fork was the Forgejo authors tried to add their own copyright header into a patch contributed back to Gitea. They (Forgejo/Codeberg) followed it up with a lot of misinformation on FOSS e.t.c. some of which is still on their Gitea comparison page that ended up fracturing the community.
Some Codeberg admins had at some point threatened to blanket ban certain types of projects, notably anything slightly related to blockchain tech and that has always made me cautious of their site.
[dead]
[flagged]
Please explain. Not clicking those links.
Is it a "software forge" or is it just using git locally?
It is similar to GitHub, it's a fork of Gitea whose site has screenshots: https://about.gitea.com/
(couldn't find any on Forgejo's site)