fshy

fshy / CI runners / Storage

Forgejo and

forgejo.org · CI runners, Storage · 2 records · JSON

Forgejo and Gitea Actions (self-hosted) CI runners

★ qualifiesanonymousno cardD

forgejo.org/docs/latest/user/actions/ · CI software · ci-cd-runners/forgejo-gitea-actions · JSON · compare

Free tierMIT for Gitea and GPL for Forgejo, with a GitHub-Actions-compatible workflow syntax; unlimited on your own runners
unit unlimited; metered on none
Pricenone stated
Per-object capno cap from the software; the runner host is the ceiling
Retentionwhatever the runner host retains
Egresswhatever the runner host charges
Identityanonymous the software needs no account
Limits
  • per-object-cap no cap from the software; a documented subset of GitHub Actions is supported and the rest fails at parse time source
Bindingnone
Interfacegit, cli a .forgejo/workflows or .gitea/workflows YAML; the act runner; a compatible subset of GitHub Actions
Toolingthe forgejo or act runner binary; docker or a host backend
Composes withActions syntax without GitHub, which lets a workflow move between a free hosted runner and your own machine without a rewrite
Reliabilitycompatibility with GitHub Actions is a documented subset, so a workflow that runs on GitHub may need edits
NotesThe compatibility is the value and the subset is the cost. A workflow that depends on a GitHub-only action does not run.
Evidence rungdocumented the Forgejo Actions user guide was read today; Codeberg's hosted instance runs the same software.
Checked2026-10-23 (live); stale on 2026-11-22
Evidence (2)
datesourcewhat it proved
2026-10-22forgejo.org/docs/latest/user/actions/Forgejo Actions is GitHub-Actions-compatible with documented differences; runners are user-provided
2026-10-22codeberg.org/actions/metaCodeberg's hosted runners use ghcr.io/catthehacker/ubuntu:act-latest to provide a compatibility level with GitHub Actions, and Docker-in-Docker is not officially supported

Gitea / Forgejo self-hosted with any S3 LFS backend Storage

caveatemail?card?Rper-object-cap

forgejo.org/docs/latest/admin/advanced/quota/ · paas · storage/gitea-forgejo-self-hosted-with-any-s3-lfs-backend · JSON · compare

Free tierUnlimited by default: quota.default.TOTAL = -1 means unlimited, and the soft-quota feature is 'currently not yet enabled by default'. You supply the disk/object store, so bytes = your infrastructure.
unit unlimited; metered on stored-bytes
Pricenone stated
Per-object capNo per-file cap unless you set one
Retentionnot stated
EgressYours to pay for — unless the LFS backend is one of the free S3 endpoints (HF buckets, IA), in which case egress is the backend's and is free/CDN.
Identityemail (placeholder) not published
Limits
  • per-object-cap No per-file cap unless you set one source
Soft-quota only: 'Forgejo checks the quota usage only before an action is executed, but it will allow a started action to complete' — so it can be overshot. No per-file cap unless you set one.
Bindingper-object-cap the per-object cap sets the shard size and therefore the object count; it bounds the total more tightly than any headline quota
Interfaces3-compatible, rest, git git
ToolingGitea/Forgejo binaries (single Go binary), git-lfs client, S3-compatible LFS storage config ([lfs] STORAGE_TYPE=minio). REST API + Swagger for full automation. Gitea Cloud offers a 30-day trial, not free.
Composes withThe pattern that makes 500 GB+ real: self-host the forge on a free-tier VM (or any always-on box) and set LFS storage to a free S3 endpoint. The forge holds ~metadata only; the bytes never touch your disk. Gitea's LFS_MAX_FILE_SIZE/LFS_START_SERVER are config, not policy.
ReliabilityQuota feature is explicitly 'still in development' with 'little support for early prevention of operations in the UI'. Self-hosted means a dead VM = dead forge, but the LFS blobs survive in the object store.
NotesUnlimited by default: quota.default.TOTAL = -1 means unlimited, and the soft-quota feature is 'currently not yet enabled by default'. You supply the disk/object store, so bytes = your infrastructure.
Evidence rungreported One page read moves it to documented.
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (2)
datesourcewhat it proved
2026-10-21forgejo.org/docs/latest/admin/advanced/quota/'quota.default.TOTAL is -1 (unlimited) by default'; soft-quota semantics quoted
2026-10-21forgejo.org/docs/latest/admin/setup/storage/storage backend configuration for LFS/attachments
Unknown or withheld values (6)
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.per_object_cap.notes not-extracted
  • $.retention.notes not-extracted
  • $.retention.stated not-extracted