Anonim

Por que o Gitlab

Links Rápidos

  • Por que o Gitlab
  • Configuração
  • Instalar dependências
  • Instale o Gitlab
  • Execute a instalação
  • Configuração inicial
  • Configurar SSH
    • Para SSH regular
  • Configurar UFW
  • Pensamentos finais

Existem muitas ótimas opções para hospedar seus projetos e compartilhar seu código. Você pode configurar uma conta do Github agora gratuitamente. Então, por que você deseja enfrentar o problema de configurar o Gitlab?

Existem alguns bons argumentos para isso, na verdade, o menos importante é a privacidade. O Gitlab é seu. Você o hospeda e é o proprietário. Portanto, você pode controlar quem tem acesso aos seus repositórios. Isso também significa que você tem controle sobre a própria plataforma. Você não está sujeito a políticas corporativas, alterações arbitrárias nos preços ou coleta de dados.

O controle de versão auto-hospedado também significa que você não depende de um serviço para acessar seu código. Claro, as chances de o Github ou outro serviço similar ficar totalmente indisponível devido a uma interrupção são pequenas, mas você prefere que isso não seja uma possibilidade?

O Gitlab também é muito fácil de configurar e requer apenas que você tenha um servidor Linux executando o software Gitlab de código aberto, a maioria dos quais vem pré-configurada e pronta para ser executada.

Configuração

Antes de começar, você precisará configurar um VPS para hospedar o Gitlab, a menos que planeje hospedá-lo localmente. Empresas de hospedagem como DigitalOcean e Linode oferecem opções econômicas que podem colocar seu servidor em funcionamento.

Também é uma boa ideia comprar um nome de domínio para o seu servidor. Ou, você pode apontar um subdomínio de um nome de domínio existente no seu servidor Gitlab. De qualquer forma, facilitará o acesso à interface da web.

Este guia segue o Ubuntu 16.04 LTS. É o último lançamento de suporte de longo prazo do Ubuntu e é muito fácil de trabalhar. O Debian Stretch (Stable) também seria uma ótima opção, e a maior parte deste guia também funcionará. O DigitalOcean e o Linode configuram o servidor com o sistema operacional de sua escolha, portanto não há necessidade de instalar o Ubuntu.

Instalar dependências

Quando você inicializa o Ubuntu, é uma boa idéia atualizar o sistema para garantir que não haja correções de segurança disponíveis. Vá em frente e faça isso primeiro.

$ sudo apt update $ sudo apt upgrade

Após a conclusão da atualização, é necessário instalar algumas coisas para o Gitlab começar. Use o apt para instalar esses também.

$ sudo apt install curl openssh-server ca-certificados postfix

É isso aí. Você está pronto para executar o script de instalação do Gitlab.

Instale o Gitlab

O Gitlab mantém seu próprio repositório Debian / Ubuntu. Para ativar o repositório no seu servidor, baixe e execute o conveniente script de instalação fornecido pela equipe do Gitlab.

$ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

Pode parecer muito, mas ele apenas baixa o script e diz ao shell da linha de comando para executá-lo. O script levará alguns segundos para executar e configurar o repositório. Depois disso, você estará pronto para instalar o pacote Gitlab.

$ sudo apt instala gitlab-ce

Essa instalação levará alguns minutos. O Gitlab vem em um grande pacote chamado "pacote Omnibus". Ele vem com tudo o que o Gitlab precisa, todos agrupados.

Execute a instalação

Há um script de instalação que você precisa executar para que o Gitlab seja configurado. Ele veio no pacote que você acabou de instalar, para que você possa executá-lo agora.

$ sudo gitlab-ctl reconfigurar

O script levará alguns minutos para percorrer tudo. É principalmente configurar o back-end do banco de dados para o Gitlab. Você verá muitas migrações do Ruby on Rails em execução na tela. Pode demorar um pouco, mas quando terminar, o Gitlab estará pronto para uso.

Configuração inicial

Abra seu navegador da web e navegue até o servidor Gitlab. Você será recebido por uma página que solicita que você configure uma senha administrativa. Essa é obviamente a senha da sua conta de administrador. Por padrão, esse nome de conta é "raiz".

Depois que a conta for configurada, você poderá fazer login ou registrar uma conta de usuário comum e entrar. De qualquer forma, depois de fazer login, você terá acesso a todo o painel do Gitlab para criar e gerenciar repositórios.

Configurar SSH

Você não precisa fazer alterações nos seus projetos usando senhas. É uma dor, e não é muito seguro. A melhor coisa que você pode fazer é criar um SSH para efetuar login automaticamente em qualquer computador com a chave instalada.

As chaves SSH são muito fáceis de criar no Linux e Mac. No Windows 10, o processo deve ser o mesmo por meio do aplicativo OpenSSH disponível.

