Recommendations for a source code hosting service
from Charger8232@lemmy.ml to selfhosted@lemmy.world on 27 Jul 03:13
https://lemmy.ml/post/33725750

I am looking for recommendations for an open source self-hosted version control system source code hosting service. I found a few, but I can’t decide on which one to pick:

If there’s a better one than the ones I’ve listed here, I’d love to hear about it!

I care primarily about privacy and security, if that makes any difference.

#selfhosted

threaded - newest

tal@lemmy.today on 27 Jul 03:18 next collapse

The things you’re describing aren’t really version control systems themselves. Git is a version control system; these are an ecosystem of web-based tools surrounding that version control system.

I don’t know if there’s a good term for these.

kagis

Wikipedia calls them “forges”:

en.wikipedia.org/wiki/Forge_(software)

In free and open-source software (FOSS) development communities, a forge is a web-based collaborative software platform for both developing and sharing computer applications.

For software developers it is an online service to host the tools they need to work and communicate with their coworkers. It provides a workflow to propose modifications and engage in discussions. The goal is to reach an agreement that will allow these modifications to be merged into the software repository.

For users, a forge is a repository of computer applications, a place where bugs can be reported, a channel to be informed of security issues, etc.

The source code itself is stored in a revision control system and linked to a wide range of services such as a code review, bug database, continuous integration, etc. When a development community forks, it duplicates the content of the forge and is then able to modify it without asking permission. A community may rely on services scattered on multiple forges: they are not necessarily hosted under the same domain.

Charger8232@lemmy.ml on 27 Jul 03:41 next collapse

I guess it would be more akin to a “source code hosting service,” but that would imply that I intend to open it to the internet (which isn’t necessarily the case).

whatwhatwhatwhat@lemmy.world on 27 Jul 04:55 collapse

Sorry for the off-topic question, but this has been driving me crazy.

Is “kagis” the verb for using the search engine “kagi”? For the longest time I’ve been interpreting it as a “dejected sigh” emotional expression.

tal@lemmy.today on 27 Jul 05:00 collapse

Yes!

AbidanYre@lemmy.world on 27 Jul 03:21 next collapse

Gogs is the original. Gitea is a fork because the dev of Gogs wasn’t taking community input (I think that was the reasoning behind it). Forgejo is a fork of gitea because some folks didn’t like gitea forming a for profit corporation (Or something to that effect).

As far as day to day use they’re all fairly similar, though it’s been a long time since I used Gogs.

marcos@lemmy.world on 27 Jul 03:33 next collapse

IMO, the Gogs dev was correct. If you look at that community input and what Gitea became, I was glad to use the version that rejected it.

But I don’t know how it compares with Forgejo.

_cryptagion@quokk.au on 27 Jul 06:59 next collapse

It’s Gitea with some security fixes and community input, as open source software should be.

WhyJiffie@sh.itjust.works on 27 Jul 22:58 collapse

what’s the problem with gitea? I never used gogs so I can’t compare it

marcos@lemmy.world on 28 Jul 00:18 collapse

The added features made it harder to deploy, came with some bugs, and overall traded a simple design for community-oriented features that IMO were a negative value overall.

WhyJiffie@sh.itjust.works on 28 Jul 00:30 collapse

made it harder to deploy? Isn’t it still just a single binary, a config file and a directory for data?

bugs are inevitable for evolving software.

which community oriented features do you mean? are they in the way, or is it just that you don’t need them?

princessnorah@lemmy.blahaj.zone on 27 Jul 04:26 collapse

It’s not just the for-profit corporation, there’s also governance issues. Basically, the community elected certain positions and then had the rug pulled out from them such that no elections would be held again.

In the name of the Gitea Community who elected you last year, we welcome the creation of a for-profit company that allows you to make a living out of Gitea.

[…]

We believed you when you promised to pass along the ownership of the Gitea project to your elected successors. This promise is part of an essential bond between you and the strong Community of volunteers, as well as all those who rely upon our collective efforts.

With that in mind, you can understand our surprise when we learned on October 25th, 2022 that both the domains and the trademark were transferred to a for-profit company without our knowledge or approval.

