Instalação do GitLab
+------------------------+
| GitLab Installation |
| |
| Self-Hosted |
| Omnibus Package |
| Docker |
| Kubernetes |
| |
| Múltiplas Opções |
+------------------------+
Por que Instalar o GitLab Self-Hosted? Embora o GitLab.com ofereça uma solução hospedada pronta para uso, existem várias razões convincentes para optar por uma instalação self-hosted:
Vantagens do Self-Hosted GitLab Self-Hosted Controle Personalização SeguranƧa Custo Dados Infraestrutura AtualizaƧƵes ConfiguraƧƵes IntegraƧƵes Hardware Isolamento Compliance PolĆticas internas Licenciamento Economia em escala Casos de Uso Específicos Requisitos de Compliance : Organizações em setores regulamentados (finanças, saúde, governo) precisam manter dados sensíveis em suas próprias infraestruturas.
Ambientes Air-Gapped : Redes isoladas sem acesso à internet exigem soluções locais.
Personalização Avançada : Necessidade de integração profunda com sistemas internos e fluxos de trabalho específicos.
Performance : Controle sobre recursos de hardware para otimizar desempenho em grandes instalações.
Latência Reduzida : Instalação próxima aos desenvolvedores para operações Git mais rápidas.
+------------------------+
| QUANDO ESCOLHER |
| |
| ⢠Dados sensĆveis |
| ⢠Muitos usuÔrios |
| ⢠Integração interna |
| ⢠Controle total |
| ⢠Compliance |
| ⢠Redes isoladas |
+------------------------+
Requisitos de Sistema Hardware Recomendado
+------------------------+
| HARDWARE MĆNIMO |
| |
| ⢠4 CPU cores |
| ⢠8GB RAM |
| ⢠40GB armazenamento |
| |
| RECOMENDADO |
| |
| ⢠8+ CPU cores |
| ⢠16GB+ RAM |
| ⢠SSD 100GB+ |
+------------------------+
Software Necessário Sistema operacional Linux (Ubuntu, Debian, CentOS)
Postfix para envio de emails
Acesso root ou sudo
Métodos de Instalação Omnibus Package (Recomendado)
Ubuntu/Debian
# Adicionar repositório GitLab
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
# Instalar GitLab CE
sudo apt install gitlab-ce
# Configurar e iniciar
sudo gitlab-ctl reconfigure
CentOS/RHEL
# Adicionar repositório GitLab
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
# Instalar GitLab CE
sudo yum install gitlab-ce
# Configurar e iniciar
sudo gitlab-ctl reconfigure
Docker
# Executar GitLab CE
docker run --detach \
--hostname gitlab.exemplo.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
Docker Compose
# docker-compose.yml
version: '3.7'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'gitlab.exemplo.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.exemplo.com'
ports:
- '80:80'
- '443:443'
- '22:22'
volumes:
- '$GITLAB_HOME/config:/etc/gitlab'
- '$GITLAB_HOME/logs:/var/log/gitlab'
- '$GITLAB_HOME/data:/var/opt/gitlab'
Kubernetes (Helm)
# Adicionar repositório Helm
helm repo add gitlab https://charts.gitlab.io/
# Instalar GitLab
helm install gitlab gitlab/gitlab \
--set global.hosts.domain=exemplo.com \
--set global.hosts.externalIP=XX.XX.XX.XX \
--set certmanager-issuer.email=admin@exemplo.com
Configuração Inicial Primeiro Acesso Acesse http://gitlab.exemplo.com
(ou o endereço configurado)
Defina a senha para o usuário root
Faça login com usuário root
e a senha definida
GitLab UsuĆ”rio GitLab UsuĆ”rio Acessa URL Solicita senha root Define senha Redireciona para login Login como root Dashboard admin Configuração de Email
# /etc/gitlab/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "seu-email@gmail.com"
gitlab_rails['smtp_password'] = "sua-senha"
gitlab_rails['smtp_domain'] = "gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = 'gitlab@exemplo.com'
Após editar, aplique as alterações:
sudo gitlab-ctl reconfigure
Atualizações Omnibus Package
# Backup antes de atualizar
sudo gitlab-backup create
# Atualizar pacotes
sudo apt update
sudo apt upgrade gitlab-ce
# Aplicar alteraƧƵes
sudo gitlab-ctl reconfigure
Docker
# Puxar nova imagem
docker pull gitlab/gitlab-ce:latest
# Parar e remover container atual
docker stop gitlab
docker rm gitlab
# Iniciar novo container
docker run --detach \
--hostname gitlab.exemplo.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
Troubleshooting Problemas Comuns Problemas ConexĆ£o Performance ServiƧos Portas Firewall Proxy CPU RAM Disco Nginx Unicorn/Puma Sidekiq Comandos Úteis
# Verificar status
sudo gitlab-ctl status
# Ver logs
sudo gitlab-ctl tail
# Verificar configuração
sudo gitlab-rake gitlab:check
# Reparar permissƵes
sudo gitlab-ctl reconfigure
# Reiniciar serviƧos
sudo gitlab-ctl restart
Instalações Especializadas Alta Disponibilidade
+------------------------+
| ALTA DISPONIBILIDADE |
| |
| ⢠PostgreSQL replicado|
| ⢠Redis redundante |
| ⢠Load balancer |
| ⢠Storage compartilhado|
| ⢠Geo replication |
+------------------------+
Comparação
+------------------------+
| GITLAB.COM |
| ⢠RÔpido para começar |
| ⢠Sem manutenção |
| ⢠Atualizações auto. |
| ⢠Planos gratuitos |
| |
| SELF-HOSTED |
| ⢠Controle total |
| ⢠Personalização |
| ⢠Segurança interna |
| ⢠Integração local |
+------------------------+
Quando Migrar para Self-Hosted Quando sua equipe ultrapassar 100 usuários (potencial economia de custos)
Quando requisitos de compliance exigirem controle total dos dados
Quando precisar de integrações profundas com sistemas internos
Quando a performance se tornar crítica para grandes repositórios
Próximos Passos Tópicos Relacionados Dica Pro : Para ambientes de produção, sempre dimensione os recursos de acordo com o número de usuários e repositórios esperados. O GitLab pode consumir muitos recursos em instalações maiores.
30 abril 2025