Setup do Servidor — Sprint 0
Pré-requisitos
- Servidor Hetzner CCX33 provisionado (Ubuntu 24.04)
- Domínio funilchatbot.com.br no Cloudflare
- Chave SSH local gerada
1. Configurar DNS (Cloudflare)
A funilchatbot.com.br → IP_DO_SERVIDOR Proxy: ON
A api.funilchatbot.com.br → IP_DO_SERVIDOR Proxy: OFF ← WebSocket!
A docs.funilchatbot.com.br → IP_DO_SERVIDOR Proxy: ON
A hml.funilchatbot.com.br → IP_DO_SERVIDOR Proxy: ON
A monitor.funilchatbot.com.br → IP_DO_SERVIDOR Proxy: OFF
2. Hardening do servidor
# Mudar porta SSH
sed -i 's/#Port 22/Port 2847/' /etc/ssh/sshd_config
systemctl restart sshd
# Atualizar sistema
apt update && apt upgrade -y
apt install -y git curl wget unzip ufw fail2ban jq
# Docker
curl -fsSL https://get.docker.com | sh
# Firewall
ufw default deny incoming
ufw allow 2847/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
3. Clonar e configurar
cd /root
git clone git@github.com:ebuz-ia/funil-chatbot.git
cd funil-chatbot
cp .env.example .env
nano .env # preencher todos os SECRETs
# Gerar segredos
openssl rand -hex 32 # JWT_SECRET
openssl rand -hex 32 # REFRESH_TOKEN_SECRET
openssl rand -hex 32 # ENCRYPTION_KEY
4. Subir containers
# Infra primeiro
docker compose up -d postgres redis minio
sleep 10
# Rodar migrations
docker compose run --rm funil-api node dist/db/migrate.js
# Subir tudo
docker compose up -d
docker compose ps # todos devem estar "Up"
5. Verificação final
curl https://api.funilchatbot.com.br/health
# → {"status":"ok"}
curl https://funilchatbot.com.br
# → HTML da SPA