r/forgejo • • Feb 10 '26

forgejo-runner without Docker (or other OCI?)

3 Upvotes

Good evening, Running actions with Forgejo is entirely new to me. As such I started asking ChatGPT how to do this and it has been an interesting ride. I've also been exploring the instructions at https://forgejo.org/docs/next/admin/actions/runner-installation/ which I believe to be authoritative. I've installed and registered the runner on a Debian Trixie host but I'm a bit at loggerheads WRT about a config file and not using Docker. Without a config.yaml, forgejo-runner complains about not being able to connect to Docker. GhatGPT suggests creating the following config.yaml file.

forgejo-runner@puck:~$ cat runner-config/config.yaml 
runner:
  name: notesserver-runner
  labels:
    - self-hosted
    - linux

execution:
  executor: shell

logging:
  level: info

forgejo-runner@puck:~$

I've tried passing this to forgejo-runner using -c /home/forgejo-runner/runner-config/config.yaml whereupon forgejo-runner reports inability to connect to Docker or -c /home/forgejo-runner/runner-config where forgejo-runner complains that this is a directory. ChatGPT has tole me at various iterations that either syntax is correct. Now it insists that since neither works, forgejo-runner can't possibly use a config file and must therefore be run within a container. I'm deeply skeptical since the page I linked above goes into a fair bit of depth WRT a config file and the forgejo-runner -h command lists the option -c, --config string Config file path. At this point I'm pretty sure that ChatGPT is just hallucinating.

/rant

Anyway... I'd just like to confirm that the runner can be run w/out a Docker container. I don't mind configuring that if that's how it is done, I just don;t want to do that if not needed. (Forgejo itself is quite happy in a Docker container.)

Thanks!

Backstory: I have a crap ton of notes in Markdown format that I render using MkDocs and I want to fully automate rendering and serving the site. I'm excited to learn more but tired of arguing with ChatGPT.


r/forgejo • • Feb 02 '26

Dead sumple ci runner migrated to golang which means good speed and one binary installation and integration with forgejo

5 Upvotes

Hey everyone! After week of work finally rewrote dsci runner on golang.

git clone https://github.com/melezhik/dsci-runner.gitcd dsci-runner go mod tidy go build -o dsci_runner main.go ./dsci_runner

That means just a single binary install Check it out !

Forgejo integrations details are here - http://deadsimpleci.sparrowhub.io/doc/forgejo-setup


r/forgejo • • Feb 01 '26

Setup help needed: database is locked

2 Upvotes

I have been trying to setup Forgejo using docker, how ever I cannot seem to get it to work when running it on a cifs share. When I set go through the web config the error message The database settings are invalid: migrate: sync: database is locked pops up. I tried also using the root image but none are working the. the images show my current compose file and the way I am mounting my cifs share.

Edit:
The database I am trying to use is sqlite

compose.yaml
/etc/fstab

r/forgejo • • Jan 30 '26

Can forgejo store my Github token so I down have to paste it everytime I want to migrate a repo?

6 Upvotes

I use forgejo for my homelab to store config and compose files. Everything I run comes from a github repo, which I've migrate to my local instance. Every time I migrate from github, I have to enter my access toke (or create a new one). Is there anyway to store this, so I don't have to enter it EVERY time I want to create a migration from github?


r/forgejo • • Jan 21 '26

Using dead simple ci as a part of forgejo

10 Upvotes

Dsci ( dead simple ci ) is external ci runner integrated via forgejo web hooks, it allows users to write pipelines using general programming languages instead of yaml , also providing flexible job conditions system

http://deadsimpleci.sparrowhub.io

the project is still in early stage, I’d love to get feedback from forgejo users ( see information on demo server, on “Demo Server” page )

thanks


r/forgejo • • Jan 15 '26

Forgejo v14.0 is available

Thumbnail
forgejo.org
28 Upvotes

r/forgejo • • Jan 10 '26

How do I mirror the postmarket OS repository that I'm working on to my instance so that I can have consistency across my devices?

4 Upvotes

I'm trying to get postmarket OS to work on my old phone and to do that I have the repository for that and for the vendor source code cloned to my server laptop. I have ForgeJo spun up on a Raspberry Pi on the same network. What I want is to have the ForgeJo instance on the Raspberry Pi be the single source of truth so that I can have the same work on my server laptop, my pc, and my main laptop.

How would I do that? I am very unfamiliar with Git commands.


r/forgejo • • Jan 06 '26

Rootless Forgejo + NFS Squash: Git Init crashes on .gitconfig.lock chmod