Abra um terminal e execute o seguinte comando para criar sua chave. Você pode deixar de fora a parte -C '' se quiser apenas usar as informações de login do seu computador. Caso contrário, um endereço de email geralmente é a ligação certa.

$ ssh-keygen -b 4096 -t rsa -C ''

O processo o guiará por algumas etapas. Os padrões são principalmente bons e tudo é bastante auto-explicativo. Se você optar por associar uma senha à sua chave, precisará dessa senha toda vez que efetuar login ou efetuar uma alteração. Você pode deixar a senha em branco para não usar uma.

Para visualizar sua chave, execute o comando abaixo. Vai parecer um monte de bobagens, e essencialmente é, mas essa é a sua chave. Você precisará copiá-lo do terminal e colá-lo no Gitlab.

$ cat ~ / .ssh / id_rsa.pub

De volta ao Gitlab, clique no ícone do perfil no canto superior direito da tela. Depois clique em "Configurações" no menu resultante. No menu à esquerda da página, clique em "SSH Keys".

Copie a chave do seu terminal. Comece após “ssh-rsa” e pare antes do seu endereço de email. Então, basta copiar a parte sem sentido. Cole-o na caixa grande denominada “Chave”. Nomeie sua chave e salve-a. A partir desse ponto, você poderá enviar seu código aos repositórios sem fazer login.

Para SSH regular

Você já tem uma chave SSH. Você também pode usá-lo para SSH. O OpenSSH possui um utilitário interno para enviar a chave ao seu servidor.

$ ssh-copy-id -i ~ / .ssh / id_rsa.pub _IP

Substitua server_username e SERVER_IP pelo seu nome de usuário no servidor e pelo endereço IP do servidor.

Tente fazer login novamente no servidor usando a nova chave.

$ ssh _IP

Você deve se conectar imediatamente sem a necessidade de digitar uma senha.

É melhor bloquear o resto do SSH também. É provavelmente um dos pontos mais fracos de um servidor público. Abra / etc / ssh / sshd_confg no editor de texto de sua escolha no servidor.

Há algumas coisas que você precisa mudar. Primeiro, encontre PermRootLogin e defina-o como não.

PermitRootLogin no

Em seguida, encontre PasswordAuthentication, descomente-o e defina-o como não.

PasswordAuthentication no

Em seguida, verifique se as duas linhas a seguir estão definidas como não. Eles devem estar por padrão no Ubuntu, mas é melhor verificar.

PermitEmptyPasswords não HostbasedAuthentication no

Por fim, encontre o UsePAM na parte inferior da configuração e defina-o também.

UsePAM não

Salve e saia da sua configuração. Em seguida, reinicie o serviço SSH.

$ sudo systemctl restart sshd

Configurar UFW

A última medida de segurança que você provavelmente deseja tomar é instalar e configurar um firewall. O Ubuntu funciona muito bem com o firewall não complicado (UFW) apropriadamente chamado. É apenas um invólucro do firewall do kernel do iptables, mas facilita muito o trabalho com o firewall. Vá em frente e instale-o.

$ sudo apt instala ufw

Depois de instalar o ufw, comece definindo as regras padrão para negar tudo.

$ sudo ufw padrão negar entrada $ sudo ufw padrão negar saída $ sudo ufw padrão negar encaminhamento

Em seguida, configure suas regras para permitir os serviços básicos, incluindo Git. Os comentários estão lá apenas para obter informações. Não tente executá-los.

# SSH $ sudo ufw permite ssh $ sudo ufw permite ssh # HTTP e HTTPS para Web $ sudo ufw permite http $ sudo ufw permite http $ sudo ufw permite https # sudo ufw permite https # NTP para manter o tempo $ sudo ufw correto permitir ntp $ sudo ufw permitir ntp # Porta 53 para resolução de domínio DNS $ sudo ufw permitir 53 $ sudo ufw permitir 53 # Você provavelmente não precisará disso # Se o servidor usar DHCP, desbloqueie 67 $ sudo ufw permitir 67 $ sudo ufw permitir 67 # Finalmente, Git $ sudo ufw permitir 9418 $ sudo ufw allo 9418

Verifique se tudo está bem e ative o firewall

$ sudo ufw enable

Você pode verificar o status do seu firewall com o seguinte:

Status de $ sudo ufw

É isso aí! Seu servidor Gitlab está protegido por um firewall.

Pensamentos finais

Até agora, você tem um servidor Gitlab funcionando. Você pode começar a configurar contas e projetos de usuários através da interface do Gitlab. O Gitlab agora é um pacote normal do Ubuntu, portanto, ele é atualizado regularmente com o apt à medida que você mantém seu sistema atualizado.

O Gitlab fornecerá a você toda a flexibilidade necessária para gerenciar seus próprios projetos e projetos maiores nos quais você esteja trabalhando com uma equipe. É uma plataforma totalmente capaz e robusta, na qual mais e mais equipes estão começando a confiar.

Hospede seus próprios projetos de software com o gitlab