What changed
On October 7, 2026, Codeberg announced that its old Pages v2 server will shut down completely on December 31, 2026. Existing static websites still served by the unmaintained v2 implementation will stop being delivered unless their maintainers migrate to the git-pages backend. Codeberg has operated the replacement since December 2025, but old v2 sites were not all switched automatically. Users can test whether their site has migrated and switch deployment to a Forgejo webhook or direct Forgejo Actions deployment. The new service changes behaviour around automatic repository content fetching, arbitrary repository/branch URLs, raw.codeberg.page, and some HTML redirects.
Why it matters
Codeberg is a free, community-run Git forge used by open-source developers and small projects. Static documentation, project homepages and custom-domain sites may be low traffic but critical for users and package consumers. This is an explicit loss-of-service deadline for maintainers who have not migrated; changing the deployment mechanism and verifying URL semantics ahead of December prevents avoidable outages and broken inbound links.
The cutoff affects old deployments, not every Codeberg Pages site
The December 31 shutdown applies to sites still served by the old Pages v2 backend. Codeberg says a site that never configured the new repository webhook may still be on v2. Existing git-pages sites are not subject to the legacy-server shutdown. Codeberg provides a migration-check tool, and the server response header also distinguishes the backends: pages-server for legacy and git-pages for new.
Migrate via a Forgejo webhook or Action
For a simple pages branch, create a Forgejo webhook in repository settings, point it at the site URL, filter to the pages branch and push content to trigger deployment. For generated sites, Codeberg documents a Forgejo Actions deployment path. A webhook's Test delivery button is not a valid success test: Codeberg advises pushing content and checking the resulting delivery and public page.
Check URLs and custom domains before the switch
Git-pages no longer fetches repository content automatically; publishing needs a deployment trigger. Arbitrary /repository/@branch access and the raw.codeberg.page workaround disappear. Old implicit path-to-path.html redirects no longer happen, and splat redirect rules are more constrained. Custom domains remain supported, but DNS and redirect behaviour should be checked during migration.