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
- Interface Web: https://engenharia-git.bitio.com.br
- SSH Git:
git@44.202.52.17:2223 - Endpoint RDS:
bitio-production-db.cebsmogmsq09.us-east-1.rds.amazonaws.com
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
- Acesse: https://engenharia-git.bitio.com.br
- Você verá a tela de configuração inicial do Forgejo
- 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
- ✅ Revise todas as configurações
- ✅ Clique em "Instalar Forgejo"
- ⏳ Aguarde 30-60 segundos
- 🎉 Você será redirecionado para a tela de login
7. Primeiro Login e Configuração
Após a instalação:
- Login com as credenciais de admin criadas
- Ir para Administração → Painel de Administração
- 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
- Admin → Painel de Administração → Contas de Usuário
- Clique em Criar Conta de Usuário
- Preencha os dados:
Nome de Usuário: desenvolvedor1Email: dev1@bitio.comSenha: [senha segura]
2. Criar Organização
- + → Nova Organização
- Nome:
BITIO - Visibilidade: Privado
- 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
- + → Novo Repositório
- Proprietário: BITIO (organização)
- Nome: nome-do-projeto
- Visibilidade: Privado
- ✅ Inicializar com README
- ✅ 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
- Configurações → Chaves SSH/GPG
- Adicionar Chave
- Título:
Minha Máquina de Desenvolvimento - 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 Git5432/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'