--- stage: Systems group: Geo info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments --- # Using a Geo Site **(PREMIUM SELF)** After you set up the [database replication and configure the Geo nodes](../index.md#setup-instructions), 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: ```shell $ git push remote: remote: This request to a Geo secondary node will be forwarded to the remote: Geo primary node: remote: remote: ssh://git@primary.geo/user/repo.git remote: Everything up-to-date ``` NOTE: If you're using HTTPS instead of [SSH](../../../user/ssh.md) to push to the secondary, you can't store credentials in the URL like `user:password@URL`. Instead, you can use a [`.netrc` file](https://www.gnu.org/software/inetutils/manual/html_node/The-_002enetrc-file.html) for Unix-like operating systems or `_netrc` for 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](https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage). ## Fetch Go modules from Geo secondary sites 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 `~/.netrc`. Read more in the [working with projects `go get` documentation](../../../user/project/working_with_projects.md#fetch-go-modules-from-geo-secondary-sites).