So excited to see this, not because I need it, but because this is what I've been using for so many years. It's the fastest lightest weight git server and yet somehow still is comparable to every other option.
Christian how did you know I was in the middle of deploying my docker compose file for Gitea with Traefik, so I can host all of my other docker compose files for home lab services 😅? Excited to watch this! Edit: I also want Twingate too! You are hitting the mark on this video.
@@christianlempa feels like something that should've been part of the video tho, Ive been using gitea without db setting for quite a while with zero issue and I think my setup is rather large but who knows. I was originally using postgres but ran into constant permission errors no matter the configuration of UID/GID it would create db files outside of the configured permissions that would effectively kill the container
@@christianlempa SQLite is a real database and perfectly capable of handling large setups without a sweat. It's time to move on from the sentiment that SQLite is only for mobile devices and embedded systems. If you need a cluster (or server - client architecture), then SQLite is not the right database; however, there are other approaches, like a database for each customer instead of a cluster. See what the folks at Turso are doing. They forked SQLite into LibSQL because they wanted to extend SQLite, but to this day, SQLite is maintained by only three people and does not accept contributions from outside.
I agree up to a degree. Build-in sqlite will not allow me to run multiple gitea instances on it. But for home lab it will be fine. In my case I had gitea with external db because I liked to move it from host to host (not vm based deployment but only containers). I could not use vms as my hosts have different cpus. They are around 100km aparat as well :)
I have been using Gitea and Gitlab CE in my homelab for quite sometime now. I integrated both them with Jenkins for running pipeline separately. It's awesome!!!
@0r_1x i personally wouldn’t trust a pi with repositories. Especially when using a SD card which is limited in write actions before it fails. I have 2 Gitea instances running cloning eachother so I can failover by changing the internal routing from the domain to the proper VM, and backing up the whole docker container to a tar.gz on my backup server.
I started with Gitea as a mirror copy for my own repos or other repos I follow for preservation. But I’m very pleased in how it works. So eventually I might change to it fully, with a additional mirror as failover.
Gitea is very simple to run and with great performance. Even tried it on my Synology NAS just to pull other repos as mirror/backup, running flawless on my NAS with 350 mirrors on it, which automatically pulls new commits from the original repos.
Great video Christian, I've been running Gitea for a while and wondering if I needed to move over to Gitlab. Looks like I am staying on Gitea. If you are interested I have some notes about doing a SSH hand-off between docker host and the Gitea container so you don't have to use a custom port number for ssh.
Gitea is awesome, I've been using it for years after moving from Gogs. Running it and Drone for CI, building releases and adding them to Gitea. Also if you want to self host your containers or npm packages you can do that as well using Gitea.
why does gitea need to know the ssh port if you change it from 22? the service config in the compose.yaml should take care of it and simply map incoming connections on 2221 (or whatever you chose) to 22 inside the container and the container should have no issues. any ENV config should be to change the internal port of ssh so that you could configure 2221:2221, or am i missing something?
That’s right, but in the Gitea webUI it still thinks it’s listening on port 22, so to append the right ports to any links you have to add the ENV variable.
Gitea also features package registries for package managers like npm, cargo, apt, etc. It's very convienent if you want to host your own packages. Gitea also has a container registry for docker images. I'm still navigating my way through that, but it provides a good alternative for docker hub.
Forgejo > Gitea. Forgejo is a Gitea Fork, which i like more than gitea. Gitea is becoming more and more commercial, forgejo is the opposite, that is one of the reasons.
Great video! For some reason cloning using ssh don't work for me, and vsCode are throwing errors. Any chance you can go into a bit more detail on the ssh part of this in a later video?
I've been using Gitea for a long time. But every time I update it to a new version, it gives me a 500 error in web browser and can no longer see my repo in the browser. Seems to be permission errors. To fix it, I end up completely wiping my persistent storage, and recreate all my repo's and then push my local repo back to the Gitea server. Do you think you can do a video on how to update Gitea? Or drop any hints on why pulling a new docker image kills it? I didn't know about the migration so maybe that would help... but I'd prefer to know how to update without killing my server. THANKS!
Is SSH working with such installation? I did almost the same but in my case, SSH access to git doesn't work. I checked and found a detailed gitea documentation on how to make SSH work which involves creating a passthrough.
@@christianlempa The only thing different for me than your setup is that I am using nginx as reverse-proxy and not traefik. So, naturally, I skipped those traefik config from the docker-compose file. Anyway, I will take a detailed look at it. Dankeschön.
Hi thanks for the detailed video. I checked the link and saw there is a paid version and I came across forjio or forgeo.. like to know what is the difference between the two.. asking this because it's open source and free for both personal and business .... need guidance on this
Hello Christian, thank you for this very interesting video on Gitea. Would it be possible to go into more detail on the CI/CD subject with gitea actions in a future video?
Hey Christian! Question about DB, do you prefer having single DB server that is shared among services or do you create separate DB servers for each service? Data mobility tips balance in favor of separate servers, but management and backups favor single shared DB server. I want to hear your thoughts.
Hey man I just discovered your channel, do you have a playlist where people who are totally new to Linux administration and cloud containerization ETC.
Never heard of onedev... Seems worth giving it a shot! Thanks for sharing. I also ditched Gitlab because of his huge resource needs in favor of Gitea and Woodpecker. Then I watched about the Forgejo fork but never had the chance to actually migrate to it.. I wonder how it's now vs Gitea.
@@akaibukai It's still very similar to Gitea, but they hard-forked the Gitea's code after the move towards open-core. They are also still slowly working towards forge federation, so that you can file a PR on your own Forgejo instance against a remote instance. Moving from Gitea to Forgejo was seamless; I just replaced the binary and used the same database and repos.
@@christianlempa That's fair. I am an exceptionally light user of any Git hosting at the moment, and I took the exit while it was still a drop-in replacement, rather than the risk that I would have to start standing it up sometime later from scratch.
@ thanks for response and my question came from a good place 😎 gitlab seems very full featured however seen lots of hype recently over gitea so was totally curious. Love your content 🙏
Git is one of the two things I'm not going to selfhost. The other is the password manager. If I have my passwords/secrets and my git repo, I can completely rebuild using Ansible, even if everything burned to a crisp and had to be replaced. But I need this seed crystal.
Fair point! I also don't like hosting a password manager, and I'm still using GitHub for many things, but for my personal homelab projects I like to use a self-hosted Git
So excited to see this, not because I need it, but because this is what I've been using for so many years. It's the fastest lightest weight git server and yet somehow still is comparable to every other option.
Awesome! :)
why gitea and not the newer forkv forgejo?
I think it's still too early for Forgejo, we should give it more time to see how it progresses
Christian how did you know I was in the middle of deploying my docker compose file for Gitea with Traefik, so I can host all of my other docker compose files for home lab services 😅? Excited to watch this!
Edit: I also want Twingate too! You are hitting the mark on this video.
Haha, I didn't know, but it was perfect timing :D
about databases - it have sqlite built in database, if not specify any DB setting. It running quite smooth without any external database.
Thanks for sharing! However a real database is mostly recommended in larger setups, that's why I prefer it over sqlite
@@christianlempa feels like something that should've been part of the video tho, Ive been using gitea without db setting for quite a while with zero issue and I think my setup is rather large but who knows. I was originally using postgres but ran into constant permission errors no matter the configuration of UID/GID it would create db files outside of the configured permissions that would effectively kill the container
@@christianlempa SQLite is a real database and perfectly capable of handling large setups without a sweat. It's time to move on from the sentiment that SQLite is only for mobile devices and embedded systems. If you need a cluster (or server - client architecture), then SQLite is not the right database; however, there are other approaches, like a database for each customer instead of a cluster. See what the folks at Turso are doing. They forked SQLite into LibSQL because they wanted to extend SQLite, but to this day, SQLite is maintained by only three people and does not accept contributions from outside.
I agree up to a degree. Build-in sqlite will not allow me to run multiple gitea instances on it. But for home lab it will be fine. In my case I had gitea with external db because I liked to move it from host to host (not vm based deployment but only containers). I could not use vms as my hosts have different cpus. They are around 100km aparat as well :)
Christian, that's a killer icon you've got there! I love it.
Thanks :D
Your self-host videos are amazing!
Thank you so much!! :)
I have been using Gitea and Gitlab CE in my homelab for quite sometime now. I integrated both them with Jenkins for running pipeline separately. It's awesome!!!
Same
How do you compare it with Gitlab? Why combine both? I use Gitlab too, but might switch to Gitea as Gitlab is very heavy to use with doing nothing.
@@xoniq-vr Interested as well. Was debating actually running Gitea on a Pi.
@0r_1x i personally wouldn’t trust a pi with repositories. Especially when using a SD card which is limited in write actions before it fails. I have 2 Gitea instances running cloning eachother so I can failover by changing the internal routing from the domain to the proper VM, and backing up the whole docker container to a tar.gz on my backup server.
Awesome! I'm also using GitLab, it's amazing ;) More about a comparison in next video
Starting with forgejo to see how it goes. Thank you for this video.
after forgejo fork gitea, i migrate to forgejo ..
Thank you! ;)
I started with Gitea as a mirror copy for my own repos or other repos I follow for preservation. But I’m very pleased in how it works. So eventually I might change to it fully, with a additional mirror as failover.
Support forgejo.
I think it's still too early for Forgejo, we should give it more time to see how it progresses
Perfect timing! I was loathing upgrading my gitlab project. Hopefully, gitea is more lean to run and easier update.
Gitea is very simple to run and with great performance. Even tried it on my Synology NAS just to pull other repos as mirror/backup, running flawless on my NAS with 350 mirrors on it, which automatically pulls new commits from the original repos.
@@xoniq-vr Nice! Thanks.
Awesome! :)
Great video Christian, I've been running Gitea for a while and wondering if I needed to move over to Gitlab. Looks like I am staying on Gitea. If you are interested I have some notes about doing a SSH hand-off between docker host and the Gitea container so you don't have to use a custom port number for ssh.
Sounds like a good idea! Why not submit it our boilerplates GitHub Repo, and we'll review it :)
Gitea is awesome, I've been using it for years after moving from Gogs. Running it and Drone for CI, building releases and adding them to Gitea. Also if you want to self host your containers or npm packages you can do that as well using Gitea.
Nice!
why does gitea need to know the ssh port if you change it from 22? the service config in the compose.yaml should take care of it and simply map incoming connections on 2221 (or whatever you chose) to 22 inside the container and the container should have no issues. any ENV config should be to change the internal port of ssh so that you could configure 2221:2221, or am i missing something?
That’s right, but in the Gitea webUI it still thinks it’s listening on port 22, so to append the right ports to any links you have to add the ENV variable.
@christianlempa got it, it's to make copy-paste stuff with ssh work correctly. thank you!
Gitea also features package registries for package managers like npm, cargo, apt, etc. It's very convienent if you want to host your own packages.
Gitea also has a container registry for docker images. I'm still navigating my way through that, but it provides a good alternative for docker hub.
True, that's a good feature :)
Forgejo > Gitea. Forgejo is a Gitea Fork, which i like more than gitea. Gitea is becoming more and more commercial, forgejo is the opposite, that is one of the reasons.
I think it's still too early for Forgejo, we should give it more time to see how it progresses
@@christianlempa xD Forgejo is 2years old! Its not to early.
Agreed.
@@christianlempa Can you please clarify what made you think like that ? I assume you tried it but didn't like it as much as Gitea. Would love to know.
You are like the Stephan Bodzin of IT! 😄
Didn't know this guy :D but yeah you might be right
thanks Christian! so well explained
Thank you so much! :)
I love gitea, especially after everything github is doing as of late.
Yea Gitea is amazing!
Is there anything about Gitea that feels less handy than GitHub?
are HDDS fine for this or should I use SSDs? Thanks
Great video! For some reason cloning using ssh don't work for me, and vsCode are throwing errors. Any chance you can go into a bit more detail on the ssh part of this in a later video?
Thank you! I think you got some misconfiguration, maybe you should join our discord, share your configs and what error you're getting
I've been using Gitea for a long time. But every time I update it to a new version, it gives me a 500 error in web browser and can no longer see my repo in the browser. Seems to be permission errors. To fix it, I end up completely wiping my persistent storage, and recreate all my repo's and then push my local repo back to the Gitea server. Do you think you can do a video on how to update Gitea? Or drop any hints on why pulling a new docker image kills it? I didn't know about the migration so maybe that would help... but I'd prefer to know how to update without killing my server. THANKS!
Is SSH working with such installation? I did almost the same but in my case, SSH access to git doesn't work. I checked and found a detailed gitea documentation on how to make SSH work which involves creating a passthrough.
Works great for me
@@christianlempa The only thing different for me than your setup is that I am using nginx as reverse-proxy and not traefik. So, naturally, I skipped those traefik config from the docker-compose file.
Anyway, I will take a detailed look at it.
Dankeschön.
Gitea is pretty good and also the actions. Very handy to update some of my projects (websites). I installed the Gitea on my Proxmox container.
Nice!
How many nodes doe your pve cluster manages?
Hi lempa did you ever tried nix package manager....
not yet, maybe next year
Thank You! Very usefully video.
Thanks! :) glad you think so
Hi thanks for the detailed video.
I checked the link and saw there is a paid version and I came across forjio or forgeo.. like to know what is the difference between the two.. asking this because it's open source and free for both personal and business .... need guidance on this
Forgeo is a hard fork of gitea because of the paid edition
@HadeedSarfaraz
Can we use this too...
@@vijeyparthasarathy I am confused by the question. Its similar to gitea in setup but its personal choice which project to use.
@@HadeedSarfaraz
Thanks for the clarification.
Thank you, :) I think it's still too early for Forgejo, we should give it more time to see how it progresses
Hello Christian, thank you for this very interesting video on Gitea. Would it be possible to go into more detail on the CI/CD subject with gitea actions in a future video?
Thanks! Probably I'm going to make a video about GitLab CI/CD first, can't say if I'm gonna do it for Gitea as well at some point.
thanks! good to know that it's lightweight
You're welcome, stay tuned for the more in-depth comparison video Gitea vs Gitlab ;)
Thanks for the video
Thanks for watching! :)
Seems like a lot of self hosters have swapped from gitea to forgejo.
I think it's still too early for Forgejo, we should give it more time to see how it progresses
Hey Christian! Question about DB, do you prefer having single DB server that is shared among services or do you create separate DB servers for each service? Data mobility tips balance in favor of separate servers, but management and backups favor single shared DB server. I want to hear your thoughts.
I prefer running one database server and connecting my apps to it. Unless it's necessary to run a specific version.
You may want to add a link to your Twingate tutorial since you are promoting the service in the video.
Good point, I need to update that shortly
Ah I've been using Gitea for some time. I run on raspberry pi3b. Pretty good for a single user.
Good to hear!
Thank you 🎉
You’re welcome 😊
Hey man I just discovered your channel, do you have a playlist where people who are totally new to Linux administration and cloud containerization ETC.
Welcome on board! Here is a playlist about docker: www.patreon.com/collection/239867
I like onedev or forgejo more than gitea 😊
Never heard of onedev... Seems worth giving it a shot! Thanks for sharing. I also ditched Gitlab because of his huge resource needs in favor of Gitea and Woodpecker. Then I watched about the Forgejo fork but never had the chance to actually migrate to it.. I wonder how it's now vs Gitea.
@@akaibukai It's still very similar to Gitea, but they hard-forked the Gitea's code after the move towards open-core. They are also still slowly working towards forge federation, so that you can file a PR on your own Forgejo instance against a remote instance. Moving from Gitea to Forgejo was seamless; I just replaced the binary and used the same database and repos.
I think it's still too early for Forgejo, we should give it more time to see how it progresses
@@christianlempa That's fair. I am an exceptionally light user of any Git hosting at the moment, and I took the exit while it was still a drop-in replacement, rather than the risk that I would have to start standing it up sometime later from scratch.
dockge is so nice
It is!
What is wrong with gitlab?
Nothing, actually I still use it. But more about that in the next video ;)
@ thanks for response and my question came from a good place 😎 gitlab seems very full featured however seen lots of hype recently over gitea so was totally curious. Love your content 🙏
Git is one of the two things I'm not going to selfhost. The other is the password manager. If I have my passwords/secrets and my git repo, I can completely rebuild using Ansible, even if everything burned to a crisp and had to be replaced. But I need this seed crystal.
Fair point! I also don't like hosting a password manager, and I'm still using GitHub for many things, but for my personal homelab projects I like to use a self-hosted Git