my switch to forgejo by roxie, updated on 13/08/2025


Heyyy,

This one is a bit different to all of my other posts so far I think. Firstly, I HATE AI. So with github becoming all ai focused and it looking like thats going to be their bussiness model for the far far future. Id rather not have the projects I put all of my time into in the hands of people like that. So when one of my friends gave me some alternatives to github, I took a look at my options,

The one I decided to go with was Forgejo but I might come back to tangled.sh at some point in the future.

setup

The setup for Forgejo wasnt that bad at all really, it was as simple as sudo pacman -S forgejo and then adding it to my nginx configs. It has nice and easy buttons for repo migration from github to Forgejo and when I do swap a repo, all I have to do is change to origin locally

I did have to add some line in my nginx configs when pushing to bigger repos

git remote set-url origin {new repo url}

post setup

all the paths used here are specific to me and may be slighty different for other users

After setting it up I wanted to customise it and here are the ways I found of doing so,

[ui]
THEMES = {theme1}, {theme2}, {etc}
DEFAULT_THEME = {theme1}

after making any changes to any forgejo files you must restart forgejo for this to take effect, on arch the command is sudo systemctl restart forgejo

you dont have to use themes made by other people as they are just css files but I found myself to be pretty bad at themeing this

final steps

Since my website was hosted via a form of link between github and cloudflare, I had to find a new way of hosting my website. I could host it myself but I dont really have the hardware to host that many things so I am forced to stick with cloudflare (an issue I want to solve soon enough, since they are also heavily leaning into ai) but my solution was to use cloudflares command line too wrangler and add an entry to my package.json file on my websites respective node project

  "scripts": {
    "dev": "astro dev",
    "build": "astro build",
    "preview": "astro preview",
    "astro": "astro",
    "deploy": "npm run build; npx wrangler pages deploy ./dist/"
  },

Thank you for reading!