https://forgejo.org/

I recently set this up on my homelab, not really expecting to switch to it, more out of interest. But wow, after I saw how unbelievably fast it was, I’ve moved everything over. I’ve now set it up to mirror things automatically to Github if I want to make them public.

Using Github at work is painful in comparison. (Also literally just this morning we’ve had to delay a release due to Github being down.)

Is their CI and CD workflow robust like gitlab/github ?

It's based on act[0] so it's quite like GitHub actions but not completely [1].

I found in the current version of Forgejo the most secure way to set it up was just to put the runner on a different host. There's a Docker in Docker setup [2] that was challenging to get working correctly but still didn't quite feel secure...

After setting it all up, I'm convinced GitHub actions as a concept is flawed. I wish the community would make a simpler git-defined CI/CD that didn't have the crazy surface area that actions does... Named shell scripts that can call out to other stuff in the runner Docker image and report it to the UI would be a nice start.

[0]: https://github.com/nektos/act

[1]: https://forgejo.org/docs/v15.0/user/actions/github-actions/#...

[2]: https://forgejo.org/docs/v15.0/admin/actions/docker-access/#...

Agreed. GitHub Actions feels like someone's science project created while on a mushroom trip. Really you just want a thing that executes a shell script in a runner.

You can use any CI/CD you want. The only reason GH is popular is that it's free for public repos.

But Forgejo does have a GH like CI/CD. If you really care about good CI/CD then you should try some of the alternatives out and decide what works best for your needs.

What can you recommend?

I don't have any specific recommendations other than do as little in your CI/CD as possible, instead do as much as possible in your build system or scripts that get called by CI/CD. This way you can migrate with less work or run locally when you want.

Hopefully a good spot to plug my own project, preloop, which is a drop-in replacement of Github actions(both the runners and control plane) that runs locally or self-hosted in isoalted microvms, and supports debug-on-failure. You can also push to the server, run CI and then optionally create a draft PR. Not quite production-ready yet(for the self-hosted part), but the local part works well. We implement the official runner protocol 100% unlike act/gitea/forgejo, so your workflows are more likely to work out of the box with preloop(forgejo has the closest compatibility with Github Actions though so it's a good off-Github option) and we use microvms so no DinD issues. I'm working on getting the official runner vm image up to reduce any environment incompatibilities. Feel free to try it out: https://github.com/preloopdev/preloop

This one is really pleasant: https://woodpecker-ci.org/

Isn't forgejo CI based on woodpecker?

Forgejo CI is based on act, which allows running GitHub Actions locally.

However, Codeberg offers hosted Woodpecker CI.

> The only reason GH is popular is that it's free for public repos.

It's also free for private repos, and I have both. Codeberg doesn't like private repos, so unfortunately I cannot just move everything to Codeberg. I'll probably set up a Forgejo VPS somewhere.

For a forgejo host, check codefloe.com if what you need is a place to host personal projects or smaller teams. It’s been rock solid and it is now the default choice for anything outside of work I’ll do.

More than that, it is integrated with Github.

Works well and is pretty straightforward.

Just set up a CI pipeline for PHP projects with a forgejo runner last week. Tried many approaches, ended up with a simple debian VM. Runner works well with docker images inside the VM, quite a flexible setup. Found this easier and better than my last tries a few years ago with gitlab, which always felt quite bloated.

I also published a blog post today about this whole journey: https://sarah-robin.com/blog/we-just-wanted-to-deploy-a-webs...

If you know GitHub actions then you’ll immediately understand Forgejo actions. It was designed that way intentionally. There are some differences, but at least for me not enough to warrant any pitchforks.

If you have advanced use cases you might be more frustrated, but I’m not aware of any off the top of my head. I think my biggest complaint is that they haven’t exposed action logs over the API, so I can’t build tooling around them at the CLI level, feed them to an LLM, or more quickly diagnose problems that arise without using the website.

A basic API to access Actions logs was added in Forgejo v16. `/api/v1/repos/{owner}/{repo}/actions/jobs/{job_id}/logs`

Thanks to you I’ve now upgraded to v16, and can confirm the logs API works beautifully!

Nice! I was hoping they would add this in v16. Unfortunately I am still on v15 of all my instances of Forgejo

Hooks directly into drone.io using SSO.

Self host both of them on my internal network. Technically old version of gitea which is forgejo pre-fork

[deleted]

Extremely yes

"Forget Joe", not the best name for a git repo host

I think it's funny. I upvoted.

Again, I'm downvoted. This social network is totally insane. No answer, just downvotes. No humor whatsoever. Sorry. I won't comment anymore.

[flagged]