diff --git a/acct-group/forgejo-runner/Manifest b/acct-group/forgejo-runner/Manifest
new file mode 100644
index 0000000..561d2ec
--- /dev/null
+++ b/acct-group/forgejo-runner/Manifest
@@ -0,0 +1,2 @@
+EBUILD forgejo-runner-0.ebuild 294 BLAKE2B 27dd4f06693633609167dbbe0be573c3d2787b38d68628276d09d783511f6c8cef6b34bbbc054b6115a0c4678ec300e49293a0ee77f52f45339da670b34c76c6 SHA512 af7d7df55239ca13afa88b0f2b369bc8a5dd4a7c780137a8c8b676cbb914bfb80378879c7d4bfb7f3fad03d7dfe7e6ba6afec359a8d7defd56f2598bad283a36
+MISC metadata.xml 248 BLAKE2B cb50cad2c614a99daa2e236f9e0d0fab1ab20a898c0b0f0c28a1387820ab1f2b9dd4d396a3b38f732b493824f96a29ee5894e80e09dbd08dff62c1aaba3feaa0 SHA512 29f9b96b0a77546cce6a8bffd82fae2fd0939d32a7a05ffd0d91f9250a019a3ddaa599b93988c82daabb9c4c4b284dd947e2c47f6ca7727b8539cffa91bcb8c2
diff --git a/acct-group/forgejo-runner/forgejo-runner-0.ebuild b/acct-group/forgejo-runner/forgejo-runner-0.ebuild
new file mode 100644
index 0000000..e8febd8
--- /dev/null
+++ b/acct-group/forgejo-runner/forgejo-runner-0.ebuild
@@ -0,0 +1,11 @@
+# Copyright 2026-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit acct-group
+DESCRIPTION="Group used for the forgejo-runner"
+KEYWORDS="~amd64"
+
+# If you want this to persist across multiple machines, pick a real number!
+ACCT_GROUP_ID="-1"
diff --git a/acct-group/forgejo-runner/metadata.xml b/acct-group/forgejo-runner/metadata.xml
new file mode 100644
index 0000000..67a771c
--- /dev/null
+++ b/acct-group/forgejo-runner/metadata.xml
@@ -0,0 +1,8 @@
+
+
+
+
+ manuel@fritteli.ch
+ Manuel Friedli
+
+
diff --git a/acct-user/forgejo-runner/Manifest b/acct-user/forgejo-runner/Manifest
new file mode 100644
index 0000000..82b87b8
--- /dev/null
+++ b/acct-user/forgejo-runner/Manifest
@@ -0,0 +1,2 @@
+EBUILD forgejo-runner-0.ebuild 330 BLAKE2B 151de1fb0a67c6af7c69208a6e68872571038ec57d6ed498575358813b06ca9d869c175baa6a68d9cf8bdba6a211c8535f75d8c8b6dad008f64769ba5884269e SHA512 966f600cf6d478d9d99ea3e5086f0363dc30b3387f28ec232f4080266155923b84dbcf53c7ac381bf6f1dd5864be5eaf1c7c42ca99405872e606df01c641f4e1
+MISC metadata.xml 248 BLAKE2B cb50cad2c614a99daa2e236f9e0d0fab1ab20a898c0b0f0c28a1387820ab1f2b9dd4d396a3b38f732b493824f96a29ee5894e80e09dbd08dff62c1aaba3feaa0 SHA512 29f9b96b0a77546cce6a8bffd82fae2fd0939d32a7a05ffd0d91f9250a019a3ddaa599b93988c82daabb9c4c4b284dd947e2c47f6ca7727b8539cffa91bcb8c2
diff --git a/acct-user/forgejo-runner/forgejo-runner-0.ebuild b/acct-user/forgejo-runner/forgejo-runner-0.ebuild
new file mode 100644
index 0000000..e93a7c7
--- /dev/null
+++ b/acct-user/forgejo-runner/forgejo-runner-0.ebuild
@@ -0,0 +1,15 @@
+# Copyright 2026-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit acct-user
+
+DESCRIPTION="User for the forgejo-runner"
+KEYWORDS="~amd64"
+
+ACCT_USER_ID=-1
+# forgejo-runner goes first, to make it the primary group
+ACCT_USER_GROUPS=( forgejo-runner docker )
+
+acct-user_add_deps
diff --git a/acct-user/forgejo-runner/metadata.xml b/acct-user/forgejo-runner/metadata.xml
new file mode 100644
index 0000000..67a771c
--- /dev/null
+++ b/acct-user/forgejo-runner/metadata.xml
@@ -0,0 +1,8 @@
+
+
+
+
+ manuel@fritteli.ch
+ Manuel Friedli
+
+
diff --git a/dev-util/forgejo-runner/Manifest b/dev-util/forgejo-runner/Manifest
new file mode 100644
index 0000000..ff426df
--- /dev/null
+++ b/dev-util/forgejo-runner/Manifest
@@ -0,0 +1,5 @@
+AUX forgejo-runner.service 404 BLAKE2B b965f12f0e82cfb044e0d72eb3398bd11e6d014b39076c8de0def2f4c9395b36bcdf099e00d8805bc28da398bfafcb827c6e8252a6bdba12c3a6265462550c40 SHA512 6371f37c9c758849b71091f13d85f98606798b8b05676715b4ea6a70dc947bff448c348820136dcc0a5a97b4decaada36be822dbaeffb85278e1553ca2163f16
+DIST forgejo-runner-12.6.2-deps.tar.xz 54995188 BLAKE2B bbc273aaa5a7ec4f071f2309070957a4f4d53581baaa498065b03aba0e2b7eb7564c25627a8bb2dd0d803190bd8c4b25ac34f5d40bfb0ca0f66d7c999eac140c SHA512 a4fa6b42d79b3eb5230ce65a44fbf8057d11705b409a5fba4e19ea05e4cd12eadd17f0ad675bcfb23c0ed48f378ed2223b1c2f7b662e19c7c080f01bf86b96ba
+DIST forgejo-runner-12.6.2.tar.gz 3481686 BLAKE2B 821017323f1236de7ac83f5a62569fa4bb181033dc91e0faaeba3d3772b099110f6619a7d2540c444ed3b25f4cdfe70cc53baac89d79eb1016e922e4736ad90f SHA512 d1b4fb28ae3791522e107469475af0e285bc9ffda8b5a2988b0ba2c587a451c20c4de47a7925810f1dfa8bf3beb8faec58923c5ff21bdb1c4336d6cf4093cfae
+EBUILD forgejo-runner-12.6.2.ebuild 1948 BLAKE2B 8e0502646f8d312dfe4e7a5ae0481beb78e27fed2794d03db52b3264f3177ec2eb565b7285d6c2bf2113bc55aa7712002d474ef7f8c086a8754095ec6ab4f2bb SHA512 72dade3e7f00354c8d279c940dd4457813e86a48b73ac40d0d33cd7a893207577a291c836bf1b6a107f1cd3c67b0e402fe871714c99e36a987b8f4b8c06a8522
+MISC metadata.xml 352 BLAKE2B 544a34545f937b6096dd963bc77b6b7189ce3046f8c3ef68f6edc02f6a9e39f53ceafb005b9d50f0fda07c14321f399745db7ae6b9f6731c205a6158e260c2a0 SHA512 e3e013d4273ac753163ab1c8d61fc30e4dfe9422f20d0d33356bfab7eff34b29617230da0a4b16d8b1e3a47eb03cfd636f578de5262c6713aa9b6827f33b0829
diff --git a/dev-util/forgejo-runner/files/forgejo-runner.service b/dev-util/forgejo-runner/files/forgejo-runner.service
new file mode 100644
index 0000000..3ed9bce
--- /dev/null
+++ b/dev-util/forgejo-runner/files/forgejo-runner.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=Forgejo Runner
+Documentation=https://forgejo.org/docs/latest/admin/actions/
+After=docker.service
+
+[Service]
+ExecStart=/usr/bin/forgejo-runner daemon
+ExecReload=/bin/kill -s HUP $MAINPID
+
+# This user and working directory must already exist
+User=forgeko-runner
+WorkingDirectory=/var/lib/forgejo-runner
+Restart=on-failure
+TimeoutSec=0
+RestartSec=10
+
+[Install]
+WantedBy=multi-user.target
diff --git a/dev-util/forgejo-runner/forgejo-runner-12.6.2.ebuild b/dev-util/forgejo-runner/forgejo-runner-12.6.2.ebuild
new file mode 100644
index 0000000..ec9250a
--- /dev/null
+++ b/dev-util/forgejo-runner/forgejo-runner-12.6.2.ebuild
@@ -0,0 +1,88 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit go-module systemd
+
+DESCRIPTION="A daemon that connects to a Forgejo instance and runs jobs for CI"
+HOMEPAGE="https://code.forgejo.org/forgejo/runner https://forgejo.org/docs/next/admin/actions/"
+
+if [[ "${PV}" == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://code.forgejo.org/forgejo/runner.git"
+else
+ SRC_URI="
+ https://code.forgejo.org/forgejo/runner/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/gentoo-golang-dist/${PN}/releases/download/v${PV}/${P}-deps.tar.xz
+ "
+ S="${WORKDIR}/runner"
+
+ KEYWORDS="~amd64 ~arm64"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="examples"
+RESTRICT="test"
+
+DEPEND="
+ acct-group/forgejo-runner
+ acct-user/forgejo-runner
+ >=dev-lang/go-1.24.0
+"
+
+RDEPEND="
+ app-containers/docker
+"
+
+src_unpack() {
+ if [[ "${PV}" == *9999* ]]; then
+ git-r3_src_unpack
+ go-module_live_vendor
+ else
+ go-module_src_unpack
+ fi
+}
+
+src_compile() {
+ # export version information
+ # https://github.com/gentoo/guru/pull/205
+ # https://forums.gentoo.org/viewtopic-p-8831646.html
+ local VERSION
+ if [[ "${PV}" == *9999* ]]; then
+ VERSION="$(
+ git describe --tags --first-parent --abbrev=7 --long --dirty --always \
+ | sed -e "s/^v//g"
+ )"
+ else
+ VERSION="${PVR}"
+ fi
+
+ local EXTRA_GOFLAGS_LD=(
+ # "-w" # disable DWARF generation
+ # "-s" # disable symbol table
+ "-X=code.forgejo.org/forgejo/runner/v11/internal/pkg/ver.version=v${VERSION}"
+ )
+
+ GOFLAGS+=" '-ldflags=${EXTRA_GOFLAGS_LD[*]}'"
+
+ ego build -tags 'netgo osusergo' -o forgejo-runner
+
+ # Makefile does this
+ # emake forgejo-runner
+}
+
+src_install() {
+ dobin forgejo-runner
+
+ systemd_dounit "${FILESDIR}/forgejo-runner.service"
+
+ dodoc "README.md"
+ if use examples; then
+ dodoc -r "examples"
+ docompress -x "/usr/share/doc/${PF}/examples"
+ fi
+
+ keepdir /var/lib/forgejo-runner
+ fowners forgejo-runner:forgejo-runner /var/lib/forgejo-runner
+}
diff --git a/dev-util/forgejo-runner/metadata.xml b/dev-util/forgejo-runner/metadata.xml
new file mode 100644
index 0000000..c3a3e82
--- /dev/null
+++ b/dev-util/forgejo-runner/metadata.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ negril.nx+gentoo@gmail.com
+ Paul Zander
+
+
+ gentoo-golang-dist/forgejo-runner
+
+
diff --git a/metadata/md5-cache/acct-group/forgejo-runner-0 b/metadata/md5-cache/acct-group/forgejo-runner-0
new file mode 100644
index 0000000..d991fd2
--- /dev/null
+++ b/metadata/md5-cache/acct-group/forgejo-runner-0
@@ -0,0 +1,8 @@
+DEFINED_PHASES=install preinst pretend
+DESCRIPTION=Group used for the forgejo-runner
+EAPI=8
+INHERIT=acct-group
+KEYWORDS=~amd64
+SLOT=0
+_eclasses_=user-info 563da40a1a20ea1e55bbf4d149fc190d acct-group 75df1c6be0fa643823bd4283c4abd422
+_md5_=b72701ce2ec0d7b792ba7779ed76def3
diff --git a/metadata/md5-cache/acct-user/forgejo-runner-0 b/metadata/md5-cache/acct-user/forgejo-runner-0
new file mode 100644
index 0000000..9c9963b
--- /dev/null
+++ b/metadata/md5-cache/acct-user/forgejo-runner-0
@@ -0,0 +1,9 @@
+DEFINED_PHASES=install postinst preinst prerm pretend
+DESCRIPTION=User for the forgejo-runner
+EAPI=8
+INHERIT=acct-user
+KEYWORDS=~amd64
+RDEPEND=acct-group/forgejo-runner acct-group/docker
+SLOT=0
+_eclasses_=user-info 563da40a1a20ea1e55bbf4d149fc190d acct-user ca29416d617e4fd224258d5cf916bf33
+_md5_=7d0ee522e905dae91e026d471f05edca
diff --git a/metadata/md5-cache/dev-util/forgejo-runner-12.6.2 b/metadata/md5-cache/dev-util/forgejo-runner-12.6.2
new file mode 100644
index 0000000..decf0c1
--- /dev/null
+++ b/metadata/md5-cache/dev-util/forgejo-runner-12.6.2
@@ -0,0 +1,16 @@
+BDEPEND=>=dev-lang/go-1.20:= app-arch/unzip virtual/pkgconfig
+DEFINED_PHASES=compile install unpack
+DEPEND=acct-group/forgejo-runner acct-user/forgejo-runner >=dev-lang/go-1.24.0
+DESCRIPTION=A daemon that connects to a Forgejo instance and runs jobs for CI
+EAPI=8
+HOMEPAGE=https://code.forgejo.org/forgejo/runner https://forgejo.org/docs/next/admin/actions/
+INHERIT=go-module systemd
+IUSE=examples
+KEYWORDS=~amd64 ~arm64
+LICENSE=MIT
+RDEPEND=app-containers/docker
+RESTRICT=test
+SLOT=0
+SRC_URI=https://code.forgejo.org/forgejo/runner/archive/v12.6.2.tar.gz -> forgejo-runner-12.6.2.tar.gz https://github.com/gentoo-golang-dist/forgejo-runner/releases/download/v12.6.2/forgejo-runner-12.6.2-deps.tar.xz
+_eclasses_=multiprocessing 1e32df7deee68372153dca65f4a7c21f toolchain-funcs 30214924c0c3b92ec7dbf24fc70d60d3 flag-o-matic a7afe42e95fb46ce9691605acfb24672 go-env 0e2babf96e7d0b045fc07ad199eb2399 go-module d96f2a2fd6d8fbad6d94516bf238f885 systemd a964c0cbe818b5729da1dbfcee5be861
+_md5_=bbd2eeb64ec07a992f74005ef54e7bb2