The idea of “self-hosting” git is so incredibly weird to me. Somehow GitHub managed to convince everyone that Git requires some kind of backend service. Meanwhile, I just push private code to bare repositories on my NAS via SSH.
They didn’t convince anyone of anything, they just have a great free-tier service, so people prefer using it than self-hosting something. You can also self-hosted Github if you want the features they offer, besides Git.
This post is about “self-hosting” a service, not using GitHub. That’s what I’m responding to.
I’m not saying GitHub isn’t valuable. I use it myself. And in any situation involving multiple collaborators I’d probably recommend that kind of tool–whether GitHub or some self-hosted option–for ease of user administration, familiar PR workflows, issue tracking, etc.
But if you’re a solo developer storing your code locally with no intention to share or collaborate, and you don’t want to use GitHub (as, again, is the case with this post) a self-hosted service adds a ton of complexity for only incremental value.
I suspect a ton of folks simply don’t realize that you don’t need anything more than ssh and git to push/pull remote git repositories because they largely cargo cult their way through source control.
Is running a docker container a lot of overhead?
Ernestly asking, since my opinion is skewed cause im use to running containers.
Absolutely. Every service you run, whether containerized or not, is software you have to upgrade, maintain, and back up. Containers don’t magically alleviate the need for basic software/service maintenance.
Yes, but doesn’t that also apply for a machine running bare git?
Not containers also adds some challenges with posibly having dependecies problems. I’d say running bare git is not a lot easier than having a container with say forgejo.
No. It’s strictly more complexity.
Right now I have a NAS. I have to upgrade and maintain my NAS. That’s table stakes already. But that alone is sufficient to use bare git repos.
If I add Gitea or whatever, I have to maintain my NAS, and a container running some additional software, and some sort of web proxy to access it. And in a disaster recovery scenario I’m now no longer just restoring some files on disk, I have to rebuild an entire service, restore it’s config and whatever backing store it uses, etc.
Even if you don’t already have a NAS, setting up a server with some storage running SSH is already necessary before you layer in an additional service like Gitea, whereas it’s all you need to store and interact with bare git repos. Put the other way, Gitea (for example) requires me to deploy all the things I need to host bare repos plus a bunch of addition complexity. It’s a strict (and non-trivial) superset.
I dont know. 😆 im really just trying to get it in case -for example- of needing to advice someone in such a case :) my confusion probably comes from the fact that I have never host anything outside containers.
I still see it a bit diferent. A well structured container structure with configs as files instead of bare commands, back up volumes would be the same effort… But who knows. Regarding the rest like proxies, well you do not really need one.
Thanks taking the time to explain you point tho!
You’re completely missing the point. Even Gitea (much simpler than GitHub, nevermind GitLab) is much more than a git backend. It’s viewable in a browser, renders markdown, has integrated CI functionality, and so on.
Even for my meager self-host use-case, being able to view markdown docs in the browser is useful from time to time, even on my phone.
As for the things I use (a self-hosted) GitLab instance at work for… that doesn’t even scratch the surface.
Do you honestly think they’re “completely missing the point”? Read the meme. There’s no mention of gitea. Self-hosting git is nothing to wiggle your tie over. Maybe setting up the things you are talking about are, but git?
The title of the post is literally “I love my Gitea”.
The content of them meme does conflate “git” with its various frontends (like gitea), but it’s an incredibly common misnomer so who cares?
The person I responded to then went on a weird rant about how “git by itself is distributed” which is completely irrelevant to the point since OP’s Gitea provides a whole lot more.
I said “read the meme” because that is all I was addressing. The title is just engagement-bait as far as I’m concerned. It’s either a meme or question. I’m sure others are here for the question but not the meme. And therefore, I’m being engagement-baited. Who knows, but I was clear about what I was talking about.
I just think saying “you’re completely missing the point” to a comment that is perfectly on topic is completely uncalled for.
I reason I think git is dead-simple to “self-host” is because I do it. I’m not a computer guy. I just used svn to version control some papers with fellow grad students. (it didn’t last, i was the only one that liked it.) so now i use git for some notes i archive. I’m not saying there aren’t tools to considerably upgrade the easy-of-use factor that would require some tech skills I don’t possess, but I stand by point.
Bare repos with multiple users are a bit of a hassle because of file permissions. It works, and works well, as long as you set things up right and have clear processes. But god help you if you don’t.
I find that with multiple users the safest way is to set up/use a service. Plus you get a lot of extra features like issue tracking and stuff.
Agreed, which is why you’ll find in a subsequent comment I allow for the fact that in a multi-user scenario, a support service on top of Git makes real sense.
Given this post is joking about being ashamed of their code, I can only surmise that, like I’m betting most self-hosters, they’re not dealing with a multi-user use case.
Well, that or they want to limit their shame to their close friends and/or colleagues…
deleted by creator
deleted by creator
I love it when I check out am applicants’ GitHub and run into a bunch of repositories with mods for hentai games.
I mean…are they good mods? Does the candidate have good code etiquette?
Honestly, the fact that a candidate would mod any game, let alone a hentai game, would be pluses in my book.
I definitely do not count it against them as long as they know how to human at the interview. I just review the code as I would any repo.
The only thing is that with regular projects I tend to go “I noticed on your GitHub you have project X that uses technology Y, etc etc”. With H projects I just go “do you have experience with Y” and let him choose how much he wants to share about the project. So far they remain vague on the non technical details and I let them leave with their dignity intact.
So, ranked, way ahead of candidates without visible projects, but slightly behind people with projects we can discuss in detail in front of the people from HR ;)
Based
Men of culture
Power move.
People who say “codes”
Thank you for letting me know. As you might guess English is not my first language. Always appreciate these inputs.
lol, I have no idea why someone down voted you.
But yea, the plural of code in the context of programming scripts is just code, but if you were to talk about codes like a code to get into a door pin-pad, it has an “s” at the end for plural. To be honest, I’m sure there’s plenty of native English speakers not in the tech world that would likely also call it “codes” when talking about programming.
From my experience this is a very Indian thing.
Also heard it a lot from Chinese speakers.
It’s also a lot more common in the HPC community from what I’ve seen. Fortran people often have codes they want to run.
I was aware of forgejo back when I first started hosting Gitea. Didn’t see much of a diff back then so I just went with arguably more popular option at that time.
About few months after it’s mostly just because I’m too lazy of a person.
Forgejo is a fork of Gitea. As of now I don’t think they have diverged much. So they’re (still) about the same. It was mainly created because of the takeover of the domain and trademark by a for profit company. Not because of different functionality.
Yes this is a great idea, this had happened to tons of different projects. Always stick with the foss option
I self host gitea because I don’t want to pay Microsoft $160 a year.
Wait, isn’t github free?
For public foss projects only, afaik
I think it changed it after they were bought by Microsoft, you get infinite(?) private repos on a free account now.
So they can read your code and use it for copilot
I’m just happy to be doing my part to make copilot worse.
Wanna talk about poisoning LLMs? Just assume the coffee in my repo is in any way good.
I’ve got 3 tricks for ya:
- backups
- backups
- backups
What are you saying? My gitea is my backup!
True pro gamers just use
/Project
/Project1
/Project_latest
/Project_final
/Project_final2
/Project_final_forrealthistime
Are you the hacker known as 4Chan? How else could you know my version naming convention?
Regardless, all will be forgiven if you can remind what folder and file actually contains the final version. So… which is it?
You tried to get organized and moved it here. It says “alpha” and “test” but it’s the real one, ready for production.
~/git/projects/Project_final3-alpha-0.1.1-test
Imposter. That was a test. The real 4Chan would know that I use:
FileName.ACTUAL_REAL_LATEST_FINAL_PROD_VERSION
And it works everytime, about 70% of the time.
Did the hacker 4chan write the pho SQL functions?
The trick is to switch to forgejo
Absolutely!
Running local, self hosted forgejo with a few runners.
Now my code is neatly checked with pre-commit and linters, build when new tags are pushed, renovate is scheduled every 24 hours to check for new releases of stuff etc.
Just a few containers and a happy user :-)
do you use forgejo-runner or another ci/cd image?
Still testing and fiddling, but I’m using the forgejo-runner. Renovate is just another repository, with a workflow to get it started:
on: schedule: - cron: '5 2 * * *' - cron: '5 14 * * *' jobs: build: runs-on: docker container: image: renovate/renovate:37.140-full steps: - name: Checkout uses: actions/checkout@v3 - name: Run renovate env: PAT: ${{ secrets.PAT }} GITHUB_COM_TOKEN: ${{ secrets.GITHUB }} run: | echo "Running renovate" cd ${GITHUB_WORKSPACE} renovate --token ${PAT}
The renovate image has been pulled by hand and the forgejo-runner will happily start the image. Both PAT and GITHUB secrets are configured as ‘action secrets’ within the renovate repository.
Besides the workflow, the repository contains renovate.json and config.js, so renovate has the correct configuration.
I am not the OP but I use Woodpecker CI.
I like to keep things separated, in a KISS fashion. This makes changing either software easier.
Mental note: have to migrate my gitea instance over to forgejo.
I was about to suggest that
The license gives me the ick, so I’d never
Someone mentioned this awesome fork of it for that reason https://forgejo.org/compare/#why-was-forgejo-created
Thanks! I’m a Gitea user for years and was not aware of this. I was planning my own Gitea server, I will now forgo gitea for forgejo.
I made the switch a couple of days ago. Just downloaded the forgejo binary, renamed it to gitea and dropped it in as a replacement. Now I am running forgejo successfully.
Good to know it’s that easy!
Love it when this happens, volunteer random info and someone is like yeah I actually needed this thanks haha
Exactly. I’d always go for Forgejo over Gitea now, especially since even Codeberg uses it (and I trust them)
private repo?
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters Git Popular version control system, primarily for code NAS Network-Attached Storage SSH Secure Shell for remote terminal access
3 acronyms in this thread; the most compressed thread commented on today has 6 acronyms.
[Thread #442 for this sub, first seen 20th Jan 2024, 16:55] [FAQ] [Full list] [Contact] [Source code]
Is there a federated git out there yet?
It’s called “git”
Look into forgejo nee gitea. It’s the closest to a working fed option.
Isn’t gitlab working on fed as well?
I forked a piece of code and found a bug, I’m still afraid to merge it in because I might have hit it by mistake
I’m number 2