Configure GitLab using an external PostgreSQL service

If you’re hosting GitLab on a cloud provider, you can optionally use a managed service for PostgreSQL. For example, AWS offers a managed Relational Database Service (RDS) that runs PostgreSQL.

Alternatively, you may opt to manage your own PostgreSQL instance or cluster separate from the Omnibus GitLab package.

If you use a cloud-managed service, or provide your own PostgreSQL instance:

  1. Set up PostgreSQL according to the database requirements document.
  2. Set up a gitlab user with a password of your choice, create the gitlabhq_production database, and make the user an owner of the database. You can see an example of this setup in the installation from source documentation.
  3. If you are using a cloud-managed service, you may need to grant additional roles to your gitlab user:
  4. Configure the GitLab application servers with the appropriate connection details for your external PostgreSQL service in your /etc/gitlab/gitlab.rb file:

     # Disable the bundled Omnibus provided PostgreSQL
     postgresql['enable'] = false
     # PostgreSQL connection details
     gitlab_rails['db_adapter'] = 'postgresql'
     gitlab_rails['db_encoding'] = 'unicode'
     gitlab_rails['db_host'] = '' # IP/hostname of database server
     gitlab_rails['db_password'] = 'DB password'

    For more information on GitLab multi-node setups, refer to the reference architectures.

  5. Reconfigure for the changes to take effect:

    sudo gitlab-ctl reconfigure