Files
2026-09-29 14:25:37 -03:00

79 lines
2.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
DOMAIN="${DOMAIN:-condominio.seconectai.com.br}"
COMPOSE_FILE="${COMPOSE_FILE:-docker-compose.prod.yml}"
ENV_FILE="${ENV_FILE:-.env}"
if [[ ! -f "$COMPOSE_FILE" ]]; then
echo "Erro: $COMPOSE_FILE nao encontrado. Rode este script na raiz do projeto."
exit 1
fi
if ! command -v docker >/dev/null 2>&1; then
echo "Erro: Docker nao encontrado. Instale Docker e Docker Compose plugin antes de continuar."
exit 1
fi
if [[ $# -gt 0 ]]; then
MASTER_PASSWORD="$1"
else
read -rsp "Senha Master: " MASTER_PASSWORD
echo
fi
if [[ -z "${MASTER_PASSWORD:-}" ]]; then
echo "Erro: senha Master vazia."
exit 1
fi
secret() {
openssl rand -base64 32 | tr -d '\n'
}
urlencode() {
python3 -c 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=""))' "$1"
}
hash_master() {
docker run --rm httpd:2.4-alpine htpasswd -bnBC 12 "" "$1" | tr -d ':\n' | sed 's/^\$2y\$/\$2a\$/'
}
DB_PASSWORD="$(secret)"
JWT_SECRET="$(secret)"
EVOLUTION_GLOBAL_API_KEY="$(secret)"
EVOLUTION_WEBHOOK_SECRET="$(secret)"
ABACATEPAY_WEBHOOK_SECRET="$(secret)"
MASTER_PASSWORD_HASH="$(hash_master "$MASTER_PASSWORD")"
DB_PASSWORD_URL="$(urlencode "$DB_PASSWORD")"
cat > "$ENV_FILE" <<EOF_ENV
DB_PASSWORD=$DB_PASSWORD
MASTER_PASSWORD_HASH='$MASTER_PASSWORD_HASH'
JWT_SECRET=$JWT_SECRET
APP_PUBLIC_URL=https://$DOMAIN
ABACATEPAY_API_KEY=
ABACATEPAY_WEBHOOK_SECRET=$ABACATEPAY_WEBHOOK_SECRET
EVOLUTION_GLOBAL_API_KEY=$EVOLUTION_GLOBAL_API_KEY
EVOLUTION_WEBHOOK_SECRET=$EVOLUTION_WEBHOOK_SECRET
EVOLUTION_API_URL=http://evolution-api:8080
EVOLUTION_PUBLIC_URL=https://$DOMAIN/evolution
EVOLUTION_DATABASE_CONNECTION_URI=postgresql://app:$DB_PASSWORD_URL@postgres:5432/evolution
EOF_ENV
mkdir -p uploads
docker compose -f "$COMPOSE_FILE" up -d --build
echo
echo "Instalacao concluida."
echo "URL: https://$DOMAIN"
echo "Health: https://$DOMAIN/health"
echo "Webhook AbacatePay: https://$DOMAIN/api/master/webhooks/abacatepay?webhookSecret=$ABACATEPAY_WEBHOOK_SECRET"
echo "Webhook Evolution respostas: https://$DOMAIN/api/webhooks/evolution/respostas com header X-Webhook-Secret: $EVOLUTION_WEBHOOK_SECRET"
echo
echo "Guarde a senha Master informada. Os demais segredos foram gerados em $ENV_FILE."