Skip to content
Arbinel

Arbinel and Forgejo

Here is everything Arbinel adds to or changes from Forgejo. For the features Arbinel inherits, read Forgejo’s release notes for the Forgejo release your Arbinel release is built on.

Last compared against Forgejo 17.0 on 2026-11-11. The maintainers update this list on every Forgejo major release. The changelog issue lists the changes since the last Arbinel release.

Forgejo is a good forge, and Arbinel would not exist without it. Running a public hosting service requires changes that do not fit Forgejo’s scope or its process:

  • Hosting at scale. A shared, public instance needs several nodes, read replicas, usage quotas, paid add-ons, request budgets and hosted static sites. Forgejo limits its scope to what most installations need, which is a reasonable choice.
  • Product decisions. Arbinel changes its interface and defaults faster than a project that serves every installation can.
  • Development process. Forgejo does not accept contributions written with the help of large language models, and Arbinel does.

Arbinel stays as close to Forgejo as it can, and fixes to Forgejo code go to Forgejo first. The Arbinel README explains the reasons in more detail.

Arbinel’s server-side features are off by default, so an instance that switches from Forgejo enforces nothing until you configure them. The following defaults differ from Forgejo:

  • The default theme is codefloe-tide-auto. See Appearance.
  • A repository can pin up to six issues, where Forgejo allows three.
  • /issues, /pulls and /notifications redirect to the inbox.
  • Users who can write to a repository can cancel running checks from a pull request’s merge box. See Cancelling CI.
  • File icons in the repository file list use the devicon icon set.

These features are for running a public, multi-tenant instance, and you turn each one on separately.

Feature What it does
Quotas Explains Forgejo’s quota groups and rules, and adds quotas for CI minutes and download traffic, warning emails and an API for external systems to raise a quota.
Billing Sells monthly add-ons, such as extra CI minutes, storage or bandwidth, through Creem. Each add-on raises the matching quota.
Request budgets Limits expensive requests per account, such as archive downloads, code search and diffs.
Pages Hosts static sites from repositories, including up to five extra branches per repository.
Feature What it does
High availability Runs several nodes behind a load balancer, with one elected leader running the cron tasks.
Database Reads after a write go to the primary, so a lagging replica cannot serve stale rows. Adds connection timeouts, multi-host failover and extra indexes.
Search Adds a Typesense issue indexer with exact counts and #13 lookups, and limits code searches so one broad query cannot load the whole index.
Announcements Site administrators schedule several Markdown banners that users can dismiss.
HTTP and mirrors Outbound HTTP calls have timeouts and bounded reads. Mirror syncs run at the lowest CPU and I/O priority.
Migrations Downloaded assets are checked before they are uploaded to S3.
Instance version The site administration summary shows the Arbinel version and the Forgejo version it is compatible with. The API and forgejo --version keep reporting the Forgejo version.
Feature What it does
Cancelling CI Cancels running checks from a pull request’s merge box, for Forgejo Actions and external CI systems. Forgejo only cancels whole runs from the Actions page.
Live updates Issue and pull request pages update without a reload: checks, the merge box, the timeline and the title.
Branch protection Organization-wide rules, a simpler form with presets and a live preview of matching branches, and a force-push allowlist.
Repository defaults Instance-wide defaults for new repositories, such as the allowed merge styles.
Commit signing Commits signed with the instance SSH key link to the account that owns SIGNING_EMAIL, instead of a placeholder. The signing notice shows SIGNING_NAME instead of the key path.
Feature What it does
Inbox One /inbox page with tabs for issues, pull requests and notifications, with batch actions and keyboard shortcuts.
Watch settings Choose which events a watched repository notifies you about, and whose. Release notifications appear in the notification list.
Pinned issues Up to six pinned issues per repository, shown as compact cards.
Feature What it does
Linked accounts Signing up through OAuth2 links that account, so it shows under Linked accounts.
Account switcher Switch between linked accounts from the user menu. OAuth2 clients can ask the user to choose one with prompt=select_account.
OAuth2 consent The full-access warning shows only when a client gets full access.
Avatars Optional monogram placeholder avatars.
Feature What it does
Themes The codefloe-tide-* theme family is the default, with an ice blue variant. The classic codefloe-* themes stay available. Themes preload their main font.
Navigation A repository switcher in the repository header, and search as you type on Explore, profile and organization pages.
Reading and editing An outline of headings on rendered Markdown files, and typing a bracket or quote wraps the selection.
Repository lists Denser repository rows on Explore, profiles and organizations.
Small screens The commit history list works on phones.
Icons Refreshed icons and per-file icon sets, served from the instance instead of a CDN.
API docs /api/swagger uses Scalar instead of swagger-ui, without external requests.

Arbinel fixes these bugs in Forgejo code. Forgejo has not merged the fixes.

Area Fix
Migrations from Forgejo and Gitea A migration skips issues, pull requests or releases that the source repository has turned off, instead of failing.
API migration cleanup A failed POST /api/v1/repos/migrate deletes the half-created repository.