GitSwarm 2016.3-2 Documentation


Load Balancer for GitSwarm HA

In an active/active GitSwarm configuration, you will need a load balancer to route traffic to the application servers. The specifics on which load balancer to use or the exact configuration is beyond the scope of GitSwarm documentation. We hope that if you're managing HA systems like GitSwarm you have a load balancer of choice already. Some examples including HAProxy (open-source), F5 Big-IP LTM, and Citrix Net Scaler. This documentation will outline what ports and protocols you need to use with GitSwarm.

Basic ports

LB Port Backend Port Protocol
80 80 HTTP
443 443 HTTPS 1
22 22 TCP

GitSwarm Pages Ports

If you're using GitSwarm Pages you will need some additional port configurations. GitSwarm Pages requires a separate VIP. Configure DNS to point the pages_external_url from /etc/gitswarm/gitswarm.rb at the new VIP. See the GitSwarm Pages documentation for more information.

LB Port Backend Port Protocol
80 Varies 2 HTTP
443 Varies 3 TCP 4

Alternate SSH Port

Some organizations have policies against opening SSH port 22. In this case, it may be helpful to configure an alternate SSH hostname that allows users to use SSH on port 443. An alternate SSH hostname will require a new VIP compared to the other GitSwarm HTTP configuration above.

Configure DNS for an alternate SSH hostname such as altssh.gitswarm.example.com.

LB Port Backend Port Protocol
443 22 TCP

Read more on high-availability configuration:

  1. Configure the database
  2. Configure Redis
  3. Configure NFS
  4. Configure the GitSwarm application servers

  1. When using HTTPS protocol for port 443, you will need to add an SSL certificate to the load balancers. If you wish to terminate SSL at the GitSwarm application server instead, use TCP protocol.

  2. The backend port for GitSwarm Pages depends on the gitlab_pages['external_http'] and gitlab_pages['external_https'] setting. See GitSwarm Pages documentation for more details.

  3. The backend port for GitSwarm Pages depends on the gitlab_pages['external_http'] and gitlab_pages['external_https'] setting. See GitSwarm Pages documentation for more details.

  4. Port 443 for GitSwarm Pages should always use the TCP protocol. Users can configure custom domains with custom SSL, which would not be possible if SSL was terminated at the load balancer.