Instalando o GitLab no Debian 9 (SSH) com um proxy reverso NGINX

Procédure

Precisa do Gitlab para gerir os seus projectos? Crie a sua própria instância do GitLab no seu VPS seguindo este tutorial.

Git é bom. Gitlab é melhor. O Gitlab é um gerenciador de repositório Git de código aberto. Desenvolvido pela GitLab Inc, oferece uma interface gráfica intuitiva para gerir os seus vários projectos, mantendo a compatibilidade com o Git. Pode criar pedidos de funcionalidades, seguir bugs, etc. numa equipa e através de um navegador Web.

O Gitlab está disponível em várias versões, tanto pagas como gratuitas. No tutorial a seguir, instalaremos o GitLab Community Edition (Gitlab CE), a versão gratuita e de código aberto do Gitlab.

Pré-requisitos

Para usar o GitLab, você precisa de pelo menos :

  • 2 vCores
  • 4 GB de RAM

O VPSM da gama LWS Starter será ideal para alguns projectos Gitlab, mas se tiver vários colaboradores e/ou vários projectos a realizar, recomendamos o VPS L ou um dos VPS da gama Pro.

Para este tutorial, vamos considerar um sistema operativo completamente vazio a partir da imagem de sistema Debian 9 + SSH proposta no Painel LWS. Aqui estão os links para outros tutoriais para outros sistemas operativos:

Se quiser alterar o sistema operativo da sua VPS, aqui está um link para a documentação de ajuda: Como posso alterar o sistema operativo da minha VPS?

Por favor, note que este tutorial é baseado numa instalação VIRGEM do Debian 9. Se já tiver instalado algo nela, não podemos garantir que o tutorial será eficaz e/ou que todos os seus outros serviços estarão disponíveis após a instalação.

Não se esqueça de ativar a porta SSH na firewall da sua VPS para que se possa ligar como root à consola SSH.

Resumo do tutorial

Aqui estão os passos que serão abordados neste tutorial:

  1. Atualizar o sistema operacional
  2. Instalar o Gitlab CE
  3. Configurar um proxy reverso NGINX na frente do Gitlab
  4. Instalação de um certificado SSL Let's Encrypt no proxy reverso NGINX

Etapa 1: atualizar o sistema operacional

Antes de instalar qualquer coisa, recomendamos que você atualize a lista de pacotes e os próprios pacotes.

Na sua consola SSH, escreva os seguintes comandos:



apt-get update apt-get upgrade -y apt-get dist-upgrade -y

Passo 2: Instalar o Gitlab CE

Primeiro, vamos instalar as dependências necessárias:

apt-get install -y curl openssh-server ca-certificates

Em seguida, adicione o repositório Gitlab ao seu VPS:

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | bash

Agora vamos instalar o Gitlab:

EXTERNAL_URL="http://vpsXXXXX.lws-hosting.com" apt-get install gitlab-ee

A instalação demora alguns minutos, por isso pode tomar um café enquanto espera.

Dica: se tiver uma ligação instável à Internet, pode utilizar o screen para se reconectar à consola destacável no caso de uma desconexão inesperada. Documentação sobre como utilizar o ecrã.

Quando a instalação estiver concluída, aceda a http://vpsXXXXX.lws-hosting.com para configurar o Gitlab.

Dica: se receber um erro 502, tente reiniciar o Gitlab com o comando gitlab-ctl restart e aguarde 5 minutos antes de tentar novamente(Ctrl+F5).

Se tudo correr como planeado, será redireccionado para uma página para criar a sua palavra-passe do Gitlab.

Instalando o GitLab no Debian 9 (SSH) com um proxy reverso NGINX

Especifique uma palavra-passe relativamente complexa. Também pode gerar uma palavra-passe aleatória.

Uma vez feito isso, você pode se conectar ao Gitlab com o usuário root e a senha que você especificou.

Instalando o proxy reverso NGINX

Agora vamos configurar um proxy reverso com o NGINX. Isto permitir-lhe-á alojar outros sites e aplicações no futuro, nomeadamente se tiver optado por um servidor VPS Cloud Pro S ou superior.

O primeiro passo é mover o Gitlab para uma porta não utilizada. Para este tutorial, utilizaremos a porta 6080 (escolhida ao acaso).

Dica: é possível encontrar a lista de portas já em uso com o comando netstat -tunap | grep LISTEN

Para isso, edite o arquivo /etc/gitlab/gitlab.rb com o nano (ou vim, ou outro editor):

nano /etc/gitlab/gitlab.rb

E edite o valor de external_url para incluir a porta:







[...] ## URL do GitLab ##! URL na qual o GitLab será acessível. ##! Para mais detalhes sobre como configurar external_url veja: ##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab external_url'http://vpsXXXXX.lws-hosting.com:6080'[...]