Source.

AbidanYre@lemmy.world on 27 Jul 13:20 collapse

Thanks, I knew there was a bit more to it but hadn’t followed it all that closely.

i_am_not_a_robot@discuss.tchncs.de on 27 Jul 04:38 next collapse

You’re missing GitLab. I’d be looking at GitLab or Forgejo.

But you might not need this. When you access a private Git repository, you’re normally connecting over SSH and authenticating using SSH keys. By default, if you have Git installed on a server you can SSH to and you have a Git repository on that server in a location you can access, you can use that server as a Git remote. You only really want one these services if you want the CI pipelines or collaboration tools.

vividspecter@aussie.zone on 27 Jul 04:45 next collapse

Having a web UI is useful even if you’re not using the extra tools. Not mandatory of course, but nice.

Arigion@feddit.org on 27 Jul 08:20 next collapse

This is not true. There are lots of places where ssh/vpn is blocked by a firewall while https usually is allowed. So if you want to access/push code while travelling it might be really helpful to have https access to the repo. That was the only reason for me to set up gitlab years ago.

kattfisk@lemmy.dbzer0.com on 27 Jul 14:34 collapse

I feel like you made it sound a bit backwards :)

There’s nothing to install on a “git server”, git doesn’t have a server component. You can point your git client to a remote place where it can store its files using SSH. But you don’t install anything on the server for this.

Which is why self hosting a git remote is super easy. All you need is a server with ssh and a little bit of storage.

If you just want to sync code between different computers and have a backup, that’s all you need.

i_am_not_a_robot@discuss.tchncs.de on 28 Jul 11:15 collapse

Git does have a server component. When git connects to an ssh remote it executes an ssh command that needs to be present.

kattfisk@lemmy.dbzer0.com on 29 Jul 14:21 collapse

You are right! I was fooled by my server already having git installed and this requirement not being mentioned anywhere. I guess that explains why it uses SSH rather than SCP/SFTP.

mvirts@lemmy.world on 27 Jul 05:38 next collapse

My only input is gitlab is very complicated, never used the others

corsicanguppy@lemmy.ca on 27 Jul 05:59 collapse

To install gitlab:

  1. Yum install omnibus-gitlab

Done.

7EP6vuI@feddit.org on 27 Jul 08:11 collapse

maybe the installation is simple, but the whole thing is still a beast and has tons of different services and does a lot of stuff. i prefer forgejo because of it’s simplicity (still not super easy) and it takes less resources.

justme@lemmy.dbzer0.com on 27 Jul 08:52 collapse

I used it for a while. It eats up half your server just by existing ^^is a good system for the time, but now we have better alternatives.

darkan15@lemmy.world on 27 Jul 05:54 next collapse

Used Gitea for a while, and decided to switch to Forgejo before the hard fork split (no more code from Gitea), been using it since, In my opinion both work well, but prefer Forgejo.

flubba86@lemmy.world on 27 Jul 06:23 next collapse

+1 for Forgejo

NebulaNymph@programming.dev on 27 Jul 07:02 next collapse

+1 for Forgejo!

Just set it up with Docker this past week, it was fairly straightforward and has been working well since

56_@lemmy.ml on 27 Jul 08:53 next collapse

Those 3 are all fairly similar. Here are some others I can think of:

  • Gitlab: many features, complex, pr workflow.
  • Forgejo / Gogs: simpler, github inspired interface, pr workflow.
  • Radicle: peer to peer, idk much more…
  • Sourcehut: minimal (non-github) interface, very modular, email workflow.
  • Cgit / Gitweb / etc.: just a git interface, no specific workflow.

 

If you’re not using any of the additional features, cgit should be enough. If you’re planning on collaborating with others, probably Forgejo would be better.

You can also use individual components of sourcehut, if you want a git web interface with just issue tracking, ci, or wiki, for example.

sun@slrpnk.net on 27 Jul 09:33 collapse

A pro of Sourcehut is that EVERYTHING can be done by email. So, if you use their issue tracker and want other people to be able to submit issues, they can do it without making an account.

