Add automated production deploy scripts

This commit is contained in:
Tiago
2026-09-29 12:31:04 -03:00
parent c435bb5e23
commit 11429790c3
3 changed files with 143 additions and 28 deletions
+45 -28
View File
@@ -14,49 +14,65 @@ Valor: 45.13.59.110
TTL: 300 ou automático
```
Aguarde a propagação e confirme:
Confirme:
```bash
dig +short condominio.seconectai.com.br
```
Deve retornar `45.13.59.110`.
## 2. Primeira instalação com um comando
## 2. Servidor
Instale Docker e Docker Compose Plugin no servidor. Libere no firewall:
No servidor, dentro da pasta do projeto:
```bash
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 22/tcp
sudo ufw enable
./scripts/install-prod.sh "SENHA_MASTER_AQUI"
```
## 3. Código e variáveis
O script gera automaticamente:
No servidor, envie ou clone o projeto. Dentro da pasta do projeto:
- `DB_PASSWORD`
- `JWT_SECRET`
- `EVOLUTION_GLOBAL_API_KEY`
- `ABACATEPAY_WEBHOOK_SECRET`
- `EVOLUTION_DATABASE_CONNECTION_URI` com senha URL-encoded
- `MASTER_PASSWORD_HASH` a partir da senha Master informada
```bash
cp .env.production.example .env
nano .env
```
Preencha senhas e chaves reais. Não suba `.env` para Git.
## 4. Subir produção
Depois sobe tudo com Docker Compose:
```bash
docker compose -f docker-compose.prod.yml up -d --build
```
Acompanhe logs:
Acesse:
```bash
docker compose -f docker-compose.prod.yml logs -f app caddy
```text
https://condominio.seconectai.com.br
```
Caddy emitirá HTTPS automaticamente para `https://condominio.seconectai.com.br`.
## 3. Atualizar o sistema depois de novos commits
No servidor, dentro da pasta do projeto:
```bash
./scripts/update-prod.sh
```
Esse comando faz:
```bash
git fetch
git pull --ff-only
docker compose -f docker-compose.prod.yml up -d --build --remove-orphans
```
## 4. Logs úteis
```bash
docker compose -f docker-compose.prod.yml ps
docker compose -f docker-compose.prod.yml logs -f app
docker compose -f docker-compose.prod.yml logs -f evolution-api
docker compose -f docker-compose.prod.yml logs -f caddy
```
## 5. Testes
@@ -65,7 +81,7 @@ curl -I https://condominio.seconectai.com.br
curl https://condominio.seconectai.com.br/health
```
Resposta esperada do health:
Resposta esperada:
```json
{"status":"ok"}
@@ -73,17 +89,18 @@ Resposta esperada do health:
## 6. Webhook AbacatePay
Configure no AbacatePay:
Depois da instalação, o script mostra o link completo. O formato é:
```text
https://condominio.seconectai.com.br/api/master/webhooks/abacatepay?webhookSecret=SEU_SEGREDO
```
Use o mesmo valor de `ABACATEPAY_WEBHOOK_SECRET`.
Use o valor gerado em `ABACATEPAY_WEBHOOK_SECRET` no `.env`.
## 7. Observações
- Em produção, Postgres e Redis não ficam publicados na internet.
- O app fica atrás do Caddy, com HTTPS automático.
- O arquivo `.env` gerado contém segredos reais e não deve ir para Git.
- Postgres e Redis não ficam publicados na internet no compose de produção.
- Caddy emite HTTPS automaticamente.
- Uploads ficam em `./uploads` no servidor.
- Faça backup dos volumes Docker e da pasta `uploads`.