skip to Main Content

I’m thinking about installing GitLab Community Edition on my VPS which is currently also running svn & Parallels Plesk (git should eventually replace svn). The VPS hosts a couple of websites, none of which carry heavy load.

VPS specs:
CentOS 6.5
RAM 2Gb
CPU Intel Xeon 2,3Ghz

I’m wondering if the installation of GitLab could somehow mess up Plesk or will both work flawlessly alongside each other?

also: how do bind the domain name to the server? i.e. git.myserver.com
should not be done through plesk, right?

3

Answers


  1. I highly recommend that you use the omnibus installer for CentOS 6.5. One thing to know is that Gitlab has a lot of dependencies and some could conflict. Check and make sure.

    For example, it uses Postgresql as the database. If you already have a local copy installed, you’ll need to setup a custom gitlab configuration file to tell it to run it’s copy of postgresql on a different port.

    Documentation on how to make that gitlab configuration file is pretty much non-existent. It took me a lot of effort to figure it out. If you find you need to tweak some settings, I can dig up the config I built as an example.

    Example config:

    /etc/gitlab/gitlab.rb
    
    external_url "http://gitlab.example.com:80"
    # Shell
    gitlab_shell['git_data_directory']      = "/var/opt/gitlab/git-data"
    # Rails
    gitlab_rails['gitlab_shell_repos_path'] = "/var/opt/gitlab/git-data/repositories"
    gitlab_rails['gitlab_shell_ssh_port']   = 22
    gitlab_rails['internal_api_url']        = "http://gitlab.example.com:9001"
    gitlab_rails['gitlab_host']             = "gitlab.example.com"
    gitlab_rails['gitlab_port']             = 80
    gitlab_rails['db_port']                 = 5432
    gitlab_rails['gitlab_default_projects_features_visibility_level'] = "internal"
    gitlab_rails['gitlab_default_projects_features_visibility_level'] = "internal"
    # LDAP
    gitlab_rails['ldap_enabled']  = true
    gitlab_rails['ldap_host']     = "ldap.example.com"
    gitlab_rails['ldap_port']     = 10389
    gitlab_rails['ldap_base']     = "DC=example,DC=com"
    gitlab_rails['ldap_method']   = "plain"
    gitlab_rails['ldap_uid']      = "uid"
    gitlab_rails['ldap_bind_dn']  = ""
    gitlab_rails['ldap_password'] = ""
    # SMTP
    gitlab_rails['smtp_enable']     = true
    gitlab_rails['smtp_address']    = "smtp.gmail.com"
    gitlab_rails['smtp_port']       = 587
    gitlab_rails['smtp_user_name']  = "example"
    gitlab_rails['smtp_password']   = "example"
    gitlab_rails['smtp_domain']     = "example.com"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['gitlab_email_from'] = '[email protected]'
    #
    unicorn['port']     = 9001
    unicorn['user']     = 'gitlab-www'
    postgresql['port']  = 5432
    
    ci_external_url 'http://gitlab-ci.example.com'
    
    Login or Signup to reply.
    1. Add a new subdomain in Plesk e.g. gitlab.domain.com.
    2. Remove all files under: /var/www/vhosts/domain.com/gitlab.domain.com/
    3. Add a new file gitlab.conf to /etc/nginx/conf.d/ with the following content:
      upstream gitlab {
          # for manual installation
          server unix:/home/git/gitlab/tmp/sockets/gitlab.socket;
          # for omnibus installation
          server unix:/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket;
      }
      
    4. in Plesk select Websites & Domains > your subdomain > Webserver Settings – remove all ticks under “nginx settings” and add the following code to “Additional nginx directives”

      location ~ / {
          # serve static files from defined root folder;.
          # @gitlab is a named location for the upstream fallback, see below
          # for manual installation
          root /home/git/gitlab/public;
          # for omnibus installation
          root /opt/gitlab/embedded/service/gitlab-rails/public;
          try_files $uri $uri/index.html $uri.html @gitlab;
        }
      
        # if a file, which is not found in the root folder is requested,
        # then the proxy pass the request to the upsteam (gitlab unicorn)
        location @gitlab {
          proxy_read_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
          proxy_connect_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
          proxy_redirect     off;
      
      
      proxy_set_header   X-Forwarded-Proto $scheme;
      proxy_set_header   Host              $http_host;
      proxy_set_header   X-Real-IP         $remote_addr;
      
      proxy_pass http://gitlab;
      

      }

    5. Save this settings and reboot your server

    Note: Maybe you have to change some permissions – see also https://github.com/gitlabhq/gitlabhq/issues/2071

    Login or Signup to reply.
  2. With GitLab 8, gitlab-git-http-server was introduced, and the old nginx configuration used for version 7 must be changed.

    I just found the best tutorial around here: http://www.nullalo.com/en/install-and-configure-gitlab-with-plesk-12-on-centos-6/.

    It covers both version 7 and 8 of GitLab, with CentOS v6.5, Plesk 12 and Nginx… that saved my day!

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search