Pular para o conteúdo principal

Servidor Git BITIO - Configuração Completa

Este documento detalha a configuração completa do servidor Git BITIO usando Forgejo + PostgreSQL RDS na AWS.

📋 Visão Geral

Arquitetura Implementada:

  • Forgejo: Servidor Git auto-hospedado
  • PostgreSQL 18.4: Banco RDS gerenciado na AWS (LTS até ~2031)
  • Docker Compose: Orquestração dos serviços
  • Nginx: Reverse proxy com SSL (Let's Encrypt)
  • Security Groups: Acesso controlado via AWS

🚀 Acesso ao Sistema

URLs de Acesso

Credenciais do Banco

Importante: Credenciais não devem ser armazenadas em documentação. Consulte o gerenciador de senhas da equipe.

Host: bitio-production-db.cebsmogmsq09.us-east-1.rds.amazonaws.com
Port: 5432
Database: bitio_prod
User: bitio_user
Password: [consulte gerenciador de senhas]

⚙️ Configuração Inicial do Forgejo

1. Primeiro Acesso

  1. Acesse: https://engenharia-git.bitio.com.br
  2. Você verá a tela de configuração inicial do Forgejo
  3. SIGA EXATAMENTE as configurações abaixo

2. Configurações de Banco de Dados ⚠️ NÃO ALTERE

Os campos devem estar assim (já pré-configurados):

Tipo de banco de dados: PostgreSQL
Servidor: bitio-production-db.cebsmogmsq09.us-east-1.rds.amazonaws.com:5432
Nome de usuário: bitio_user
Senha: [consulte gerenciador de senhas]
Nome do banco de dados: bitio_prod
SSL: ✅ (habilitado)
Esquema: [deixe em branco]

3. Configurações Gerais ✏️ CONFIGURE ASSIM

Título do servidor: BITIO Git Repository
Slogan do servidor: Repositório Git Corporativo da BITIO
Caminho raiz do repositório: /data/git/repositories [NÃO ALTERE]
Caminho raiz do Git LFS: /data/lfs [NÃO ALTERE]
Executar como usuário: git [NÃO ALTERE]
Domínio do servidor: engenharia-git.bitio.com.br
Porta do servidor SSH: 2223
Porta HTTP: 3000 [NÃO ALTERE]
URL base: https://engenharia-git.bitio.com.br/
Caminho dos arquivos de registro: /data/gitea/log [NÃO ALTERE]

Configurações de Segurança:
✅ Desabilitar auto-cadastro de usuário
❌ Verificar atualizações do Forgejo

4. Configurações do Servidor e Serviços de Terceiros

Configure conforme ambiente corporativo seguro:

Servidor e Terceiros:
✅ Desabilitar redes de entrega de conteúdo de terceiros
✅ Desabilitar o gravatar e avatar de fontes de terceiros
❌ Habilitar a busca federativa de avatares (libravatar)

Autenticação:
❌ Habilitar o acesso de usuários via OpenID
❌ Permitir cadastro somente por meio de serviços externos
❌ Habilitar o auto-cadastro com base no OpenID
❌ Impor validação por CAPTCHA para cadastro
✅ Limitar o acesso de página aos usuários autenticados

Usuários:
✅ Ocultar endereços de e-mail de novas contas por padrão
❌ Permitir que novas contas criem organizações por padrão
✅ Habilitar o cronômetro para novos repositórios por padrão

Email e Segurança:
Domínio de e-mail oculto: noreply.bitio.com
Algoritmo de hash de senhas: argon2

5. Criar Conta de Administrador OBRIGATÓRIO

Dados Sugeridos:

Usuário: admin
Endereço de e-mail: admin@bitio.com
Senha: BitioAdmin2026! [ou escolha uma senha forte]
Confirmar senha: BitioAdmin2026!

⚠️ IMPORTANTE: Anote estas credenciais! Você precisará delas para fazer login.

6. Finalizar Instalação

  1. ✅ Revise todas as configurações
  2. ✅ Clique em "Instalar Forgejo"
  3. ⏳ Aguarde 30-60 segundos
  4. 🎉 Você será redirecionado para a tela de login

7. Primeiro Login e Configuração

Após a instalação:

  1. Login com as credenciais de admin criadas
  2. Ir para AdministraçãoPainel de Administração
  3. Configurações adicionais recomendadas:
Configurações de Repositório:
- Repositórios privados por padrão: ✅ Habilitado
- Permitir fork de repositórios privados: ❌ Desabilitado
- Máximo de repositórios por usuário: 50

Configurações de Segurança:
- Força HTTPS: ❌ (será configurado posteriormente)
- Política de senha mínima: 8 caracteres
- Requer validação de email: ❌ (ambiente interno)

🔧 Configurações Avançadas

Arquivo de Configuração

Localização: /mnt/forgejo_data/forgejo/gitea/conf/app.ini

Principais seções:

[server]
APP_NAME = BITIO Git Repository
RUN_MODE = prod
HTTP_PORT = 3000
ROOT_URL = https://engenharia-git.bitio.com.br/
DISABLE_SSH = false
SSH_PORT = 2223

[database]
DB_TYPE = postgres
HOST = bitio-production-db.cebsmogmsq09.us-east-1.rds.amazonaws.com:5432
NAME = bitio_prod
USER = bitio_user
PASSWD = [consulte gerenciador de senhas]
SSL_MODE = require

[security]
INSTALL_LOCK = true
SECRET_KEY = [gerado automaticamente]

Configurações de Repositório

Repositórios Privados por Padrão

[repository]
DEFAULT_PRIVATE = true
MAX_CREATION_LIMIT = 100
DISABLE_MIGRATIONS = false
ENABLE_PUSH_CREATE_USER = true
ENABLE_PUSH_CREATE_ORG = true

Configurações de Branch

[repository.local]
LOCAL_COPY_PATH = tmp/local-repo

[repository.upload]
TEMP_PATH = data/tmp/uploads

👥 Gerenciamento de Usuários

1. Criar Usuários via Interface

  1. AdminPainel de AdministraçãoContas de Usuário
  2. Clique em Criar Conta de Usuário
  3. Preencha os dados:
    Nome de Usuário: desenvolvedor1
    Email: dev1@bitio.com
    Senha: [senha segura]

2. Criar Organização

  1. +Nova Organização
  2. Nome: BITIO
  3. Visibilidade: Privado
  4. Adicionar membros conforme necessário

3. Configurar Equipes

Equipe: Desenvolvedores
Permissões: Leitura/Escrita
Repositórios: Atribuir conforme necessário

Equipe: DevOps
Permissões: Admin
Repositórios: Acesso completo

🗂️ Criando Repositórios

1. Via Interface Web

  1. +Novo Repositório
  2. Proprietário: BITIO (organização)
  3. Nome: nome-do-projeto
  4. Visibilidade: Privado
  5. Inicializar com README
  6. Adicionar .gitignore (escolher template)

2. Via Git Local

# Criar repositório local
mkdir meu-projeto
cd meu-projeto
git init

# Configurar remote (via SSH)
git remote add origin ssh://git@44.202.52.17:2223/BITIO/meu-projeto.git

# Ou via HTTPS
git remote add origin https://engenharia-git.bitio.com.br/BITIO/meu-projeto.git

# Primeiro commit
echo "# Meu Projeto" > README.md
git add README.md
git commit -m "Initial commit"

# Push para servidor
git push -u origin main

🔑 Configuração SSH

1. Gerar Chave SSH

# Gerar nova chave SSH
ssh-keygen -t ed25519 -C "seu-email@bitio.com"

# Adicionar ao ssh-agent
ssh-add ~/.ssh/id_ed25519

2. Adicionar Chave ao Forgejo

  1. ConfiguraçõesChaves SSH/GPG
  2. Adicionar Chave
  3. Título: Minha Máquina de Desenvolvimento
  4. Conteúdo: Copie o conteúdo de ~/.ssh/id_ed25519.pub

3. Testar Conexão

# Testar SSH
ssh -p 2223 git@44.202.52.17

# Deve retornar algo como:
# Hi username! You've successfully authenticated, but Forgejo does not provide shell access.

🔧 Comandos de Manutenção

Acesso SSH ao Servidor

ssh -i ~/.ssh/bitio-server-key.pem ubuntu@44.202.52.17

Verificar Status dos Containers

cd /opt/bitio
docker-compose ps

Ver Logs

# Logs do Forgejo
docker-compose logs forgejo

# Logs em tempo real
docker-compose logs -f forgejo

Reiniciar Serviços

# Reiniciar apenas o Forgejo
docker-compose restart forgejo

# Reiniciar todos os serviços
docker-compose restart

# Parar todos
docker-compose down

# Iniciar novamente
docker-compose up -d

Backup dos Dados

# Backup dos repositórios e configurações
sudo tar -czf forgejo-backup-$(date +%Y%m%d).tar.gz /mnt/forgejo_data/forgejo

# Backup do banco (RDS tem backup automático de 7 dias)
# Para backup manual, use pg_dump com a senha do gerenciador de senhas

🔒 Configurações de Segurança

1. Webhook Security

[webhook]
ALLOWED_HOST_LIST = 192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,127.0.0.0/8

2. Rate Limiting

[api]
ENABLE_SWAGGER = false
MAX_RESPONSE_ITEMS = 50

[service]
DEFAULT_KEEP_EMAIL_PRIVATE = true
DEFAULT_ALLOW_CREATE_ORGANIZATION = false

3. Configurações de Sessão

[session]
PROVIDER = file
PROVIDER_CONFIG = data/sessions
COOKIE_SECURE = true
COOKIE_HTTPONLY = true

📊 Monitoramento

Métricas do Sistema

# Uso de espaço dos repositórios
du -sh /mnt/forgejo_data/forgejo/

# Status dos containers
docker stats 2biz-forgejo

# Conexões ativas no banco (use senha do gerenciador de senhas)
psql -h bitio-production-db.cebsmogmsq09.us-east-1.rds.amazonaws.com -U bitio_user -d bitio_prod -c "SELECT count(*) FROM pg_stat_activity;"

Logs Importantes

# Logs de acesso
tail -f /mnt/forgejo_data/forgejo/gitea/log/gitea.log

# Logs de push/pull
docker-compose logs forgejo | grep -i "git-upload-pack\|git-receive-pack"

🛠️ Troubleshooting

Problema de Conexão com Banco

# Testar conexão manual (use senha do gerenciador de senhas)
psql -h bitio-production-db.cebsmogmsq09.us-east-1.rds.amazonaws.com -U bitio_user -d bitio_prod -c "SELECT version();"

# Verificar security groups no AWS
aws ec2 describe-security-groups --group-ids sg-0ef73a08118d63f73

Problema de SSH

# Testar conectividade SSH do Git
nc -zv 44.202.52.17 2223

# Debug SSH
ssh -vvv -p 2223 git@44.202.52.17

Container não Inicia

# Verificar logs detalhados
cd /opt/bitio
docker-compose logs forgejo

# Verificar configuração
sudo cat /mnt/forgejo_data/forgejo/gitea/conf/app.ini

# Recriar container
docker-compose down
docker-compose up -d

📞 Informações Técnicas

Especificações:

  • OS: Ubuntu 22.04 LTS
  • Servidor: EC2 t3.small (2 vCPU, 2GB RAM)
  • IP Público: 44.202.52.17
  • Docker: Compose v2
  • PostgreSQL: 18.4 (RDS)
  • Forgejo: 8
  • Recursos RDS: db.t3.micro (20GB GP2)
  • Backup: Automático (7 dias)
  • SSL: Let's Encrypt (auto-renovação)

Portas Utilizadas:

  • 443/tcp → HTTPS (Nginx proxy)
  • 80/tcp → HTTP (redirect para HTTPS)
  • 2223/tcp → SSH Git
  • 5432/tcp → PostgreSQL (RDS, interno)

Importante: Mantenha este documento atualizado conforme as mudanças na configuração. Para dúvidas técnicas, consulte a documentação oficial do Forgejo.

🔧 Guia Completo de Configuração Inicial

Checklist de Configuração Passo a Passo

Configuração de Banco de Dados (NÃO ALTERE)

  • Tipo: PostgreSQL
  • Servidor: bitio-production-db.cebsmogmsq09.us-east-1.rds.amazonaws.com:5432
  • Usuário: bitio_user
  • Senha: [consulte gerenciador de senhas]
  • Banco: bitio_prod

Configurações Gerais (CONFIGURE)

  • Título: BITIO Git Repository
  • URL Base: https://engenharia-git.bitio.com.br/
  • Domínio SSH: engenharia-git.bitio.com.br
  • Porta SSH: 2223

Segurança (IMPORTANTE)

  • ✅ Desabilitar auto-cadastro
  • ✅ Limitar acesso a usuários autenticados
  • ✅ Ocultar emails por padrão
  • ❌ OpenID desabilitado

Conta Admin (CRIAR)

  • Usuário: admin
  • Email: admin@bitio.com
  • Senha: [sua senha segura]

Troubleshooting Configuração Inicial

Resetar se Necessário

ssh -i ~/.ssh/bitio-server-key.pem ubuntu@44.202.52.17 '
cd /opt/bitio && docker-compose down &&
sudo rm -f /mnt/forgejo_data/forgejo/gitea/conf/app.ini &&
docker-compose up -d'

Recuperar Senha Admin

ssh -i ~/.ssh/bitio-server-key.pem ubuntu@44.202.52.17 'cd /opt/bitio &&
docker-compose exec forgejo gitea admin user change-password \
--username admin --password NovaSenh@123'