Configuring Redis for GitLab HA

You can choose to install and manage Redis yourself, or you can use GitLab Omnibus packages to help.

Configure your own Redis server

If you're hosting GitLab on a cloud provider, you can optionally use a managed service for Redis. For example, AWS offers a managed ElastiCache service that runs Redis.

Note: Redis does not require authentication by default. See Redis Security documentation for more information. We recommend using a combination of a Redis password and tight firewall rules to secure your Redis service.

Configure using Omnibus

  1. Download/install GitLab Omnibus using steps 1 and 2 from GitLab downloads. Do not complete other steps on the download page.
  2. Create/edit /etc/gitlab/gitlab.rb and use the following configuration. Be sure to change the external_url to match your eventual GitLab front-end URL.

      external_url 'https://gitlab.example.com'
    
      # Disable all components except Redis
      redis['enable'] = true
      bootstrap['enable'] = false
      nginx['enable'] = false
      unicorn['enable'] = false
      sidekiq['enable'] = false
      postgresql['enable'] = false
      gitlab_workhorse['enable'] = false
      mailroom['enable'] = false
    
      # Redis configuration
      redis['port'] = 6379
      redis['bind'] = '0.0.0.0'
    
      # If you wish to use Redis authentication (recommended)
      redis['password'] = 'Redis Password'
  3. Run sudo gitlab-ctl reconfigure to install and configure PostgreSQL.

    Note: This reconfigure step will result in some errors. That's OK - don't be alarmed.

  4. Run touch /etc/gitlab/skip-auto-migrations to prevent database migrations from running on upgrade. Only the primary GitLab application server should handle migrations.


Read more on high-availability configuration:

  1. Configure the database
  2. Configure NFS
  3. Configure the GitLab application servers
  4. Configure the load balancers