79 lines
2.2 KiB
Bash
Executable File
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."
|