{"eid":"codeberg","name":"Codeberg","domain":"codeberg.org","resolved_by":"domain","topics":["ci-cd-runners","compute","storage"],"n_records":8,"best_vorder":1,"review":null,"aliases":["Codeberg","Codeberg (Forgejo) Git LFS","Codeberg CI (hosted Woodpecker)","Codeberg Forgejo Actions","Codeberg Forgejo Actions (hosted runners)","codeberg (as a storage host)","codeberg (forgejo flagship instance)","codeberg (forgejo) packages / container registry","codeberg / forgejo package registry (forgejo packages)","codeberg.org"],"records":[{"rid":"ci-cd-runners/codeberg-ci","card":{"rid":"ci-cd-runners/codeberg-ci","eid":"codeberg","topic":"ci-cd-runners","slug":"codeberg-ci","provider":"Codeberg CI (hosted Woodpecker)","url":"https://docs.codeberg.org/ci/","domain":"codeberg.org","category":"CI runner","tier":null,"verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","confidence":"documented","binding":"write-gated","identity_kind":"email","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"git,cli","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-22T03:05:00.000Z","verified_basis":"live","checked_on":"2026-10-23","stale_on":"2026-11-22","n_evidence":1,"usd_month":null,"usd_per_tb_month":null,"summary":"free for public repositories under a free licence, after a manual access request; linux/amd64 only","duplicate_of":null,"n_unknown":0},"record":{"topic":"ci-cd-runners","slug":"codeberg-ci","provider":"Codeberg CI (hosted Woodpecker)","url":"https://docs.codeberg.org/ci/","category":"CI runner","free_tier":{"stated":"free for public repositories under a free licence, after a manual access request; linux/amd64 only","unit":"unlimited","source_url":"https://docs.codeberg.org/ci/","read_on":"2026-10-22","metered_on":"wall-clock"},"per_object_cap":{"stated":"per-job wall clock from the runner label: see codeberg-forgejo-actions for the table; the Woodpecker page publishes no number","bytes":null,"source_url":"https://docs.codeberg.org/ci/"},"retention":{"stated":"the CI is provided as-is and may break for an undefined period","days":null,"source_url":"https://docs.codeberg.org/ci/"},"egress":{"terms":"no charge published","metered":false,"free_allowance":null,"price_per_tb":null,"source_url":"https://docs.codeberg.org/ci/"},"interface":["git","cli"],"interface_detail":"a .woodpecker.yml pipeline against ci.codeberg.org; self-hosted agents can be attached","tooling":"the Woodpecker pipeline images; no Docker daemon inside the hosted runners","chaining":"a free control plane on a non-commercial forge, which pairs with a self-hosted agent to remove every cap","limits":[{"kind":"write-gated","value":"onboarding requires a request form reviewed by a Codeberg volunteer","source":"https://docs.codeberg.org/ci/"},{"kind":"per-object-cap","value":"linux/amd64 is the sole build target; there is no Docker daemon in the hosted runners","source":"https://docs.codeberg.org/ci/"}],"binding":"write-gated","identity_cost":{"kind":"email","detail":"a Codeberg account plus a reviewed access request","country":null},"reliability_note":"'CI access is provided as-is and might break at any time and for an undefined period'","confidence":"documented","confidence_note":"the Codeberg CI page was read today and states the manual onboarding and the amd64-only limit.","evidence":[{"url":"https://docs.codeberg.org/ci/","date":"2026-10-22","proved":"'Onboarding requires a few manual steps ... a Codeberg volunteer will review your request'; 'linux/amd64 is the sole build target'; CI is provided as-is and may break at any time"}],"verdict":"qualifies-with-caveat","verified_at":"2026-10-22T03:05:00.000Z","price_per_tb_month":null,"notes":"The gate is a volunteer and the availability is explicitly not promised. The 600-minutes-a-month figure in circulation does not exist; the hosted runners are capped per job instead."},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[0].value","kind":"limit:write-gated","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[1].value","kind":"limit:per-object-cap","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"}],"unknown":[],"history":[],"drift":[]},{"rid":"ci-cd-runners/codeberg-forgejo-actions","card":{"rid":"ci-cd-runners/codeberg-forgejo-actions","eid":"codeberg","topic":"ci-cd-runners","slug":"codeberg-forgejo-actions","provider":"Codeberg Forgejo Actions (hosted runners)","url":"https://codeberg.org/actions/meta","domain":"codeberg.org","category":"CI runner","tier":null,"verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","confidence":"documented","binding":"per-object-cap","identity_kind":"email","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"git,cli","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-22T03:05:00.000Z","verified_basis":"live","checked_on":"2026-10-23","stale_on":"2026-11-22","n_evidence":2,"usd_month":null,"usd_per_tb_month":null,"summary":"three hosted runner labels on a free Codeberg account, in open alpha: tiny, small and medium. No job-count cap and no monthly minute meter is published; the ...","duplicate_of":null,"n_unknown":0},"record":{"topic":"ci-cd-runners","slug":"codeberg-forgejo-actions","provider":"Codeberg Forgejo Actions (hosted runners)","url":"https://codeberg.org/actions/meta","category":"CI runner","free_tier":{"stated":"three hosted runner labels on a free Codeberg account, in open alpha: tiny, small and medium. No job-count cap and no monthly minute meter is published; the only published ceiling is the per-job runtime of 2, 5 or 10 minutes","unit":"minutes","source_url":"https://codeberg.org/actions/meta","read_on":"2026-10-22","metered_on":"wall-clock"},"per_object_cap":{"stated":"codeberg-tiny 1 CPU / 2 GB / 2 min; codeberg-small 2 CPU / 4 GB / 5 min; codeberg-medium 4 CPU / 8 GB / 10 min","bytes":null,"source_url":"https://codeberg.org/actions/meta","notes":"the RAM allocation includes writes to the filesystem, with 2 GB of extra temporary storage per container"},"retention":{"stated":"no artifact retention is published; the service is in open alpha","days":null,"source_url":"https://codeberg.org/actions/meta"},"egress":{"terms":"no charge published","metered":false,"free_allowance":null,"price_per_tb":null,"source_url":"https://codeberg.org/actions/meta"},"interface":["git","cli"],"interface_detail":"a GitHub-Actions-compatible workflow with runs-on set to a codeberg label; the default image is ghcr.io/catthehacker/ubuntu:act-latest","tooling":"the act-compatible image; podman for image builds; no Docker daemon","chaining":"a GitHub-Actions-compatible workflow on a free runner for jobs that finish in ten minutes, which is the only free path to Actions syntax without a GitHub repository","limits":[{"kind":"per-object-cap","value":"2 minutes per job on tiny, 5 on small, 10 on medium","source":"https://codeberg.org/actions/meta"},{"kind":"per-object-cap","value":"1, 2 and 4 CPUs, with 2, 4 and 8 GB of RAM, and the RAM includes filesystem writes","source":"https://codeberg.org/actions/meta"},{"kind":"request-rate","value":"lazy variants exist and may wait up to 24 hours for a slot","source":"https://codeberg.org/actions/meta"}],"binding":"per-object-cap","identity_cost":{"kind":"email","detail":"a Codeberg account","country":null},"reliability_note":"open alpha: the runner sizes are guidelines enforced by fair use rather than hard quotas, and the CI page states the service 'might break at any time and for an undefined period of time'","confidence":"documented","confidence_note":"the runner table was read today from Codeberg's own meta repository. The CPU figures are 1, 2 and 4, not the 2, 4 and 8 that the census recorded.","evidence":[{"url":"https://codeberg.org/actions/meta","date":"2026-10-22","proved":"'codeberg-tiny amd64 1 2G 2 min'; 'codeberg-small amd64 2 4G 5 min'; 'codeberg-medium amd64 4 8G 10 min'; 'The RAM allocation includes writes to the filesystem ... we grant you 2 GB of additional storage for temporary files per container'; the lazy variants may take up to 24 hours"},{"url":"https://docs.codeberg.org/ci/actions/","date":"2026-10-22","proved":"Forgejo Actions is available with self-hosted runners and a hosted version in limited fashion in open alpha"}],"verdict":"qualifies-with-caveat","verified_at":"2026-10-22T03:05:00.000Z","price_per_tb_month":null,"notes":"Ten minutes on four CPUs is 40 CPU-minutes per job, and the jobs are unlimited. That is a real free compute lane for short work and it is the only one here with no monthly meter."},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":10.0,"unit":"minutes","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:per-object-cap","num":2.0,"unit":"minutes","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[1].value","kind":"limit:per-object-cap","num":8.0,"unit":"GB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[2].value","kind":"limit:request-rate","num":24.0,"unit":"hours","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[],"history":[],"drift":[]},{"rid":"compute/codeberg-forgejo-actions","card":{"rid":"compute/codeberg-forgejo-actions","eid":"codeberg","topic":"compute","slug":"codeberg-forgejo-actions","provider":"Codeberg Forgejo Actions","url":"https://codeberg.org/actions/meta","domain":"codeberg.org","category":"CI runner","tier":"Codeberg hosted Forgejo Actions, open alpha, fair use","verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","confidence":"documented","binding":"per-object-cap","identity_kind":"email","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":null,"egress_metered":null,"per_object_bytes":null,"retention_days":0,"verified_at":"2026-10-24T04:00:19.000Z","verified_basis":"live","checked_on":"2026-10-25","stale_on":"2026-11-24","n_evidence":11,"usd_month":null,"usd_per_tb_month":null,"summary":"Quoted: 'The following runners are available on Codeberg. The specs are guidelines for how many resources builds are allowed to take at most, but we rely on ...","duplicate_of":null,"n_unknown":9},"record":{"topic":"compute","slug":"codeberg-forgejo-actions","provider":"Codeberg Forgejo Actions","url":"https://codeberg.org/actions/meta","category":"CI runner","free_tier":{"stated":"Quoted: 'The following runners are available on Codeberg. The specs are guidelines for how many resources builds are allowed to take at most, but we rely on \"fair use\".' The table is codeberg-tiny 1 CPU / 2G / 2 min, codeberg-small 2 CPU / 4G / 5 min, codeberg-medium 4 CPU / 8G / 10 min, all amd64. No monthly quota is published: the constraint is a per-job runtime ceiling of 10 minutes on the largest runner, plus a fair-use clause. Quoted: 'Currently, we put strict resource and time constraints on hosted Forgejo Actions runs, because we do not have an approval workflow like in our hosted Woodpecker CI/CD.'","unit":"none","metered_on":"wall-clock","source_url":"https://codeberg.org/actions/meta","read_on":"2026-10-24","notes":"there is no published monthly allowance; the unit of consumption is a job, capped at 10 minutes on the best runner"},"per_object_cap":{"stated":"not applicable","bytes":null,"notes":"the ceiling that matters is the per-job runtime, in limits"},"retention":{"stated":"not stated on the page read: no sentence says how long a runner survives after a job or whether the container is reused. The page grants '2 GB of additional storage for temporary files per container', which implies a per-job container.","days":0,"source_url":"https://codeberg.org/actions/meta","notes":"0 is an inference from the per-container temp storage grant, not a quoted sentence; the page does not say"},"egress":{"terms":"not stated","metered":false,"free_allowance":null,"price_per_tb":null,"source_url":"https://codeberg.org/actions/meta"},"interface":["unknown"],"interface_detail":"inferred from the tooling the provider documents; not probed","tooling":"not stated","chaining":"Useful only as a lint-and-check lane beside a real build host: ten minutes of 4 vCPU is enough to run a formatter, a type check or a small unit suite, and the repository hosting is free beside it.","limits":[{"kind":"per-object-cap","value":"10 minutes of wall clock on codeberg-medium, the largest runner, which is 4 CPU and 8G. codeberg-small is 5 minutes and codeberg-tiny is 2 minutes. Quoted: 'The specs are guidelines for how many resources builds are allowed to take at most, but we rely on \"fair use\".'","source":"https://codeberg.org/actions/meta"},{"kind":"per-object-cap","value":"The RAM allocation counts filesystem writes against it: 'If your software uses 1 GB of RAM and wrote 1 GB of temporary files, it will be counted as 2 GB against the quota.' 2 GB of extra temp storage per container is granted.","source":"https://codeberg.org/actions/meta"},{"kind":"write-gated","value":null,"source":"https://codeberg.org/actions/meta"},{"kind":"request-rate","value":"The queue is shared and its fairness is enforced socially, not by a number: 'Don't jam the queue so other projects can also benefit from our offer.'","source":"https://codeberg.org/actions/meta"},{"kind":"retention-clamped","value":"A '-lazy' variant of each runner trades latency for scheduling: 'We aim for completing the job within 24 hours'","source":"https://codeberg.org/actions/meta"}],"limits_note":"The 10-minute per-job ceiling on codeberg-medium binds first and it binds absolutely: no amount of queue patience makes a 30-minute job run. There is no published monthly allowance, so the ceiling is per job and the aggregate is fair use, which is a discretionary throttle rather than a quota.","binding":"per-object-cap","binding_note":"the 10-minute wall clock on the largest runner fails first and it fails hard: 4 vCPU for 10 minutes is 0.67 vCPU-hours per job, so a job that needs more than ten minutes cannot run at all however idle the queue is.","identity_cost":{"kind":"email","detail":"Quoted: 'fill in your username and email address and then choose a good password' and 'After confirming your email address by clicking the link in the email we sent you, you're done and go to go.' No card, no hold, no phone and no identity document. Forgejo Actions needs no approval step, unlike Woodpecker: 'we do not have an approval workflow like in our hosted Woodpecker CI/CD'.","country":null},"reliability_note":"Codeberg's own documentation says of the CI service: 'CI access is provided as-is and might break at any time and for an undefined period of time, due to server issues, for testing and maintenance purposes or human error.' Hosted Forgejo Actions is described as 'open alpha'.","confidence":"documented","evidence":[{"url":"https://codeberg.org/actions/meta","date":"2026-10-22","proved":"the runner table: codeberg-tiny 1 CPU 2G 2 min, codeberg-small 2 CPU 4G 5 min, codeberg-medium 4 CPU 8G 10 min; the RAM-includes-filesystem warning with 2 GB extra temp storage; the lazy variants aiming at 24-hour completion; rules requiring a public repository under a free licence and 'No extensive pipelines to assist LLM-driven workflows'"},{"url":"https://docs.codeberg.org/ci/","date":"2026-10-22","proved":"Woodpecker onboarding requires a request form reviewed by a Codeberg volunteer; 'linux/amd64 is the sole build target'; 'CI access is provided as-is and might break at any time'"},{"url":"https://codeberg.org/Codeberg-e.V./requests","date":"2026-10-22","proved":"access is granted per account rather than per project; the Rust note asks projects to cap parallelism with -j4 because the compiler otherwise takes every CPU"},{"url":"https://codeberg.org/actions/meta","date":"2026-10-24","proved":"quoted: 'The following runners are available on Codeberg. The specs are guidelines for how many resources builds are allowed to take at most, but we rely on \"fair use\".' with the table rows 'codeberg-tiny | amd64 | 1 | 2G | 2 min', 'codeberg-small | amd64 | 2 | 4G | 5 min', 'codeberg-medium | amd64 | 4 | 8G | 10 min'"},{"url":"https://codeberg.org/actions/meta","date":"2026-10-24","proved":"quoted: 'Currently, we put strict resource and time constraints on hosted Forgejo Actions runs, because we do not have an approval workflow like in our hosted Woodpecker CI/CD.'"},{"url":"https://codeberg.org/actions/meta","date":"2026-10-24","proved":"quoted: 'The RAM allocation includes writes to the filesystem. If your software uses 1 GB of RAM and wrote 1 GB of temporary files, it will be counted as 2 GB against the quota.' and 'we grant you 2 GB of additional storage for temporary files per container.'"},{"url":"https://codeberg.org/actions/meta","date":"2026-10-24","proved":null},{"url":"https://codeberg.org/actions/meta","date":"2026-10-24","proved":"quoted: 'For each runner variant, we offer a \"lazy\" runner.' and 'We aim for completing the job within 24 hours, and we are considering experiments like offsite runners which only run when solar energy is available.'"},{"url":"https://codeberg.org/actions/meta","date":"2026-10-24","proved":"quoted: 'Codeberg's runner uses the `ghcr.io/catthehacker/ubuntu:act-latest` by default to provide a certain compatibility level with GitHub Actions.' and 'running the Docker daemon inside those runners is not officially supported'"},{"url":"https://docs.codeberg.org/ci/","date":"2026-10-24","proved":"quoted: 'Forgejo Actions can be used with self-hosted runners and Codeberg also provides a hosted version in a limited fashion in open alpha.' and 'CI access is provided as-is and might break at any time and for an undefined period of time'"},{"url":"https://docs.codeberg.org/getting-started/first-steps/","date":"2026-10-24","proved":"quoted: 'simply fill in your username and email address and then choose a good password' and 'After confirming your email address by clicking the link in the email we sent you, you're done and good to go!'"}],"verdict":"qualifies-with-caveat","verified_at":"2026-10-24T04:00:19.000Z","notes":"The smallest compute ceiling, and the record is worth keeping precisely because it is small: 0.67 vCPU-hours per job against GitHub's 24 vCPU-hours, a factor of 36. Two things make it worse than the arithmetic suggests for a user. First, there is no published monthly allowance, so the aggregate is 'fair use', which is a discretionary throttle with no threshold to design against. Second, Codeberg's rules name the exact use this corpus exists to serve: 'No extensive pipelines to assist LLM-driven workflows'. That is a published-conditions question and it is the operator's to judge, not this record's; what the record does is state the sentence. Not established: the egress term; whether the container is destroyed at job end (the 2 GB per-container temp storage grant implies it, but no sentence says so); and whether a job queued on a lazy runner counts against any aggregate at all, because no aggregate is published.","extras":{"wave2":{"class":"ci-runner-capacity","free_tier_kind":"fair-use-hosted","shape":{"vcpu":4,"ram_gib":8,"gpu_class":null,"gpu_count":0}},"shape":{"vcpu":4,"ram_gib":8,"disk_gib":null,"gpu_class":null,"gpu_count":null,"note":"codeberg-medium, the largest published runner: '4 | 8G | 10 min'. Disk is not published; the page grants '2 GB of additional storage for temporary files per container' and warns that filesystem writes count against the RAM allocation."},"billing_model":"free","term":"none","m10h_usd":null,"m24h_usd":null,"price_arithmetic":"USD 0.00, and no arithmetic is possible: there is no published monthly allowance. One job on codeberg-medium is 4 vCPU x 10 min = 0.67 vCPU-hours. The aggregate depends on how many jobs the fair-use policy tolerates, which is not a number and so cannot be multiplied. This is the corpus's documented-absence rule: 'unlimited' may not be inferred from the silence, and neither may a daily total.","free_tier_kind":"fair-use-hosted","session_cap":{"wall_clock_min":10,"idle_reap_s":null,"restart_required":true,"note":"10 minutes on codeberg-medium, 5 on small, 2 on tiny. A lazy variant may wait up to 24 hours for a slot. No monthly quota published."},"concurrency":{"jobs_at_once":null,"note":"not published: no concurrent-job number appears on the page read. The queue is shared and governed by 'Don't jam the queue'."},"keep_rate":{"value":0.0,"basis":"the container is per job; nothing is billed","source":"https://codeberg.org/actions/meta"},"persistent_storage":{"included_gib":2,"price_gib_month":"not applicable: 2 GB of temp storage per container, not a durable volume","durability":"none stated; per container","survives_stop":false,"survives_destroy":false,"max_retention":"the job"},"network_out":{"allow_outbound":true,"allow_inbound_listen":false,"ports":"none stated: no page read offers an inbound address","static_ip":false,"ipv6":null,"per_session_bytes":null},"units":"RAM is the vendor's own unit, written '8G'. Kept as 8.","burst_x":null,"census_rows":["codeberg-forgejo-actions"],"wave3":{"verified":["the three runner shapes and their 2/5/10-minute ceilings","the fair-use clause with no monthly number","public and free-licence repository required","email-only signup with no card and no approval step for Forgejo Actions","the 'open alpha' status"],"corrected":"what it did not carry is that no monthly allowance exists at all, which is why nothing can be multiplied","new":null}},"tier":"Codeberg hosted Forgejo Actions, open alpha, fair use","confidence_note":"the 'open alpha' description is quoted from docs.codeberg.org/ci read today."},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":10.0,"unit":"minutes","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:per-object-cap","num":10.0,"unit":"minutes","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[1].value","kind":"limit:per-object-cap","num":1.0,"unit":"GB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[3].value","kind":"limit:request-rate","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[4].value","kind":"limit:retention-clamped","num":24.0,"unit":"hours","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.egress.metered","egress-unknown"],["$.egress.terms","not-stated"],["$.evidence[6].proved","withheld"],["$.extras.wave3.corrected","partly-held"],["$.extras.wave3.new","withheld"],["$.interface","interface-unknown"],["$.limits[2].value","withheld"],["$.per_object_cap.stated","not-applicable"],["$.tooling","not-stated"]],"history":[],"drift":[]},{"rid":"storage/codeberg","card":{"rid":"storage/codeberg","eid":"codeberg","topic":"storage","slug":"codeberg","provider":"codeberg (as a storage host)","url":"https://docs.codeberg.org/getting-started/faq/","domain":"codeberg.org","category":"rejected-provider","tier":null,"verdict":"fails-quota","vorder":6,"grp":"rejected","confidence":"reported","binding":"none","identity_kind":"email","identity_basis":"defaulted","needs_card":null,"needs_phone":null,"needs_id":null,"needs_institution":null,"country":null,"crypto":null,"interfaces":null,"egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":1,"usd_month":null,"usd_per_tb_month":null,"summary":"Explicitly capacity-managed for F/LOSS code: request approval above 750 MiB Git storage and 1.5 GiB of packages/LFS/attachments, 100 MB private storage witho...","duplicate_of":null,"n_unknown":15},"record":{"topic":"storage","slug":"codeberg","provider":"codeberg (as a storage host)","url":"https://docs.codeberg.org/getting-started/faq/","category":"rejected-provider","free_tier":{"stated":"Explicitly capacity-managed for F/LOSS code: request approval above 750 MiB Git storage and 1.5 GiB of packages/LFS/attachments, 100 MB private storage without a request. Not a bulk target a","unit":"none","metered_on":"none","source_url":"https://docs.codeberg.org/getting-started/faq/","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not recorded","bytes":null,"source_url":"https://docs.codeberg.org/getting-started/faq/","notes":"not recorded"},"retention":{"stated":"not recorded","days":null,"source_url":"https://docs.codeberg.org/getting-started/faq/","notes":null},"egress":{"terms":"not recorded","metered":false},"interface":["unknown"],"interface_detail":null,"tooling":"not recorded","chaining":"not recorded","limits":[],"limits_note":null,"identity_cost":{"kind":"email","detail":null,"country":null},"reliability_note":"Explicitly capacity-managed for F/LOSS code: request approval above 750 MiB Git storage and 1.5 GiB of packages/LFS/attachments, 100 MB private storage without a request. Not a bulk target a","confidence":"reported","confidence_note":null,"evidence":[{"url":"https://docs.codeberg.org/getting-started/faq/","date":"2026-10-21","proved":"Explicitly capacity-managed for F/LOSS code: request approval above 750 MiB Git storage and 1.5 GiB of packages/LFS/attachments, 100 MB private storage without a request. Not a bulk target a"}],"verdict":"fails-quota","verified_at":"2026-10-21T00:00:00.000Z","notes":"Explicitly capacity-managed for F/LOSS code: request approval above 750 MiB Git storage and 1.5 GiB of packages/LFS/attachments, 100 MB private storage without a request. Not a bulk target a","extras":{"dead_end":{"failure_class":"write-gated","why":"Explicitly capacity-managed for F/LOSS code: request approval above 750 MiB Git storage and 1.5 GiB of packages/LFS/attachments, 100 MB private storage without a request. Not a bulk target a","retry_when":null,"first_recorded":"2026-10-21"}},"binding":"none","binding_note":"no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":750.0,"unit":"MiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.chaining","not-recorded"],["$.confidence_note","withheld"],["$.egress.terms","not-recorded"],["$.extras.dead_end.retry_when","process"],["$.free_tier.notes","process"],["$.identity_cost.detail","defaulted"],["$.identity_cost.kind","identity-defaulted"],["$.interface","interface-unknown"],["$.interface_detail","withheld"],["$.limits_note","process"],["$.per_object_cap.notes","not-recorded"],["$.per_object_cap.stated","not-recorded"],["$.retention.notes","process"],["$.retention.stated","not-recorded"],["$.tooling","not-recorded"]],"history":[],"drift":[]},{"rid":"storage/codeberg-2","card":{"rid":"storage/codeberg-2","eid":"codeberg","topic":"storage","slug":"codeberg-2","provider":"codeberg (forgejo flagship instance)","url":"https://blog.codeberg.org/new-storage-limits-on-codeberg-what-you-need-to-know.html","domain":"codeberg.org","category":"rejected-provider","tier":null,"verdict":"fails-quota","vorder":6,"grp":"rejected","confidence":"reported","binding":"none","identity_kind":"email","identity_basis":"defaulted","needs_card":null,"needs_phone":null,"needs_id":null,"needs_institution":null,"country":null,"crypto":null,"interfaces":null,"egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":3,"usd_month":null,"usd_per_tb_month":null,"summary":"Quota is ~750 MiB Git + 1.5 GiB combined LFS/packages/attachments per user, plus 100 MiB for non-promoted/private content, plus 100 MB per release/issue atta...","duplicate_of":null,"n_unknown":15},"record":{"topic":"storage","slug":"codeberg-2","provider":"codeberg (forgejo flagship instance)","url":"https://blog.codeberg.org/new-storage-limits-on-codeberg-what-you-need-to-know.html","category":"rejected-provider","free_tier":{"stated":"Quota is ~750 MiB Git + 1.5 GiB combined LFS/packages/attachments per user, plus 100 MiB for non-promoted/private content, plus 100 MB per release/issue attachment. Enforcement began 2025-05","unit":"none","metered_on":"none","source_url":"https://blog.codeberg.org/new-storage-limits-on-codeberg-what-you-need-to-know.html","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not recorded","bytes":null,"source_url":"https://blog.codeberg.org/new-storage-limits-on-codeberg-what-you-need-to-know.html","notes":"not recorded"},"retention":{"stated":"not recorded","days":null,"source_url":"https://blog.codeberg.org/new-storage-limits-on-codeberg-what-you-need-to-know.html","notes":null},"egress":{"terms":"not recorded","metered":false},"interface":["unknown"],"interface_detail":null,"tooling":"not recorded","chaining":"not recorded","limits":[],"limits_note":null,"identity_cost":{"kind":"email","detail":null,"country":null},"reliability_note":"Quota is ~750 MiB Git + 1.5 GiB combined LFS/packages/attachments per user, plus 100 MiB for non-promoted/private content, plus 100 MB per release/issue attachment. Enforcement began 2025-05","confidence":"reported","confidence_note":null,"evidence":[{"url":"https://blog.codeberg.org/new-storage-limits-on-codeberg-what-you-need-to-know.html","date":"2026-10-21","proved":"Quota is ~750 MiB Git + 1.5 GiB combined LFS/packages/attachments per user, plus 100 MiB for non-promoted/private content, plus 100 MB per release/issue attachment. Enforcement began 2025-05"},{"url":"https://docs.codeberg.org/getting-started/faq/","date":"2026-10-21","proved":"cited as the basis of the rejection: Quota is ~750 MiB Git + 1.5 GiB combined LFS/packages/attachments per user, plus 100 MiB for non-promoted/private content, plus 100 MB per release/issue attachment. Enforcement began 2025-05"},{"url":"https://codeberg.org/Codeberg-e.V./requests/issues/2412","date":"2026-10-21","proved":"cited as the basis of the rejection: Quota is ~750 MiB Git + 1.5 GiB combined LFS/packages/attachments per user, plus 100 MiB for non-promoted/private content, plus 100 MB per release/issue attachment. Enforcement began 2025-05"}],"verdict":"fails-quota","verified_at":"2026-10-21T00:00:00.000Z","notes":"Quota is ~750 MiB Git + 1.5 GiB combined LFS/packages/attachments per user, plus 100 MiB for non-promoted/private content, plus 100 MB per release/issue attachment. Enforcement began 2025-05","extras":{"dead_end":{"failure_class":"quota","why":"Quota is ~750 MiB Git + 1.5 GiB combined LFS/packages/attachments per user, plus 100 MiB for non-promoted/private content, plus 100 MB per release/issue attachment. Enforcement began 2025-05","retry_when":null,"first_recorded":"2026-10-21"}},"binding":"none","binding_note":"no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":750.0,"unit":"MiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.chaining","not-recorded"],["$.confidence_note","withheld"],["$.egress.terms","not-recorded"],["$.extras.dead_end.retry_when","process"],["$.free_tier.notes","process"],["$.identity_cost.detail","defaulted"],["$.identity_cost.kind","identity-defaulted"],["$.interface","interface-unknown"],["$.interface_detail","withheld"],["$.limits_note","process"],["$.per_object_cap.notes","not-recorded"],["$.per_object_cap.stated","not-recorded"],["$.retention.notes","process"],["$.retention.stated","not-recorded"],["$.tooling","not-recorded"]],"history":[],"drift":[]},{"rid":"storage/codeberg-forgejo-package-registry","card":{"rid":"storage/codeberg-forgejo-package-registry","eid":"codeberg","topic":"storage","slug":"codeberg-forgejo-package-registry","provider":"codeberg / forgejo package registry (forgejo packages)","url":"https://blog.codeberg.org/new-storage-limits-on-codeberg-what-you-need-to-know.html","domain":"codeberg.org","category":"rejected-provider","tier":null,"verdict":"fails-quota","vorder":6,"grp":"rejected","confidence":"reported","binding":"none","identity_kind":"email","identity_basis":"defaulted","needs_card":null,"needs_phone":null,"needs_id":null,"needs_institution":null,"country":null,"crypto":null,"interfaces":null,"egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":1,"usd_month":null,"usd_per_tb_month":null,"summary":"Hard caps: 750 MiB git repository storage plus 1.5 GiB combined for LFS/Packages/Releases/Attachments per user or org, and non-promoted personal repos capped...","duplicate_of":null,"n_unknown":15},"record":{"topic":"storage","slug":"codeberg-forgejo-package-registry","provider":"codeberg / forgejo package registry (forgejo packages)","url":"https://blog.codeberg.org/new-storage-limits-on-codeberg-what-you-need-to-know.html","category":"rejected-provider","free_tier":{"stated":"Hard caps: 750 MiB git repository storage plus 1.5 GiB combined for LFS/Packages/Releases/Attachments per user or org, and non-promoted personal repos capped at 100 MiB. Exceptions require a","unit":"none","metered_on":"none","source_url":"https://blog.codeberg.org/new-storage-limits-on-codeberg-what-you-need-to-know.html","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not recorded","bytes":null,"source_url":"https://blog.codeberg.org/new-storage-limits-on-codeberg-what-you-need-to-know.html","notes":"not recorded"},"retention":{"stated":"not recorded","days":null,"source_url":"https://blog.codeberg.org/new-storage-limits-on-codeberg-what-you-need-to-know.html","notes":null},"egress":{"terms":"not recorded","metered":false},"interface":["unknown"],"interface_detail":null,"tooling":"not recorded","chaining":"not recorded","limits":[],"limits_note":null,"identity_cost":{"kind":"email","detail":null,"country":null},"reliability_note":"Hard caps: 750 MiB git repository storage plus 1.5 GiB combined for LFS/Packages/Releases/Attachments per user or org, and non-promoted personal repos capped at 100 MiB. Exceptions require a","confidence":"reported","confidence_note":null,"evidence":[{"url":"https://blog.codeberg.org/new-storage-limits-on-codeberg-what-you-need-to-know.html","date":"2026-10-21","proved":"Hard caps: 750 MiB git repository storage plus 1.5 GiB combined for LFS/Packages/Releases/Attachments per user or org, and non-promoted personal repos capped at 100 MiB. Exceptions require a"}],"verdict":"fails-quota","verified_at":"2026-10-21T00:00:00.000Z","notes":"Hard caps: 750 MiB git repository storage plus 1.5 GiB combined for LFS/Packages/Releases/Attachments per user or org, and non-promoted personal repos capped at 100 MiB. Exceptions require a","extras":{"dead_end":{"failure_class":"quota","why":"Hard caps: 750 MiB git repository storage plus 1.5 GiB combined for LFS/Packages/Releases/Attachments per user or org, and non-promoted personal repos capped at 100 MiB. Exceptions require a","retry_when":null,"first_recorded":"2026-10-21"}},"binding":"none","binding_note":"no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":750.0,"unit":"MiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.chaining","not-recorded"],["$.confidence_note","withheld"],["$.egress.terms","not-recorded"],["$.extras.dead_end.retry_when","process"],["$.free_tier.notes","process"],["$.identity_cost.detail","defaulted"],["$.identity_cost.kind","identity-defaulted"],["$.interface","interface-unknown"],["$.interface_detail","withheld"],["$.limits_note","process"],["$.per_object_cap.notes","not-recorded"],["$.per_object_cap.stated","not-recorded"],["$.retention.notes","process"],["$.retention.stated","not-recorded"],["$.tooling","not-recorded"]],"history":[],"drift":[]},{"rid":"storage/codeberg-git-lfs","card":{"rid":"storage/codeberg-git-lfs","eid":"codeberg","topic":"storage","slug":"codeberg-git-lfs","provider":"Codeberg (Forgejo) Git LFS","url":"https://codeberg.org","domain":"codeberg.org","category":"registry","tier":null,"verdict":"fails-quota","vorder":6,"grp":"rejected","confidence":"reported","binding":"write-gated","identity_kind":"email","identity_basis":"defaulted","needs_card":null,"needs_phone":null,"needs_id":null,"needs_institution":null,"country":null,"crypto":null,"interfaces":"git","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":3,"usd_month":null,"usd_per_tb_month":null,"summary":"750 MiB git repository storage + 'Additional 1.5 GiB' for 'LFS, Packages, Releases, Attachments' per user or organization. Non-promoted/personal content is c...","duplicate_of":null,"n_unknown":8},"record":{"topic":"storage","slug":"codeberg-git-lfs","provider":"Codeberg (Forgejo) Git LFS","url":"https://codeberg.org","category":"registry","free_tier":{"stated":"750 MiB git repository storage + 'Additional 1.5 GiB' for 'LFS, Packages, Releases, Attachments' per user or organization. Non-promoted/personal content is capped at 100 MiB. Enforced since 2025-05-16.","unit":"mixed","metered_on":"stored-bytes","source_url":"https://blog.codeberg.org/new-storage-limits-on-codeberg-what-you-need-to-know.html","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not stated","source_url":"https://blog.codeberg.org/new-storage-limits-on-codeberg-what-you-need-to-know.html","notes":"not stated"},"retention":{"stated":"not stated","source_url":"https://blog.codeberg.org/new-storage-limits-on-codeberg-what-you-need-to-know.html","notes":"not stated"},"egress":{"terms":"Free, no metered bandwidth published — but Codeberg explicitly calls out CDN-style excess use as the reason for the quota, so heavy serving is the thing they police.","metered":false},"interface":["git"],"interface_detail":"git","tooling":"git-lfs; Forgejo API. Codeberg Pages exists but 'Git LFS cannot be used with GitHub Pages sites' equivalent caveats apply.","chaining":"1.5 GiB per user/org; unlimited orgs is theoretically possible but Codeberg automates exception-granting by heuristics ('age of the user account, contributions to well-known projects, membership') which specifically blocks the several-accounts pattern. 334 accounts for 500 GB — not practical.","limits":[{"kind":"write-gated","value":"reviewed via a request form that Codeberg itself calls 'hardly scalable'","source":"https://blog.codeberg.org/new-storage-limits-on-codeberg-what-you-need-to-know.html"}],"limits_note":"Quota is per user OR per org and the total (repo + LFS) is what's checked. Exceptions are human-reviewed via a request form that Codeberg itself calls 'hardly scalable'. Anubis-style bot protection on some sibling instances.","identity_cost":{"kind":"email","detail":null,"country":null},"reliability_note":"Fresh accounts are the ones most likely to be limited. Data is not silently vanished, but quota can be applied retroactively.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://blog.codeberg.org/new-storage-limits-on-codeberg-what-you-need-to-know.html","date":"2026-10-21","proved":"'Git repository storage: 750 MiB / LFS, Packages, Releases, Attachments: Additional 1.5 GiB / ... should not exceed 100 MiB'; restrictions starting 'Friday May 16, 2025'"},{"url":"https://docs.codeberg.org/git/using-lfs/","date":"2026-10-21","proved":"LFS is standard git-lfs workflow against Codeberg's server"},{"url":"https://codeberg.org/forgejo/forgejo.git/info/lfs/objects/batch","date":"2026-10-21","proved":"probe: POST -> HTTP 200"}],"verdict":"fails-quota","verified_at":"2026-10-21T00:00:00.000Z","notes":"750 MiB git repository storage + 'Additional 1.5 GiB' for 'LFS, Packages, Releases, Attachments' per user or organization. Non-promoted/personal content is capped at 100 MiB. Enforced since 2025-05-16.","extras":{"unit_note":"free_tier.unit is 'mixed' because the headline is denominated in MiB or KiB, which the schema enum does not carry; the verbatim free_tier.stated keeps the true unit. See the storage-dossier handover.","dead_end":{"failure_class":"quota","why":"750 MiB git repository storage + 'Additional 1.5 GiB' for 'LFS, Packages, Releases, Attachments' per user or organization. Non-promoted/personal content is capped at 100 MiB. Enforced since 2025-05-16.","retry_when":null,"first_recorded":"2026-10-21"}},"binding":"write-gated","binding_note":"the write is a queue with a person or a rule in it, so the upload rate is set by somebody else"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":750.0,"unit":"MiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:write-gated","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"}],"unknown":[["$.extras.dead_end.retry_when","process"],["$.free_tier.notes","process"],["$.identity_cost.detail","defaulted"],["$.identity_cost.kind","identity-defaulted"],["$.per_object_cap.notes","not-extracted"],["$.per_object_cap.stated","not-extracted"],["$.retention.notes","not-extracted"],["$.retention.stated","not-extracted"]],"history":[],"drift":[]},{"rid":"storage/codeberg-packages-container-registry","card":{"rid":"storage/codeberg-packages-container-registry","eid":"codeberg","topic":"storage","slug":"codeberg-packages-container-registry","provider":"codeberg (forgejo) packages / container registry","url":"https://codeberg.org/v2/","domain":"codeberg.org","category":"rejected-provider","tier":null,"verdict":"fails-quota","vorder":6,"grp":"rejected","confidence":"reported","binding":"none","identity_kind":"email","identity_basis":"defaulted","needs_card":null,"needs_phone":null,"needs_id":null,"needs_institution":null,"country":null,"crypto":null,"interfaces":null,"egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":3,"usd_month":null,"usd_per_tb_month":null,"summary":"Caps are tiny and hard: 750 MiB git repo, plus 1.5 GiB combined for LFS/Packages/Releases/Attachments, and non-promoted personal repos capped at 100 MiB. Quo...","duplicate_of":null,"n_unknown":15},"record":{"topic":"storage","slug":"codeberg-packages-container-registry","provider":"codeberg (forgejo) packages / container registry","url":"https://codeberg.org/v2/","category":"rejected-provider","free_tier":{"stated":"Caps are tiny and hard: 750 MiB git repo, plus 1.5 GiB combined for LFS/Packages/Releases/Attachments, and non-promoted personal repos capped at 100 MiB. Quotas enforced by Forgejo with huma","unit":"none","metered_on":"none","source_url":"https://codeberg.org/v2/","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not recorded","bytes":null,"source_url":"https://codeberg.org/v2/","notes":"not recorded"},"retention":{"stated":"not recorded","days":null,"source_url":"https://codeberg.org/v2/","notes":null},"egress":{"terms":"not recorded","metered":false},"interface":["unknown"],"interface_detail":null,"tooling":"not recorded","chaining":"not recorded","limits":[],"limits_note":null,"identity_cost":{"kind":"email","detail":null,"country":null},"reliability_note":"Caps are tiny and hard: 750 MiB git repo, plus 1.5 GiB combined for LFS/Packages/Releases/Attachments, and non-promoted personal repos capped at 100 MiB. Quotas enforced by Forgejo with huma","confidence":"reported","confidence_note":null,"evidence":[{"url":"https://codeberg.org/v2/","date":"2026-10-21","proved":"Caps are tiny and hard: 750 MiB git repo, plus 1.5 GiB combined for LFS/Packages/Releases/Attachments, and non-promoted personal repos capped at 100 MiB. Quotas enforced by Forgejo with huma"},{"url":"https://codeberg.org/v2/token","date":"2026-10-21","proved":"cited as the basis of the rejection: Caps are tiny and hard: 750 MiB git repo, plus 1.5 GiB combined for LFS/Packages/Releases/Attachments, and non-promoted personal repos capped at 100 MiB. Quotas enforced by Forgejo with huma"},{"url":"https://docs.codeberg.org/getting-started/faq/","date":"2026-10-21","proved":"cited as the basis of the rejection: Caps are tiny and hard: 750 MiB git repo, plus 1.5 GiB combined for LFS/Packages/Releases/Attachments, and non-promoted personal repos capped at 100 MiB. Quotas enforced by Forgejo with huma"}],"verdict":"fails-quota","verified_at":"2026-10-21T00:00:00.000Z","notes":"Caps are tiny and hard: 750 MiB git repo, plus 1.5 GiB combined for LFS/Packages/Releases/Attachments, and non-promoted personal repos capped at 100 MiB. Quotas enforced by Forgejo with huma","extras":{"dead_end":{"failure_class":"quota","why":"Caps are tiny and hard: 750 MiB git repo, plus 1.5 GiB combined for LFS/Packages/Releases/Attachments, and non-promoted personal repos capped at 100 MiB. Quotas enforced by Forgejo with huma","retry_when":null,"first_recorded":"2026-10-21"}},"binding":"none","binding_note":"no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":750.0,"unit":"MiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.chaining","not-recorded"],["$.confidence_note","withheld"],["$.egress.terms","not-recorded"],["$.extras.dead_end.retry_when","process"],["$.free_tier.notes","process"],["$.identity_cost.detail","defaulted"],["$.identity_cost.kind","identity-defaulted"],["$.interface","interface-unknown"],["$.interface_detail","withheld"],["$.limits_note","process"],["$.per_object_cap.notes","not-recorded"],["$.per_object_cap.stated","not-recorded"],["$.retention.notes","process"],["$.retention.stated","not-recorded"],["$.tooling","not-recorded"]],"history":[],"drift":[]}]}