# Completa

[**GitLab**](https://gitlab.com) é um gerenciador de repositório de software baseado em git e de código aberto. É uma alternativa ao GitHub. O GitLab vem em duas edições: **Community Edition** e **Enterprise Edition**.

Vamos instalar o Community Edition em nosso passo a passo. O GitLab Community Edition foi projetado para ser hospedado em sua própria infraestrutura, em nosso caso vamos utilizar uma **VPS** na **LetsCloud**.

O GitLab também fornece as equipes um único armazenamento de dados, uma interface de usuário e um modelo de permissão em todo o ciclo de vida para DevOps, permitindo que as equipes colaborem, o que reduz significativamente o tempo de ciclo e se concentraria exclusivamente na construção de um ótimo software rapidamente.

### Recursos <a href="#title-0" id="title-0"></a>

Suas principais vantagens são, flexibilidade na implantação como um repositório interno para uma equipe de desenvolvimento, uma forma pública de interface com os usuários ou um meio para que os contribuidores hospedem seus próprios projetos.

### Pré-requisitos <a href="#title-1" id="title-1"></a>

* Versão do sistema Ubuntu 20.04;
* 3,75 GB ou mais de Ram;
* 20 GB de espaço em disco;
* 1 CPU ou superior;
* Acesso `root`.

[Requisitos de hardware para instalar e usar o GitLab](https://docs.gitlab.com/ce/install/requirements.html).

**Então vamos começar a instalação?**

### Etapa 1 - Faça login no seu servidor via SSH <a href="#title-2" id="title-2"></a>

Use o seguinte comando para fazer login em seu servidor via SSH:

```
ssh root@server_ip
```

### Etapa 2 - Atualizando o Ubuntu <a href="#title-3" id="title-3"></a>

Faça login em seu servidor via SSH e antes de iniciar a instalação do **GitLab**, é sempre indicado atualizar os pacotes do sistema.

Então vamos ao comando:

```
sudo apt update
```

Em seguida digite:

```
sudo apt upgrade
```

Instale todas as dependências executando o comando:

```
sudo apt install ca-certificates curl openssh-server postfix
```

Quando solicitado o tipo, escolha servidor de e-mail, selecione “Site da Internet”.

### Etapa 3 - Instalando o GitLab <a href="#title-4" id="title-4"></a>

Para instalar o GitLab na versão Community Edition, primeiro você precisa habilitar o repositório de pacotes do GitLab, execute o seguinte comando:

```
wget https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh
```

Execute o script.deb.sh

```
sudo ./script.deb.sh
```

Depois que o repositório já foi baixado, execute o seguinte comando para instalar o GitLab CE em seu servidor Ubuntu:

```
sudo EXTERNAL_URL="https://example.com"
```

Em seguida o seguinte comando:

```
apt install gitlab-ce
```

Certifique-se de mudar `example.com` para o seu domínio.

A instalação pode levar alguns minutos para ser concluída. O comando acima vai configurar e instalar automaticamente o servidor web Nginx e em seguida vai executar o GitLab na URL que você criou.

Depois de concluído, você vai ver a seguinte mensagem em sua tela:

```


```

Abra seu navegador e digite o endereço IP do servidor ou o nome do domínio que você configurou anteriormente. Faça o login como `root` e em seguida será solicitado que crie uma nova senha para acessar o GitLab.

Agora use o usuário `root` e a senha que você acabou de criar para fazer login no GitLab.

![gitlab\_debian9\_sign](https://cm-static.letscloud.io/community/24/install-gitlab-on-debian-9jpg.jpeg)

Você pode alterar o nome de usuário `root` indo em **configurações** e depois apertando em **conta**.

**A partir desse ponto, o seu GitLab foi instalado e executado com sucesso em seu servidor Ubuntu.**

### Etapa 4 - Segurança, criptografando a configuração <a href="#title-5" id="title-5"></a>

O [**Let's Encrypt**](https://letsencrypt.org/) vem **habilitado** por padrão no GitLab se a **url externa** estiver configurado com o com o **https**. Se você usou o **http**, você pode ativar o **Let's Encrypt** editando o arquivo via terminal em **/etc/gitlab/gitlab.rb**.

```
vim /etc/gitlab/gitlab.rb
```

/etc/gitlab/gitlab.rb

\##! For more details on configuring external url see: ##! <https://docs.gitlab.com/omnibus/settings/configuration.html#configuri>... external\_url='<https://example.com>'' letsencrypt\['enable']=true

Salve e feche o arquivo. Execute o seguinte comando para reconfigurar o Gitlab.

```
gitlab-ctl reconfigure
```

Certifique-se de executar `sudo gitlab-ctl reconfigure`após ativar o Let's Encrypt.

### Etapa 5 - Backup do GitLab <a href="#title-6" id="title-6"></a>

Para criar um backup de sua instância do GitLab é preciso apenas um comando. É sempre indicado ter pelo menos um backup por mês.

```
sudo gitlab-rake gitlab:backup:create
```

Por padrão, o backup é armazenado em `/var/opt/gitlab/backups`. Você pode alterar o caminho do backup editando as configurações no arquivo de configuração GitLab em `/etc/gitlab/gitlab.rb`.

Por exemplo, se você deseja armazenar seus backups do GitLab no `/mnt/backups`, faça as seguintes alterações no arquivo `/etc/gitlab/gitlab.rb`.

```
gitlab_rails['backup_path'] = '/mnt/backups'
```

Uma vez feito isso, execute o comando de reconfiguração novamente.

```
gitlab-ctl reconfigure
```

Criar um cron job é uma ótima ideia para fazer seus backups automáticos, assim você não se preocupa em ficar criando eles manualmente.

Segue um exemplo de como criar um backup automático.

```
0 3 * * 2-6 sudo gitlab-rake gitlab:backup:create
```

Exemplos de como usar o componente de agendamento do cron.

* `* * * * *` - Executar o comando a cada minuto.
* `12 * * * *` - Executar o comando 12 minutos após cada hora.
* `0,15,30,45 * * * *` - Executar o comando a cada 15 minutos.
* `*/15 * * * *` - Executar o comando a cada 15 minutos.
* `0 4 * * *` - Executar o comando todo dia às 4:00 AM.
* `0 4 * * 2-4` - Executar o comando toda terça a quarta a quinta-feira às 4:00 AM.
* `20,40 */8 * 7-12 *` - Executar o comando no vigésimo e quadragésimo minuto de cada oitava hora, todos os dias dos últimos 6 meses do ano.

### Etapa 6 - Configuração de e-mail <a href="#title-7" id="title-7"></a>

Por padrão, o GitLab usará Sendmail para enviar e-mails do aplicativo. Se você deseja usar o servidor SMTP do Google em vez do Sendmail padrão, abra o arquivo de configuração GitLab `/etc/gitlab/gitlab.rb` e faça as seguintes alterações.

/etc/gitlab/gitlab.rb

gitlab\_rails \['smtp\_enable'] = verdadeiro gitlab\_rails \['smtp\_address'] = "smtp.gmail.com" gitlab\_rails \['smtp\_port'] = 587 gitlab\_rails \['smtp\_user\_name'] = "<meu.email@gmail.com>" gitlab\_rails \['smtp\_password'] = "minha-senha do Gmail" gitlab\_rails \['smtp\_domain'] = "smtp.gmail.com" gitlab\_rails \['smtp\_authentication'] = "login" gitlab\_rails \['smtp\_enable\_starttls\_auto'] = verdadeiro gitlab\_rails \['smtp\_tls'] = false gitlab\_rails \['smtp\_openssl\_verify\_mode'] = 'peer' # Pode ser: 'none', 'peer', 'client\_once', 'fail\_if\_no\_peer\_cert', consulte <http://api.rubyonrails.org/classes/ActionMailer/Base.html>

Quando terminar, salve o arquivo. Você pode então executar o seguinte comando para que as alterações tenham efeito.

```
sudo gitlab-ctl reconfigure
```

Parabéns! Você instalou e configurou o GitLab em seu Ubuntu.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://liedsons-organization.gitbook.io/gitlab-no-ubuntu/~/changes/v2SMoF2OR3hlOcgvW1pm/instalacao/completa.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