Ctrl+X, Y e depois Enter para salvar o arquivo e fechar o nano(Esc e depois :wq para o vim).

Para aplicar essa configuração, execute o seguinte comando:

gitlab-ctl reconfigure

Isso levará um ou dois minutos enquanto o Gitlab sincroniza suas configurações com os aplicativos que o Gitlab usa por padrão (NGINX, omnibus, etc.).

O Gitlab está agora no 6080. Agora precisamos de instalar o NGINX. A instalação do NGINX é resumida pelas seguintes linhas de comando:





apt-get install -y curl gnupg2 ca-certificates lsb-release echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" | tee /etc/apt/sources.list.d/nginx.list curl -fsSL https://nginx.org/keys/nginx_signing.key | apt-key add - apt-get update apt-get install -y nginx

Agora é hora de criar um arquivo de configuração do NGINX para o GitLab. Vamos chamá-lo de /etc/nginx/conf.d/000-gitlab.conf. Use o nano para criar esse arquivo:

nano /etc/nginx/conf.d/000-gitlab.conf

Em seguida, precisamos criar um novo bloco server{} e criar o proxy reverso. Aqui está um conteúdo sugerido :



server { listen 80; server_name gitlab.example.


com; location / { proxy_pass http://localhost:



6080; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;




proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Url-Scheme $scheme; } }

Dica: O prefixo "000- " é necessário para que o arquivo seja carregado antes do default.conf. Caso contrário, o arquivo default.conf sobrescreverá nossa configuração.

Ativar o NGINX na inicialização:

systemctl enable nginx

Em seguida, reinicie o nginx com o seguinte comando:

systemctl restart nginx

Em seguida, é necessário apontar gitlab.example.com para o seu VPS, adicionando um registo A à sua zona DNS. Se o seu DNS for gerenciado no espaço do cliente LWS, veja como fazer isso:

Instalando o GitLab no Debian 9 (SSH) com um proxy reverso NGINX

Em seguida, vamos configurar o Gitlab novamente para aceitar o cabeçalho X-Forwarded-For para encontrar os endereços IP reais dos visitantes. Isso é feito editando o arquivo /etc/gitlab/gitlab.rb:




[...] nginx['real_ip_header'] = 'X-Forwarded-For' nginx['real_ip_recursive'] = 'on' [...]

Em seguida, sincronize novamente as configurações do Gitlab e seus serviços incorporados:

gitlab-ctl reconfigure

Nesta fase, você deve ser capaz de se conectar a http://gitlab.exemple.com.

Instalando um certificado SSL Let's Encrypt no NGINX

Vamos agora proteger o nosso acesso com um certificado Let's Encrypt SSL. Primeiro, vamos instalar o certbot :

apt-get install certbot -y

Em seguida, vamos configurar um webroot para a autenticação do Let's Encrypt. Para fazer isso, edite o arquivo /etc/nginx/conf.d/000-gitlab.conf e adicione estas linhas após o bloco location /:










[...] location / { proxy_pass http://localhost:6080; [...] }location ^~ /.well-known/acme-challenge/ { root /var/www/letsencrypt; }}

Criar o ficheiro :

mkdir -p /var/www/letsencrypt

E reinicie o NGINX :

systemctl restart nginx

Agora vamos criar um certificado SSL para gitlab.example.com:

certbot certonly --webroot -w /var/www/letsencrypt/ -d gitlab.example.com

Siga as instruções no ecrã:

  • Introduza o seu endereço de correio eletrónico
  • Ler e aceitar os termos de utilização
  • Subscrever (ou não) a newsletter da EFF

Em seguida, vamos editar o arquivo /etc/nginx/conf.d/000-gitlab.conf novamente para adicionar um novo servidor em HTTPS/443. Precisamos de adicionar as seguintes linhas ao final do ficheiro:







[...] server { listen 443 ssl; server_name gitlab.example.com; ssl_certificate /etc/letsencrypt/live/gitlab.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/gitlab.example.com/privkey.


pem; location / { proxy_pass http://localhost:



6080; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;




proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Url-Scheme $scheme; } }

E reinicie o seu servidor NGINX :

systemctl restart nginx

Agora você tem um servidor Gitlab pronto para uso em https://gitlab.exemple.com.

Avaliar este artigo :

Este artigo foi útil para si ?

Article utileSim

Article non utileNão

Vous souhaitez nous laisser un commentaire concernant cet article ?

Si cela concerne une erreur dans la documentation ou un manque d'informations, n'hésitez pas à nous en faire part depuis le formulaire.

Pour toute question non liée à cette documentation ou problème technique sur l'un de vos services, contactez le support commercial ou le support technique

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Artigos semelhantes


Fazer uma pergunta à equipa do LWS e à sua comunidade