After you set up the database replication and configure the Geo nodes, use your closest GitLab site as you would do with the primary one.
You can push directly to a secondary site (for both HTTP, SSH including Git LFS), and the request is proxied to the primary site instead.
Example of the output you see when pushing to a secondary site:
$ git push remote: remote: This request to a Geo secondary node will be forwarded to the remote: Geo primary node: remote: remote: ssh://firstname.lastname@example.org/user/repo.git remote: Everything up-to-date
user:password@URL. Instead, you can use a
.netrcfile for Unix-like operating systems or
_netrcfor Windows. In that case, the credentials are stored as a plain text. If you’re looking for a more secure way to store credentials, you can use Git Credential Storage.
Go modules can be pulled from secondary sites, with a number of limitations:
- Git configuration (using
insteadOf) is needed to fetch data from the Geo secondary site.
- For private projects, authentication details need to be specified in
For more information, see Using a project as a Go package.