sxan@midwest.social on 28 Jul 00:35 collapse

Sourcehut also supports Mercurial, so you also have an option to the herd mentality.

Sourcehut also has zero, or almost zero, JavaScript in the interface, so it doesn’t suck

Sourcehut is also componentized, so you can mix and match the pieces you want or need:

  • VCS hosting
  • masking list management
  • issue management
  • build server
  • man server

Sourcehut is by far the best hosted VCS option at the moment. The Mercurial support alone puts it miles ahead of the others, which are all hobbled by tight coupling to git.

StrawberryPigtails@lemmy.sdf.org on 27 Jul 09:28 next collapse

I use Forgejo for my private git repos but in all honesty, it’s massive overkill for my needs.

shiftymccool@programming.dev on 27 Jul 10:28 next collapse

I use Forgejo mostly for code archiving but anything that requires CI/CD, like personal code projects, i use OneDev. No extra setup for pipeline, batteries included

thirdBreakfast@lemmy.world on 27 Jul 11:10 next collapse

Forgejo - actively developed open source. It’s what powers Codeberg. Easy to set up and manage with Docker. I moved to it from Gogs and skipped Gitea after reading about the forks.

DragonBard@ttrpg.network on 27 Jul 13:06 next collapse

If you are not wed to git, and are willing to try something else, why not give Fossil SCM a try. It’s created and maintained by the creator of SQLite. It’s a single executable that provides everything for modern source code management, including a website, and even has an official docker file that just works.

Issue tracking, forum support, email, it’s all there, in a single executable that can serve as both the front and back end depending on how you launch it. And it’s a smaller install than git by itself.

fmstrat@lemmy.nowsci.com on 27 Jul 20:42 next collapse

You asked for a service, but listed software. The latest FOSS software option is Forgejo, you should use it instead of others for all the reasons mentioned. However, if you’re looking for a service, Codeberg runs a very popular Forgejo instance as a service.

possiblylinux127@lemmy.zip on 27 Jul 22:09 next collapse

Forgejo all the way

sugar_in_your_tea@sh.itjust.works on 27 Jul 22:51 collapse

Yup, it’s pretty easy to set up, and since its runners are basically ripped from GitHub, you can piggy back of that documentation.

Kwiuu@lemmy.world on 28 Jul 13:25 next collapse

Not what you want probably but Tangled.sh

tightly-knit
social coding. tangled is new social-enabled git collaboration platform built on atproto. we envision a place where developers have complete ownership of their code, open source communities can freely self-govern and most importantly, coding can be social and fun again.

MITM0@lemmy.world on 28 Jul 13:53 next collapse

How about Fossil ??

Basically it’s an alternative to Git itself, has commands similar to git but with an added bonus of having Github-like features, like:

  • A frickin GUI
  • Bug-tracker
  • Wiki System
  • Ticketting system
  • Forum + Chat
  • Web-Server

Best part !! It’s just one file & the website I linked is a self-hosted instance

medem@lemmy.wtf on 28 Jul 14:26 next collapse

Came into the thread just to say this. Very happy and thankful you mentioned it already. I think fossil is THE underrated vcs.

I’d like to mention chiselapp.com, since OP’s wish is, AFAICT, to have a service that’s hosted elsewhere.

DragonBard@ttrpg.network on 28 Jul 19:45 collapse

Love Fossil-scm and it is super easy to self host, via numerous methods.

MITM0@lemmy.world on 29 Jul 18:51 collapse

I wish there were video tutorials of Fossil

johntash@eviltoast.org on 28 Jul 15:00 next collapse

I’m currently using forgejo and have no complaints.

Depending on your requirements, you might also consider just using regular git and ssh on a central server somewhere.

MysteriousSophon21@lemmy.world on 02 Aug 06:30 collapse

+1 for Forgejo here. It’s lightweight on resources compared to GitLab but still has all the features you’d need, plus the security/privacy focus aligns with your priorities. I’ve been running it on a small VPS for over a year and it’s been rock soild.