I appreciate this little #EasterEgg on the bottom of codeberg.org. 🙂 🏳️🌈
Today's #FreeSoftwareAdvent is forgejo, a self-hostable code forge.
Although I use a headless remote git server for some things, I've been happily experimenting with a public, self-hosted instance of forgejo this year.
I look forward to federation functionality in due course!
I appreciate this little #EasterEgg on the bottom of codeberg.org. 🙂 🏳️🌈
📝 Deploy on push with Forgejo and Coolify #Development #Webdev #Coolify #Forgejo
All of my projects are now stored on my Forgejo instance rather than GitHub as the latter continues to speed run the enshittification curve. I've implemented a manual deploy button in my site's admin but for other, lighter-weight projects, I prefer to deploy changes whenever I push them up.
https://www.coryd.dev/posts/2025/deploy-on-push-with-forgejo-and-coolify
Today's #FreeSoftwareAdvent is forgejo, a self-hostable code forge.
Although I use a headless remote git server for some things, I've been happily experimenting with a public, self-hosted instance of forgejo this year.
I look forward to federation functionality in due course!
The #Forgejo monthly report for November was just published! ✨ https://forgejo.org/2025-11-monthly-report/
A security release was published for Forgejo v13 and v11 LTS.
There is another way to report accessibility issues that lowers the barrier. User research is still seeking your help.
A lot of work has been done regarding federation, and the Dutch government has expressed interest in Forgejo.
Big updates for the #forgejo static website server built on #traefik, features now implemented:
✅ Static site hosting from public/ folders
✅ Automatic HTTPS with Let's Encrypt
✅ Custom domain support
✅ Password protection for private sites
✅ Directory index support (auto index.html)
✅ Redis caching for high performance
✅ Profile sites
✅ custom error pages
I have some more tidy up and documentation to make before version 1.0.0 is released but we are close. #opensource #selfhosted
The #Forgejo monthly report for November was just published! ✨ https://forgejo.org/2025-11-monthly-report/
A security release was published for Forgejo v13 and v11 LTS.
There is another way to report accessibility issues that lowers the barrier. User research is still seeking your help.
A lot of work has been done regarding federation, and the Dutch government has expressed interest in Forgejo.
Big updates for the #forgejo static website server built on #traefik, features now implemented:
✅ Static site hosting from public/ folders
✅ Automatic HTTPS with Let's Encrypt
✅ Custom domain support
✅ Password protection for private sites
✅ Directory index support (auto index.html)
✅ Redis caching for high performance
✅ Profile sites
✅ custom error pages
I have some more tidy up and documentation to make before version 1.0.0 is released but we are close. #opensource #selfhosted
Big updates for the #forgejo static website server built on #traefik, features now implemented:
✅ Static site hosting from public/ folders
✅ Automatic HTTPS with Let's Encrypt
✅ Custom domain support
✅ Password protection for private sites
✅ Directory index support (auto index.html)
✅ Redis caching for high performance
✅ Profile sites
✅ custom error pages
I have some more tidy up and documentation to make before version 1.0.0 is released but we are close. #opensource #selfhosted
📝 Deploy on push with Forgejo and Coolify #Development #Webdev #Coolify #Forgejo
All of my projects are now stored on my Forgejo instance rather than GitHub as the latter continues to speed run the enshittification curve. I've implemented a manual deploy button in my site's admin but for other, lighter-weight projects, I prefer to deploy changes whenever I push them up.
https://www.coryd.dev/posts/2025/deploy-on-push-with-forgejo-and-coolify
So much for the federated merge requests via #ActivityPub.
https://gitlab.com/groups/gitlab-org/-/epics/260#note_2910231358
When I called in https://lwn.net/Articles/963427/ @sir position as the pragmatic one, I was called disingenuous.
(And, BTW, https://codeberg.org/forgejo/forgejo/issues/9225 doesn’t seem to be finished either).
I again spend two days of digging into (self-hosted) CI.
It is shocking how software development is dependent on #GitHub, their action runners and hosting of libraries!
I try to avoid it. For most projects I use #CodeBerg. Codeberg CI-support gets better and the public runners they offer are already quite good. The situation already has improved so much over the last two years.
I wanted reproduceable tests that also run in the CI, exactly the same way. In my case this requires the CI job to span up containers: docker-in-docker. This is not something Codeberg offers, so again I tried to configure my self-hosted forgejo-runner. The documentation is still a heavy read and there are no clear guidelines at all. I went from one error to the next for two days straight. In the end I gave up, I could not get directories from the job container mounted correctly in the containers started by the job container.
If anyone would offer help, I would take any advice.
I again spend two days of digging into (self-hosted) CI.
It is shocking how software development is dependent on #GitHub, their action runners and hosting of libraries!
I try to avoid it. For most projects I use #CodeBerg. Codeberg CI-support gets better and the public runners they offer are already quite good. The situation already has improved so much over the last two years.
I wanted reproduceable tests that also run in the CI, exactly the same way. In my case this requires the CI job to span up containers: docker-in-docker. This is not something Codeberg offers, so again I tried to configure my self-hosted forgejo-runner. The documentation is still a heavy read and there are no clear guidelines at all. I went from one error to the next for two days straight. In the end I gave up, I could not get directories from the job container mounted correctly in the containers started by the job container.
If anyone would offer help, I would take any advice.
Today I absolutely pounded away on my excellent mechanical keyboard, typing like a maniac in my Vim on steroids. I set up workflows for the Git repository in my self-hosted Forgejo instance, automated the deployment, set up automatioc dependency updates with Renovate Bot and, in the end...
I produced a static website with 24 lines of HTML.
Thanks to @11ty - it's awesome!
This video of a FOSDEM talk about Forgejo's forge federation work has the slideshow fullscreen, with a camera feed of speaker Michael Jerger inset in the corner;
https://archive.fosdem.org/2025/schedule/event/fosdem-2025-5610-show-and-tell-federation-at-forgejo/
This is the way.
(1/2)
I've tried & failed to write a commandline program to upload to a codeberg repo via the /contents/ API... I just get a "500" response. And I've failed to find any examples of anyone else doing this. If I could just upload to a public repo without bothering with having a git repo locally that gets me most of what I would want from a gist replacement except possibly embedding. but it just doesn't quite work...
Sweet, I got it working! Now, I can use my codeberg repo "junkdrawer" as a semi-replacement for github gists.
It's not super clear from the API documentation, but for a file that does not exist yet, you have to POST it; for a file that exists, you have to PUT it and include the sha1sum of the file to be replaced.
I've used junk.py to post itself to my junkdrawer: https://codeberg.org/jepler/junkdrawer/src/branch/main/aygdu2e9/junk.py
This script conforms to PEP723 so you can run it with uv run.
So much for the federated merge requests via #ActivityPub.
https://gitlab.com/groups/gitlab-org/-/epics/260#note_2910231358
When I called in https://lwn.net/Articles/963427/ @sir position as the pragmatic one, I was called disingenuous.
(And, BTW, https://codeberg.org/forgejo/forgejo/issues/9225 doesn’t seem to be finished either).