I need a clear how-to guide for migrating a self-hosted GitLab instance to a new server with minimal downtime. Most tutorials assume a simple backup and restore, but I need to handle a large repository history and integrated CI/CD runners. What's the best step-by-step process to ensure the runners and pipelines come online correctly on the new host?
Here is a how to guide 2025 for migrating a self hosted GitLab instance with minimal downtime Plan a maintenance window and confirm a current full backup Then follow the migrate to a new server guide from GitLab docs as the backbone citeturn0search0
Prepare the new server Install GitLab on the new host and copy over the /etc/gitlab settings from the old server Then disable new CI CD jobs during initial startup to avoid racing changes citeturn0search0
Create a complete backup on the old server and transfer the backup file to the new host If you have a lot of data move the large folders with rsync and prep for a final sync citeturn0search4
Restore on the new server with the backup Then verify redis and postgres status and run read only checks before bringing CI CD back online Finally re enable pipelines and tests citeturn0search0turn0search4
Plan the final cut over Update the DNS to point to the new server and bring up the gitlab runner fleet On the runners use the new workflow for registration introduced in GitLab 16 0 to avoid disruption citeturn0search1