Add automated production deploy scripts
This commit is contained in:
@@ -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`.
|
||||
|
||||
Reference in New Issue
Block a user