Add global production install and update commands
This commit is contained in:
@@ -20,28 +20,41 @@ Confirme:
|
||||
dig +short condominio.seconectai.com.br
|
||||
```
|
||||
|
||||
## 2. Primeira instalação com um comando
|
||||
## 2. Instalar os comandos globais no servidor
|
||||
|
||||
No servidor, dentro da pasta do projeto:
|
||||
Na primeira vez, você precisa ter este projeto no servidor ou baixar só os scripts. Dentro da pasta do projeto, rode:
|
||||
|
||||
```bash
|
||||
./scripts/install-prod.sh "SENHA_MASTER_AQUI"
|
||||
sudo ./scripts/install-commands.sh
|
||||
```
|
||||
|
||||
O script gera automaticamente:
|
||||
Isso instala dois comandos no servidor:
|
||||
|
||||
```bash
|
||||
seconectaicondominio.install
|
||||
seconectaicondominio.update
|
||||
```
|
||||
|
||||
## 3. Primeira instalação com um comando
|
||||
|
||||
Depois de instalar os comandos globais, rode:
|
||||
|
||||
```bash
|
||||
seconectaicondominio.install 10031992
|
||||
```
|
||||
|
||||
O valor `10031992` é a senha Master inicial. Depois da instalação, você entra no painel Master usando essa senha.
|
||||
|
||||
O comando baixa/atualiza o código do Gitea em `/opt/SeConectai_Condominios`, gera automaticamente o `.env` e sobe o Docker.
|
||||
|
||||
Ele gera automaticamente:
|
||||
|
||||
- `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
|
||||
|
||||
Depois sobe tudo com Docker Compose:
|
||||
|
||||
```bash
|
||||
docker compose -f docker-compose.prod.yml up -d --build
|
||||
```
|
||||
- `MASTER_PASSWORD_HASH` a partir da senha Master inicial
|
||||
|
||||
Acesse:
|
||||
|
||||
@@ -49,32 +62,35 @@ Acesse:
|
||||
https://condominio.seconectai.com.br
|
||||
```
|
||||
|
||||
## 3. Atualizar o sistema depois de novos commits
|
||||
## 4. Atualizar o sistema depois de novos commits
|
||||
|
||||
No servidor, dentro da pasta do projeto:
|
||||
No servidor, rode de qualquer pasta:
|
||||
|
||||
```bash
|
||||
seconectaicondominio.update
|
||||
```
|
||||
|
||||
Esse comando entra em `/opt/SeConectai_Condominios`, baixa as atualizações do Gitea e recria os containers Docker.
|
||||
|
||||
## 5. Alternativa sem comandos globais
|
||||
|
||||
Se preferir rodar pela pasta do projeto:
|
||||
|
||||
```bash
|
||||
./scripts/install-prod.sh "SENHA_MASTER_INICIAL"
|
||||
./scripts/update-prod.sh
|
||||
```
|
||||
|
||||
Esse comando faz:
|
||||
## 6. Logs úteis
|
||||
|
||||
```bash
|
||||
git fetch
|
||||
git pull --ff-only
|
||||
docker compose -f docker-compose.prod.yml up -d --build --remove-orphans
|
||||
docker compose -f /opt/SeConectai_Condominios/docker-compose.prod.yml ps
|
||||
docker compose -f /opt/SeConectai_Condominios/docker-compose.prod.yml logs -f app
|
||||
docker compose -f /opt/SeConectai_Condominios/docker-compose.prod.yml logs -f evolution-api
|
||||
docker compose -f /opt/SeConectai_Condominios/docker-compose.prod.yml logs -f caddy
|
||||
```
|
||||
|
||||
## 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
|
||||
## 7. Testes
|
||||
|
||||
```bash
|
||||
curl -I https://condominio.seconectai.com.br
|
||||
@@ -87,20 +103,26 @@ Resposta esperada:
|
||||
{"status":"ok"}
|
||||
```
|
||||
|
||||
## 6. Webhook AbacatePay
|
||||
## 8. Webhook AbacatePay
|
||||
|
||||
Depois da instalação, o script mostra o link completo. O formato é:
|
||||
|
||||
```text
|
||||
https://condominio.seconectai.com.br/api/master/webhooks/abacpay?webhookSecret=SEU_SEGREDO
|
||||
```
|
||||
|
||||
O endpoint correto no sistema é:
|
||||
|
||||
```text
|
||||
https://condominio.seconectai.com.br/api/master/webhooks/abacatepay?webhookSecret=SEU_SEGREDO
|
||||
```
|
||||
|
||||
Use o valor gerado em `ABACATEPAY_WEBHOOK_SECRET` no `.env`.
|
||||
|
||||
## 7. Observações
|
||||
## 9. Observações
|
||||
|
||||
- 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.
|
||||
- Uploads ficam em `/opt/SeConectai_Condominios/uploads` no servidor.
|
||||
- Faça backup dos volumes Docker e da pasta `uploads`.
|
||||
|
||||
@@ -47,3 +47,19 @@ mvn clean package
|
||||
```
|
||||
|
||||
O JAR executável é gerado em `target/condocontab-0.1.0.jar`.
|
||||
|
||||
## Deploy rápido em produção
|
||||
|
||||
Depois de instalar os comandos globais no servidor:
|
||||
|
||||
```bash
|
||||
seconectaicondominio.install SENHA_MASTER_INICIAL
|
||||
```
|
||||
|
||||
Para atualizar depois de novos commits:
|
||||
|
||||
```bash
|
||||
seconectaicondominio.update
|
||||
```
|
||||
|
||||
Veja detalhes em [DEPLOY.md](DEPLOY.md).
|
||||
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
install -m 0755 scripts/seconectaicondominio.install /usr/local/bin/seconectaicondominio.install
|
||||
install -m 0755 scripts/seconectaicondominio.update /usr/local/bin/seconectaicondominio.update
|
||||
|
||||
echo "Comandos instalados:"
|
||||
echo " seconectaicondominio.install SENHA_MASTER_INICIAL"
|
||||
echo " seconectaicondominio.update"
|
||||
Executable
+43
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
REPO_URL="${REPO_URL:-https://producao-gitea.0jo7zj.easypanel.host/tiago/Condominio_SeConectai.git}"
|
||||
INSTALL_DIR="${INSTALL_DIR:-/opt/SeConectai_Condominios}"
|
||||
BRANCH="${BRANCH:-main}"
|
||||
DOMAIN="${DOMAIN:-condominio.seconectai.com.br}"
|
||||
|
||||
if [[ $# -lt 1 || -z "${1:-}" ]]; then
|
||||
echo "Uso: seconectaicondominio.install SENHA_MASTER_INICIAL"
|
||||
echo "Exemplo: seconectaicondominio.install 10031992"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
MASTER_PASSWORD="$1"
|
||||
|
||||
if ! command -v git >/dev/null 2>&1; then
|
||||
echo "Erro: git nao encontrado. Instale com: apt update && apt install -y git"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v docker >/dev/null 2>&1; then
|
||||
echo "Erro: Docker nao encontrado. Instale Docker antes de continuar."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$(dirname "$INSTALL_DIR")"
|
||||
|
||||
if [[ -d "$INSTALL_DIR/.git" ]]; then
|
||||
echo "Repositorio ja existe em $INSTALL_DIR. Atualizando codigo..."
|
||||
git -C "$INSTALL_DIR" fetch origin "$BRANCH"
|
||||
git -C "$INSTALL_DIR" checkout "$BRANCH"
|
||||
git -C "$INSTALL_DIR" pull --ff-only origin "$BRANCH"
|
||||
else
|
||||
if [[ -e "$INSTALL_DIR" && -n "$(ls -A "$INSTALL_DIR" 2>/dev/null || true)" ]]; then
|
||||
echo "Erro: $INSTALL_DIR ja existe e nao esta vazio."
|
||||
exit 1
|
||||
fi
|
||||
git clone --branch "$BRANCH" "$REPO_URL" "$INSTALL_DIR"
|
||||
fi
|
||||
|
||||
cd "$INSTALL_DIR"
|
||||
DOMAIN="$DOMAIN" ./scripts/install-prod.sh "$MASTER_PASSWORD"
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
INSTALL_DIR="${INSTALL_DIR:-/opt/SeConectai_Condominios}"
|
||||
BRANCH="${BRANCH:-main}"
|
||||
|
||||
if [[ ! -d "$INSTALL_DIR/.git" ]]; then
|
||||
echo "Erro: repositorio nao encontrado em $INSTALL_DIR. Rode primeiro: seconectaicondominio.install SENHA_MASTER_INICIAL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd "$INSTALL_DIR"
|
||||
BRANCH="$BRANCH" ./scripts/update-prod.sh
|
||||
Reference in New Issue
Block a user