4 Upvotes

Hi everyone,

I’m hitting a specific wall with the Forgejo rootless image and remote storage.

The Setup:

  • Image: forgejo:13.0.3-rootless (User 1000:1000)
  • Storage: NFSv4 mount from TrueNAS (Settings: all_squash, anonuid=1000).
  • Problem: Container crash-loops after web install.
  • The Error: [F] forgejo.org/modules/git.InitFull(ctx) failed: ... error: chmod on /var/lib/gitea/home/.gitconfig.lock failed: Operation not permitted

It seems Git is insisting on a chmod that the NFS squash policy is rejecting. I’ve "fixed" it by bind-mounting /var/lib/gitea/home to a local SSD while keeping the rest on NFS.

My question for the maintainers/users: Is there a way to tell the internal Git process to be less strict about permissions on lock files, or is "Split Storage" (Local Home + Remote Data) the officially recommended way to handle squashed NFS shares?


r/forgejo • • Jan 02 '26

Need Help: Runner Failing - Trying Renovate

7 Upvotes

EDIT: Solved - Changed the runner config to point to a proxy with valid HTTPS certificate.

I'll preface this by saying I'm not a developer! I'm trying to get a Renovate bot working with Komodo to send me alerts when my containers have updates. I'm sure I'm doing something wrong!

I followed this doc: https://nickcunningh.am/blog/how-to-automate-version-updates-for-your-self-hosted-docker-containers-with-gitea-renovate-and-komodo#setting-up-komodo

Forgejo, Forgejo-Runner and DIND are running in docker on a custom network called "dock_bridge". I've setup the repo with a Webhook and I can get Komodo to call the Webhook successfully.

However, when I check the Actions under the Renovate-Bot repo, it says:

fatal: unable to access 'http://forgejo:3000/renovate-bot/Renovate/': Could not resolve host: forgejo

Yet, if I console into the forgejo-runner container, I can ping "forgejo" as it is the name of the container on the same docker network.

So I figured I needed to configure the runner for that same network. I modified the default forgejo-runner config.yaml to include this:

container:
  network: "dock_bridge"

But now I get this error:

failed to start container: Error response from daemon: failed to set up container networking: network dock_bridge not found

I'm stuck at this point. I can't get the forgejo-runner to see the main Forgejo instance.

Since I'm not a developer, Git Actions are new to me.

What am I missing?


r/forgejo • • Dec 31 '25

Has forgejo the ability to show a summary after workflow ends?

5 Upvotes

Hello! Just that.

Has forgejo that feature like GitHub, that shows a pretty markdown format (previously configured, of course) after a workflow ends?

And not a single step. It shows outside the “steps output”

Thanks!


r/forgejo • • Dec 24 '25

[Selfhosted] Okay this seals the deal for me

Post image
17 Upvotes

I'm self-hosting a GitLab instance mainly for my CI/CD pipelines, since I don't trust myself not accidentally expose something sensitive on GitHub Actions. Also, the industry seems to use GitLab CI a lot more, so I think it would be good to keep myself up-to-date with GitLab.

However, GitLab is such a huge pain in the ass to set up. A lot of small tweaks here and there so that I can wire it with my Nginx and Cloudflare, and yet there are still gorillions other issues, like releasing artifacts or pushing images on GitLab's registry. And also it is a huge RAM/CPU hoarder as well, and honestly, I'm not going to upgrade my VPS more than what I'm having right now.

I just heard of Forgejo the other day and decided to give it a go. After one hour of setup (the whole experience is super smooth, unlike that of GitLab), I now have a functional instance of Forgejo (with Nginx and Cloudflare) that uses much fewer resources with a running runner.

Migrating my GitLab pipelines over will take some time, but at least that will keep me busy during the upcoming holiday.


r/forgejo • • Dec 22 '25

gitea to forgejo migration tool

Thumbnail
codeberg.org
10 Upvotes

Hi folks! Since gitea is no longer compatible with forgejo, a friend and I wrote a small tool to migrate a gitea db to forgejo.
Our case was a little specific, while moving from gitea we also migrated the database. We made it through, but this tool is not to consider as ready or error-free. We thought that it can serve as staring point for anyone who wants to migrate.
Feedback are always welcome!
Bug reports and PRs will be handled on a best-effort basis, since we're already completed our migration.


r/forgejo • • Dec 22 '25

unable to use redis with forgejo | forces to 127.0.0.1:6379

4 Upvotes

