instalar GitLab en VPS ejecutando Parallels Plesk

Estoy pensando en instalar GitLab Community Edition en mi VPS que actualmente también está ejecutando svn y Parallels Plesk (git debería eventualmente replace svn). El VPS alberga un par de sitios web, ninguno de los cuales tiene mucha carga.

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

Me pregunto si la installation de GitLab podría estropear de alguna manera Plesk o ambos funcionarán sin problemas uno junto al otro.

también: ¿cómo se vincula el nombre de dominio al server? es decir, git.myserver.com no debe hacerse a través de plesk, ¿verdad?

  1. Agregue un nuevo subdominio en Plesk, por ejemplo, gitlab.domain.com .
  2. Elimine todos los files en /var/www/vhosts/domain.com/gitlab.domain.com/
  3. Agregue un nuevo file gitlab.conf a /etc/nginx/conf.d/ con el siguiente contenido:
     upstream gitlab {
         # para installation manual
         unix de server: /home/git/gitlab/tmp/sockets/gitlab.socket;
         # para la installation ómnibus
         Unix de server: /var/opt/gitlab/gitlab-rails/sockets/gitlab.socket;
     }
    
  4. en Plesk, select Sitios web y dominios> su subdominio> Configuración del server web – elimine todos los ticks en "configuration nginx" y agregue el siguiente código a "Directivas nginx adicionales"

     location ~ / {
         # servir files estáticos desde la carpeta raíz definida ;.
         # @gitlab es una location con nombre para la reserva de flujo ascendente, ver a continuación
         # para installation manual
         root / home / git / gitlab / public;
         # para la installation ómnibus
         root / opt / gitlab / embedded / service / gitlab-rails / public;
         try_files $ uri $ uri / index.html $ uri.html @gitlab;
       }
    
       # si se solicita un file, que no se encuentra en la carpeta raíz,
       # entonces el proxy pasa la request al upsteam (unicornio gitlab)
       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_networkingirect desactivado;
    
    
     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. Guarde esta configuration y reinicie su server

Nota: Quizás deba cambiar algunos permissions; consulte también https://github.com/gitlabhq/gitlabhq/issues/2071

Le recomiendo que use el instalador omnibus para CentOS 6.5. Una cosa que debes saber es que Gitlab tiene muchas dependencies y algunas podrían entrar en conflicto. Verifica y asegúrate.

Por ejemplo, usa Postgresql como la database. Si ya tiene instalada una copy local, deberá configurar un file de configuration de gitlab personalizado para indicarle que ejecute su copy de postgresql en un puerto diferente.

La documentation sobre cómo hacer ese file de configuration de gitlab es prácticamente inexistente. Me costó un gran esfuerzo averiguarlo. Si encuentra que necesita modificar algunas configuraciones, puedo desenterrar la configuration que construí como ejemplo.

Config de ejemplo:

 /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'] = 'admin@example.com' # unicorn['port'] = 9001 unicorn['user'] = 'gitlab-www' postgresql['port'] = 5432 ci_external_url 'http://gitlab-ci.example.com' 

Con GitLab 8, se introdujo gitlab-git-http-server, y se debe cambiar la antigua configuration de nginx utilizada para la versión 7.

Acabo de encontrar el mejor tutorial aquí: http://www.nullalo.com/en/install-and-configure-gitlab-with-plesk-12-on-centos-6/ .

Cubre tanto la versión 7 como la 8 de GitLab, con CentOS v6.5, Plesk 12 y Nginx … ¡eso me salvó el día!