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.
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.