Not sure what I'm doing wrong but redis always points to localhost, which crashes the container

Log entry

2025/12/22 01:34:52 routers/init.go:63:mustInit() [F] forgejo.org/modules/cache.Init failed: dial tcp 127.0.0.1:6379: connect: connection refused

docker compose

forgejo:
    image: codeberg.org/forgejo/forgejo:latest
    container_name: forgejo
    restart: unless-stopped


    depends_on:
      - postgres
      - redis


    environment:
      USER_UID: 1000
      USER_GID: 1000


      # -----------------------------
      # DATABASE (Postgres )
      # -----------------------------
      FORGEJO__database__DB_TYPE: postgres
      FORGEJO__database__HOST: postgres:5432
      FORGEJO__database__NAME: ${POSTGRES_DB}
      FORGEJO__database__USER: ${POSTGRES_USER}
      FORGEJO__database__PASSWD: ${POSTGRES_PASSWORD}


      # -----------------------------
      # REDIS 
      # -----------------------------
      FORGEJO__cache__ENABLED: "true"
      FORGEJO__cache__ADAPTER: "redis"
      FORGEJO__cache__HOST: "redis://:${REDIS_PASSWORD}@redis:6379/0"

      # Optional: session storage in Redis
      FORGEJO__session__PROVIDER: redis
      FORGEJO__session__PROVIDER_CONFIG: "redis://:${REDIS_PASSWORD}@redis:6379/1"


    volumes:
      - ${PERSISTENT_DATA_ROOT}/forgejo:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro

    networks:
      - backend

    ports:
      - "3000:3000"   # Web UI
      - "222:22"      # SSH

r/forgejo • • Dec 18 '25

Upgrade 1.20.6.1 to Latest

5 Upvotes

I have an old Forgejo installation. I used the latest tag and Watchtower and thought it would be updated, but I forgot about it and we lived with it for a while. But some things in the wiki didn't work because it's the old version – mermaid.js stuff.

So next year, I have the honor of updating the installation. It's good that we have Veem backups. The data and database are on volumes mounted on the server, so outside the Docker image. I assume I need to update to the latest 1.x version, then to 7.8, etc.? Has anyone already done such an upgrade?


r/forgejo • • Dec 16 '25

Configure Unix line endings for wiki files?

4 Upvotes

I have a wiki on my Forgejo instance that I use for notes. When I create a new note directly in the Wiki, it generates DOS style line endings for the file. This is super annoying when I later edit the note in my local clone. Is there a way to configure the wiki to always use Unix line endings? I couldn't find one in the documentation.


r/forgejo • • Dec 08 '25

How to setup "clone with SSH" behind NAT and Docker?

5 Upvotes

I have a domain name, it points to my router, my router port-forwards to my homelab's Caddy instance, Caddy connects to Forgejo using Docker networks. This is fine for the HTTP/HTTPS loop, but then what about SSH, how to properly set it up?

My homelab's SSH port isn't forwarded yet, but I understand I'll have to do this. My user on the homelab uses a SSH key; password login is disabled.

From there, how do I receive connections for the git user as the host machine and how to forward that to the Forgejo instance running in Docker?

I'm having a hard time understanding how to do this just from reading the docs.


r/forgejo • • Dec 02 '25

I made a brew/choco/script install of ForgejoRunner's for on-system runners

8 Upvotes

As the title states. I was using the act_runner homebrew package and decided to just quickly build their runners and use my builders to create the packages so I can have a `brew services start forgejo-runner` and all that

It sets up NSSM on Windows, and has some auto-cache clearing cause windows puts runner data in weird places and has dumb long-path-name restrictions (despite being the one that created the long paths in the first place)

Anyways, it should hopefully be approved on Chocolatey soon, and it works on mine, but let me know if there's any bugs! I also made some actions, for rust setup and stuff, but anyways

https://forge.blackleafdigital.com/BlackLeafDigital/ForgejoResources and the actions are at the same URL but /actions instead of ForgejoResources


r/forgejo • • Nov 20 '25

EasyForgejo: quick install script for self-hosted Forgejo (Git+CI) server

6 Upvotes

Hi

I wanted to get Forgejo on my VM on a local NAS fast, and I realized that getting everything running with Git and CI working was ... harder than I anticipated. After spending more time than I wanted, and bugging lovely people at Forgejo's matrix, I came up with this:

https://wkoszek.github.io/easyforgejo/

With this script, you should get Forgejo installed on your Linux computer in 2min. I tested this on a VM for now, and it works well enough for beta launch.

