Guia de Setup - Servidor de Ferramentas
Pré-requisitos
Infraestrutura AWS
- ✅ VPC BITIO configurada
- ✅ Subnet pública criada
- ✅ Security Groups configurados
- ✅ Chave SSH configurada
- ✅ AWS CLI configurado com profile
bitio
Acesso Local
- SSH client instalado
- Acesso à AWS Console (opcional)
🚀 Deploy Automático via Terraform
1. Configuração do Terraform
# Navegar para diretório de infraestrutura
cd apps/infrastructure
# Configurar profile AWS
export AWS_PROFILE=bitio
# Verificar configuração
aws sts get-caller-identity
2. Variáveis de Configuração
Edite terraform.tfvars para habilitar o servidor:
# Ferramentas - Tools Server
enable_tools_server = true # Habilitar servidor
tools_instance_type = "t3.micro" # Tipo da instância
tools_data_volume_size = 15 # Volume de dados (GB)
3. Deploy da Infraestrutura
# Inicializar Terraform (se necessário)
terraform init
# Planejar mudanças
terraform plan
# Aplicar infraestrutura
terraform apply
Saída esperada:
Apply complete! Resources: 8 added, 0 changed, 0 destroyed.
Outputs:
tools_access_info = {
"forgejo_web_url" = "http://3.208.54.208"
"pritunl_web_url" = "https://3.208.54.208:9443"
"ssh_direct" = "ssh ubuntu@3.208.54.208"
"wireguard_endpoint" = "3.208.54.208:51820"
}
🔧 Configuração Manual dos Serviços
1. Conexão SSH
# Conectar ao servidor
ssh ubuntu@3.208.54.208
# Verificar status da instalação
cat /mnt/forgejo_data/installation-status.txt
2. Verificar Serviços
# Status dos containers Docker
docker ps
# Logs dos serviços
docker logs forgejo -f
docker logs pritunl -f
📋 Pós-Instalação
1. Configurar Forgejo
- Acesse: http://3.208.54.208
- Setup inicial:
- Database Type: PostgreSQL
- Host: forgejo-db:5432
- Database: forgejo
- Username: forgejo
- Password: forgejo123
- Configurações gerais:
- Site Title: "BITIO Git Server"
- Repository Root Path: /data/git/repositories
- Git LFS Root Path: /data/lfs
- Conta de administrador:
- Criar usuário admin
- Email corporativo
- Senha forte
2. Configurar Pritunl VPN
- Acesse: https://3.208.54.208:9443
- Setup key:
45270ac66ac440d68e1a6fd72ce5205b - Initial setup:
- Criar usuário administrador
- Definir senha do admin
- Configurar organização:
- Nome: "BITIO"
- Criar servidores VPN conforme necessário
3. Configurar SSL (Opcional)
# Instalar Certbot para Let's Encrypt
sudo apt install certbot python3-certbot-nginx
# Obter certificado SSL
sudo certbot --nginx -d seudominio.com
# Certificado será renovado automaticamente
🛡️ Configurações de Segurança
Firewall (UFW)
# Status do firewall
sudo ufw status
# Regras configuradas:
# 22/tcp - SSH (restrito)
# 80/tcp - HTTP (Forgejo)
# 443/tcp - HTTPS
# 2222/tcp - SSH Git (Forgejo)
# 9443/tcp - Pritunl Admin
# 51820/udp - WireGuard VPN
Backup de Dados
# Volume de dados persistente
df -h /mnt/forgejo_data
# Estrutura de diretórios
/mnt/forgejo_data/
├── forgejo/ # Dados do Forgejo
├── pritunl/ # Configurações VPN
├── backups/ # Backups locais
└── installation-status.txt
🔍 Verificação de Setup
Teste de Conectividade
# Teste HTTP (Forgejo)
curl -I http://3.208.54.208
# Teste SSH Git
ssh -T git@3.208.54.208 -p 2222
# Teste HTTPS (Pritunl)
curl -k -I https://3.208.54.208:9443
Logs de Sistema
# Logs de inicialização
tail -f /var/log/bitio-tools-init.log
# Logs do Docker
docker logs forgejo --tail 50
docker logs pritunl --tail 50
# Logs do Nginx
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
⚠️ Troubleshooting
SSH Connection Refused
- Causa: Reboot automático durante inicialização
- Solução: Aguardar 3-5 minutos após deploy
Docker Containers Not Starting
# Verificar status
docker ps -a
# Restart containers
cd /mnt/forgejo_data/forgejo && docker compose restart
cd /mnt/forgejo_data/pritunl && docker compose restart
Disk Space Issues
# Verificar espaço
df -h /mnt/forgejo_data
# Limpeza de logs Docker
docker system prune -f