O GitLab CE ou Community Edition é um aplicativo de código aberto usado principalmente para hospedar repositórios Git, que possui recursos adicionais relacionados ao desenvolvimento como o rastreamento de problemas. Ele foi desenvolvido para ser hospedado usando infraestrutura própria, fornecendo flexibilidade na implantação como uma loja interna de repositórios para a sua equipe de desenvolvimento. Trata-se de uma maneira de interagir com os usuários ou um meio para que colaboradores hospedem seus respectivos projetos.
O projeto GitLab torna relativamente simples a configuração de uma instância do GitLab no seu próprio hardware a partir de um processo de instalação fácil. Neste guia, falaremos sobre como instalar e configurar o GitLab em um servidor Ubuntu 18.04.
Para este tutorial, você precisará de:
Os requisitos de hardware do GitLab recomendam o uso de um servidor que tenha:
É possível ignorar esse requisito substituindo algum espaço de swap por memória RAM, mas não recomendamos que faça isso. Para este guia, supomos que você tenha ao menos os recursos mínimos acima.
Antes de instalar o GitLab propriamente dito, é importante instalar alguns dos software que ele utiliza durante a instalação e em base contínua. Todos os software necessários poderão ser instalados a partir dos repositórios do pacote padrão do Ubuntu.
Como esta será a primeira vez que você usará o apt
na sessão, podemos atualizar o índice de pacotes local e, em seguida, instalar as dependências, digitando:
- sudo apt update
- sudo apt install ca-certificates curl openssh-server postfix
É provável que você já tenha alguns dos software instalados. Para a instalação postfix
, selecione **Internet Site **quando solicitado. Na tela seguinte, digite o nome de domínio do seu servidor e configure o modo como o sistema enviará e-mails.
Agora que as dependências estão instaladas, podemos instalar o GitLab. Este é um processo simples que se utiliza de um script de instalação para configurar seu sistema com os repositórios do GitLab.
Vá para o diretório /tmp
e, em seguida, faça o download do script de instalação:
- cd /tmp
- curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh
Fique à vontade para avaliar o script baixado para garantir que se sinta seguro quanto as ações que o script realizará. Também é possível encontrar uma versão hospedada do script aqui:
- less /tmp/script.deb.sh
Se estiver satisfeito com a segurança do script, execute o instalador.
- sudo bash /tmp/script.deb.sh
O script irá configurar o seu servidor para usar os repositórios mantidos pelo GitLab. Isso permitirá que você gerencie o GitLab com as mesmas ferramentas de gerenciamento de pacotes que você usa com outros pacotes do seu sistema. Quando o processo estiver finalizado, instale o aplicativo GitLab com o comando apt
:
- sudo apt install gitlab-ce
Isso instalará os componentes necessários no sistema.
Antes de configurar o GitLab, será necessário conferir suas regras de firewall, de modo que estas permitam o tráfego da Web. Se você seguiu o guia presente nos pré-requisitos, você terá um firewall ufw
habilitado.
Para ver o status atual do firewall ativo, digite:
- sudo ufw status
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Como é possível ver, as regras atuais permitem o tráfego SSH, mas o acesso a outros serviços se encontra restrito. O GitLab é um aplicativo da Web e, por isso, devemos habilitar o acesso HTTP. Como iremos aproveitar a capacidade do GitLab de solicitar e habilitar um certificado TLS/SSL gratuito a partir de Let’s Encrypt, também iremos permitir o acesso HTTPS.
O protocolo de mapeamentos de portas para HTTP e HTTPS está disponível no arquivo /etc/services
. Desse modo, permitimos o tráfego pelo nome. Se você ainda não tiver o tráfego OpenSSH habilitado, você também deve permitir esse tráfego agora:
- sudo ufw allow http
- sudo ufw allow https
- sudo ufw allow OpenSSH
Confira o ufw status
novamente. Você verá o serviço configurado para pelo menos estes dois serviços:
- sudo ufw status
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
O resultado acima indica que a interface da Web do GitLab ficará acessível assim que configurarmos o aplicativo.
Antes de usar o aplicativo, será necessário atualizar o arquivo de configuração e executar um comando de reconfiguração. Primeiramente, abra o arquivo de configuração do GitLab:
- sudo nano /etc/gitlab/gitlab.rb
Na parte superior podemos ver a linha de configuração external_url
. Atualize o arquivo para que ele corresponda ao seu domínio. Altere http
para https
. Assim, o GitLab redirecionará os usuários para o site protegido pelo certificado Let’s Encrypt:
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'https://example.com'
Depois, encontre a configuração letsencrypt['contact_emails']
. Esta configuração define uma lista de endereços de e-mail que o projeto Let’s Encrypt usará para contatar você caso haja algum problema com o domínio. É recomendável remover o comentário e colocar seu e-mail para que você fique sabendo de quaisquer problemas:
letsencrypt['contact_emails'] = ['sammy@example.com']
Salve e feche o arquivo. Execute o comando a seguir para reconfigurar o Gitlab:
- sudo gitlab-ctl reconfigure
Fazer isso inicializará o GitLab usando a informação do seu servidor. Trata-se de um processo completamente automatizado. Não será necessário responder a nenhum prompt durante o processo. O processo também configurará um certificado Let’s Encrypt para o domínio.
Com o GitLab em execução e p acesso concedido, podemos realizar algumas configurações iniciais do aplicativo através da interface da Web.
Visite o nome de domínio do seu servidor GitLab no seu navegador da Web.
https://example.com
Na primeira visita, você verá um prompt inicial para definir uma senha para a conta administrativa:
No prompt de senha inicial, forneça e confirme uma senha segura para a conta administrativa. Clique no botão Change your password quando tiver terminado.
Você será redirecionado para a página padrão de login do GitLab:
Aqui, é possível fazer login com a senha que você definiu. As credenciais são:
Digite esses dados nos campos em relação aos usuários existentes e clique no botão Sign in Você agora estará logado no aplicativo e será direcionado até a página de destino, onde será solicitado que você adicione projetos:
Agora é possível fazer algumas alterações simples para deixar o GitLab do jeito que você quiser.
Uma das primeiras coisas a fazer após uma instalação nova é melhorar seu perfil. O GitLab possui alguns padrões razoáveis, mas que não são geralmente apropriados para quando você começar a usar o software.
Para fazer as modificações necessárias, clique no ícone de usuário, no canto superior direito da interface. No menu suspenso, selecione Configurações:
Você será levado à seção do Perfil de suas configurações:
Ajuste o Name e endereço de E-mail do “Administrador” e “admin@example.com” para algo mais preciso. O nome que você selecionar será exibido para os outros usuários, enquanto o e-mail será usado como padrão para a detecção de avatar, notificações, ações Git através da interface, etc.
Clique no botão Atualizar configurações de perfil, na parte inferior, quando tiver terminado:
Um e-mail de confirmação será enviado para o endereço que você forneceu. Siga as instruções no e-mail para confirmar sua conta para poder começar a usá-la com o GitLab.
Em seguida, clique no item Conta na barra de menu do lado esquerdo:
Aqui, você pode encontrar seu token pessoal da API ou configurar a autenticação de dois fatores. Entretanto, a funcionalidade em que estamos interessados no momento é a seção Alterar nome de usuário.
Por padrão, a primeira conta administrativa recebe o nome de root. Como se trata de um nome de conta conhecido, é mais seguro mudar para um nome diferente. Você ainda terá privilégios administrativos; a única coisa que mudará é o nome. Substitua **root **com seu nome de usuário preferido:
Clique no botão Atualizar nome de usuário para fazer a alteração:
Da próxima vez que fizer login no Gitlab, lembre-se de utilizar seu novo nome de usuário.
Na maioria dos casos, você irá querer utilizar as chaves SSH com Git para interagir com seus projetos do GitLab. Para isso, será necessário adicionar sua chave pública SSH à sua conta do GitLab.
Se já tiver um par de chaves SSH criado no seu computador local, normalmente é possível visualizar a chave pública digitando:
- cat ~/.ssh/id_rsa.pub
Você verá um texto grande, como este:
Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop
Copie este texto e volte para a página de Configuração do perfil na interface Web do GitLab.
Se, em vez disso, você receber uma mensagem parecida com esta, isto significa que você ainda não possui um par de chaves SSH configurado em sua máquina:
Outputcat: /home/sammy/.ssh/id_rsa.pub: No such file or directory
Se for este o caso, você pode criar um par de chaves SSH digitando:
- ssh-keygen
Aceite os padrões e, se desejar, forneça uma senha para proteger a chave localmente:
OutputGenerating public/private rsa key pair.
Enter file in which to save the key (/home/sammy/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sammy/.ssh/id_rsa.
Your public key has been saved in /home/sammy/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 sammy@gitlab.docsthat.work
The key's randomart image is:
+---[RSA 2048]----+
| ..%o==B|
| *.E =.|
| . ++= B |
| ooo.o . |
| . S .o . .|
| . + .. . o|
| + .o.o ..|
| o .++o . |
| oo=+ |
+----[SHA256]-----+
Uma vez que a tiver, você pode mostrar sua chave pública como acima digitando:
- cat ~/.ssh/id_rsa.pub
Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop
Copie o bloco de texto exibido e volte para sua Configuração de perfil na interface Web do GitLab.
Clique no item **Chaves SSH **no menu do lado esquerdo:
No espaço indicado, cole a chave pública que copiou da sua máquina local. Dê a ela um título descritivo e clique no botão Adicionar chave:
Agora, você deve conseguir gerenciar seus projetos e repositórios do GitLab a partir de sua máquina local sem ter que fornecer suas credenciais da conta GitLab.
Você deve ter notado que é possível para qualquer um registrar uma conta ao visitar a página de destino de sua instância do GitLab. Isso pode ser o que você quer caso esteja procurando hospedar um projeto público. Entretanto, muitas vezes é desejável usar configurações mais restritivas.
Para começar, vá para a área administrativa, clicando no ícone de** chave inglesa**, na barra de menu principal no todo da página:
Na página que segue, é possível ver um resumo da instância GitLab como um todo. Para ajustar as configurações, clique no item Configurações no final do menu do lado esquerdo:
Você será levado para as configurações globais de sua instância GitLab. Aqui é possível ajustar uma série de configurações que afetam se novos usuários podem se inscrever e o nível de acesso deles.
Se deseja desativar as inscrições completamente (você ainda pode criar contas para novos usuários manualmente), role para baixo até a seção de Restrições de inscrição.
Desmarque a caixa de seleção Inscrição habilitada:
Role até a parte inferior e clique no botão Salvar alterações:
A seção de inscrição deve estar removida da página de destino da GitLab agora.
Se estiver usando o GitLab como parte de uma organização que fornece endereços de e-mail associados a um domínio, você pode restringir as inscrições por domínio, em vez de desabilitá-las totalmente.
Na seção Restrições de inscrição, selecione a caixa Enviar e-mail de confirmação no momento da inscrição, o que permitirá que os usuários façam login apenas depois de confirmarem seus respectivos e-mails.
Na sequência, adicione seu domínio ou domínios à caixa Domínios whitelist para inscritos, um domínio por linha. Você pode usar o asterisco “*” para especificar domínios wildcard:
Role até a parte inferior e clique no botão Salvar alterações:
A seção de inscrição deve estar removida da página de destino da GitLab agora.
Por padrão, novos usuários podem criar até 10 projetos. Se quiser dar permissões de visibilidade e participação aos novos usuários externos, mas também quiser limitar o acesso deles à criação de novos projetos, é possível fazer isso** na seção Configurações de cont**a e limite.
Dentro, é possível alterar o Limite de projetos padrão para 0 para desabilitar completamente a criação de projetos dos novos usuários:
Novos usuários ainda podem ser adicionados aos projetos manualmente e terão acesso aos projetos internos ou públicos criados por outros usuários.
Role até a parte inferior e clique no botão Salvar alterações:
Agora, os novos usuários poderão criar contas, mas não poderão criar projetos.
Por padrão, o GitLab tem uma tarefa programada configurada para renovar os certificados do Let’s Encrypt após a meia-noite a cada quatro dias, com o minuto exato baseado em seu external_url
. Você pode modificar essas configurações no arquivo /etc/gitlab/gitlab.rb
. Por exemplo, se quisesse renovar todo dia 7, às 12h30, poderia configurar isso como segue:
letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"
Também é possível desabilitar a renovação automática, adicionando uma configuração adicional para /etc/gitlab/gitlab
.rb:
letsencrypt['auto_renew'] = false
Com a renovação automática funcionando, não será mais necessário se preocupar com interrupções de serviço.
Agora, você deve ter uma instância GitLab funcionando hospedada em seu próprio servidor. Você pode começar a importar ou criar novos projetos e configurar o nível de acesso apropriado para sua equipe. O GitLab adiciona recursos e atualiza sua plataforma regularmente. Assim, assegure-se de verificar a página inicial de projetos para se manter atualizado em relação às melhorias ou avisos importantes.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!