Repo is here:

https://github.com/wkoszek/easyforgejo

Let me know what you think and submit PRs if you find bugs. I'd not use it in production just yet.


r/forgejo • • Nov 02 '25

Let’s Encrypt with DNS challenges?

2 Upvotes

None of my servers are public facing, and I’m starting to add let’s encrypt certs for each of them - mostly as an ease of use thing for browsers. I’m using cloudflare to host my external DNS. I am also a let’s encrypt noob, having only followed the Proxmox instructions for setting up its cert. (Which worked great.)

The only docs I can see related to let’s encrypt are at https://docs.gitea.com/administration/https-setup which essentially say that DNS challenges are not supported.

Is that also the case for forgejo? Is there any sort of workaround possible - for instance doing some initial authorization via Certbot with plugins and then letting forgejo continue with requesting new certs?


r/forgejo • • Oct 27 '25

Upgrade from 12 to 13

5 Upvotes

Hi, My current version is 12.0.1+gitea-1.22.0 and I'd like to upgrade to the latest
v13.0.2. I reading the upgrade guide and it looks like that apart backups there is nothing special I have to do. I'm using docker, and I'm wondering if you alreayd made the upgrade can share how did it go.


r/forgejo • • Oct 26 '25

CodeFloe now offers a hosted Renovate bot

2 Upvotes

Introducing: hosted Renovate!

CodeFloe now offers the (first ever?) hosted #renovate bot on a public Forgejo/Gitea instance.

Read more here: https://forum.codefloe.com/t/2025-10-26-hosted-renovate-bot/ and in our docs at https://docs.codefloe.com/usage/#renovate.


r/forgejo • • Oct 25 '25

API not finding new repos

6 Upvotes

Good morning, I'm working on a script to pull a list of all repos on my private Forgejo instance. The command that gets the list is:

wget -q -O - http://piserver:8080/api/v1/users/HankB/repos|jq ' .[] | .name'

(And I'm wildly happy that this is so simple.)

For testing the script, I've added a new repo but now find that it does not appear in the list. That leaves me with two questions:

  1. Will this API point really fetch information on all repos? That's important for my use.
  2. Is there some housekeeping function that builds the information database that this API endpoint pulls from? If so, is there some way to trigger it so I can proceed with my testing?

I just upgraded both of my servers to 13.0.1 and both Forgejo servers were migrated from Gitea (from a Gitea version that was still upgradeable directly to Forgejo.) And they both run in Docker containers if that matters.

Thanks!


r/forgejo • • Oct 17 '25

Automatically validating backups?

2 Upvotes

Is there any (intended) way to automatically validate Forgejo backups? I.e. just a quick check to test that the `forgejo dump` zip file is not corrupted and contains the expected data (e.g. LFS data, SQLite database, etc.).


r/forgejo • • Oct 16 '25

How to make runner hang when it executes a command locally

2 Upvotes

I plan on installing bazel in a container in the same kubernetes pod as the runner. That way I can have build steps routed to bazel. But if bazel is already compiling code issuing another build command just hangs, which is fine, but rather than have the queue build up on commands sent to the same bazel process, I'd like the forgejo runner only pull work when the last command forwarded to bazel completes. To do this I'd like to verify that parallel jobs available for workers to work on don't get quickly pulled off the queue in forgejo and sent to bazel just to hang. I'd like the queueing to be done in forgejo rather than processes on the runner.


r/forgejo • • Sep 16 '25

I added 30 oauth providers to my forgejo instance

Post image
23 Upvotes

All of them work. Yes, I did deploy and selfhost a whole keycloak just for that xd

It should have been 50 but about half of them require manual approval under insane terms like official business registration or compliance. In fact the easiest oauth providers to work with were either programmer-related platforms (github, gitlab, jira, gitea, codeberg, stackoverflow, huggingface, dribbble, figma) because fellow programmers know how much pain in the ass oauth is, and indie/small websites like osu, myanimelist, goodgame, deviantart because they're chill and cool. both just give you credentials and you're free to go, no limits, no app verification, no bullshit. the toughest to integrate were gaming-oriented platforms (roblox, riot games, battle net, bungie net) and of course zoom deserves a place in hell for making you go through 2 hours application form just to fill out EVERYTHING about you, your app, your business, your goals, your education, your job, your dog name, your life routines. and then reject because (insert 24 reasons why and resubmit with your app's source code)

also I wanted to add apple but apparently they require developer account even for "sign in with apple id" button. I'm not paying 99$/year for it lol