Repository hosting affects issues, code review, automation, packages, and permissions. Inventory those dependencies before choosing a replacement. Git storage is only one part of the workflow.

Map the collaboration you need

List protected branches, reviews, releases, and continuous integration. Forgejo and Gitea are projects to evaluate for self-managed collaboration; GitLab covers a broader platform. Match operating requirements to the maintenance time you have available.

Migrate with a small pilot

Export a test repository and complete the workflow with another contributor. Update automation secrets separately. Backups should include application data and configuration as well as Git history. Preserve an export and recovery path, and decide how existing project links will be handled.

Choose between a forge and a full platform

A Git hosting decision includes code review, issues, automation, access management, and the people who operate the service. Gitea is worth investigating for a focused, self-managed forge. GitLab is relevant when you want a wider development platform. Compare the editions and deployment options you intend to use rather than relying on a product's headline name.

List the workflows that your team currently depends on. Repository hosting may be the simplest part to replace. Review discussions, protected branches, artifact storage, and automation can take longer to migrate. If your team only needs a smaller set of capabilities, a simpler forge may be easier to maintain.

Inventory what moves with the repository

A Git clone preserves commit history, but it does not necessarily include issues, pull requests, comments, release assets, or CI secrets. Make a separate inventory for each of those. Identify which records need to remain searchable and which can stay in a read-only archive. Check the destination's import support with a small repository first.

Recreate permissions deliberately. Confirm who can push, merge, change repository settings, and access runners. Review webhook destinations and deploy keys. Rewrite CI configuration where necessary and keep the old pipeline available until the new one produces the expected build and deployment outputs.

Pilot before changing the whole organization

Choose a low-risk repository with an active maintainer. Move it, open a change, review it, run CI, and create a release. Ask someone who did not perform the migration to clone the repository and follow the documentation. This exposes assumptions that the migration owner may have overlooked.

For a self-hosted forge, test backup and restore before it becomes your only source of project history. Plan updates and storage growth. Announce the new canonical URL after the pilot succeeds, and document what happens to the old location. A successful move includes the team's everyday workflow, not just a repository appearing on a new server.

Before you make the switch

Run a small pilot with your own inputs. Compare the result, setup time, operating effort, and export options. Check current documentation and repository licenses before adopting a project; features and hosted plans can change. Keep the original files and configuration available until your new workflow has been tested.

Official instructions and sources

Official project documentation

Original AltStack guide by Sushil Kumar Sah. Installation steps follow provider documentation; they do not imply testing on every supported device.