Primer commit - setup evolution api

main
elmer-20 6 days ago
parent 71a59afbd3
commit d4b1ac55a2

@ -7,7 +7,7 @@ services:
- redis
- postgres
ports:
- ${EVOLUTION_API_PORT}:8080
- 127.0.0.1:${EVOLUTION_API_PORT}:8080
volumes:
- evolution_instances:/evolution/instances
networks:
@ -24,11 +24,12 @@ services:
- evolution-net
container_name: redis
command: >
redis-server --port 6379 --appendonly yes
redis-server --port 6379 --appendonly yes --requirepass ${REDIS_PASSWORD}
volumes:
- evolution_redis:/data
ports:
- ${REDIS_PORT}:6379
# Sin 'ports': solo accesible dentro de la red Docker interna
expose:
- 6379
postgres:
container_name: postgres
@ -38,13 +39,11 @@ services:
command:
["postgres", "-c", "max_connections=1000", "-c", "listen_addresses=*"]
restart: always
ports:
- ${POSTGRESS_PORT}:5432
# Sin 'ports': solo accesible dentro de la red Docker interna
environment:
- POSTGRES_USER=${POSTGRESS_USER}
- POSTGRES_PASSWORD=${POSTGRESS_PASS}
- POSTGRES_DB=evolution
- POSTGRES_HOST_AUTH_METHOD=trust
volumes:
- postgres_data:/var/lib/postgresql/data
expose:

@ -4,10 +4,10 @@ set -euo pipefail
# Colores ANSI
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m' # No Color (reset)
NC='\033[0m'
# ─────────────────────────────────────────────────────────────────────────────
# Cargar variables de entorno del .env (requiere que exista en el mismo directorio)
# Cargar variables de entorno del .env
# ─────────────────────────────────────────────────────────────────────────────
if [[ -f .env ]]; then
set -a && source .env && set +a
@ -16,12 +16,11 @@ else
exit 1
fi
# ─────────────────────────────────────────────────────────────────────────────
# Determinar protocolo y configuración de cookie según N8N_HOST
# ─────────────────────────────────────────────────────────────────────────────
# Obtener IP pública (global)
PUBLIC_IP=$(curl -s http://checkip.amazonaws.com || curl -s https://icanhazip.com)
# Validar variables obligatorias
: "${EVOLUTION_API_PORT:?Falta EVOLUTION_API_PORT en .env}"
: "${POSTGRESS_USER:?Falta POSTGRESS_USER en .env}"
: "${POSTGRESS_PASS:?Falta POSTGRESS_PASS en .env}"
: "${REDIS_PASSWORD:?Falta REDIS_PASSWORD en .env}"
# ─────────────────────────────────────────────────────────────────────────────
# Actualizar repositorios y paquetes
@ -29,17 +28,18 @@ PUBLIC_IP=$(curl -s http://checkip.amazonaws.com || curl -s https://icanhazip.co
sudo apt update
# ─────────────────────────────────────────────────────────────────────────────
# Instalar prerequisitos (si faltan)
# Instalar prerequisitos
# ─────────────────────────────────────────────────────────────────────────────
sudo apt install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
lsb-release \
netcat-openbsd
# ─────────────────────────────────────────────────────────────────────────────
# Instalación de Docker (si no está instalado)
# Instalación de Docker
# ─────────────────────────────────────────────────────────────────────────────
if ! command -v docker >/dev/null 2>&1; then
echo "Docker no encontrado. Instalando Docker..."
@ -56,7 +56,7 @@ else
fi
# ─────────────────────────────────────────────────────────────────────────────
# Instalación de Docker Compose CLI plugin (si no está instalado)
# Instalación de Docker Compose CLI plugin
# ─────────────────────────────────────────────────────────────────────────────
if ! docker compose version >/dev/null 2>&1; then
echo "Docker Compose CLI plugin no encontrado. Instalando..."
@ -67,46 +67,45 @@ else
fi
# ─────────────────────────────────────────────────────────────────────────────
# Instalación de Evolution API (si no está instalado)
# Instalación de Evolution API
# ─────────────────────────────────────────────────────────────────────────────
if sudo docker container evolution_api >/dev/null 2>&1; then
# FIX: el comando correcto es 'docker inspect', no 'docker container <nombre>'
if docker inspect evolution_api >/dev/null 2>&1; then
echo "Evolution API ya está instalado y configurado."
else
echo "Instalando Evolution API y servicios (corriendo docker-compose.yml) ..."
echo "Instalando Evolution API y servicios..."
sudo docker compose up -d
echo -e "${GREEN}Evolution API y servicios instalados${NC}"
fi
# ─────────────────────────────────────────────────────────────────────────────
# Verificar que Evolution API levantó correctamente (localhost, no IP pública)
# ─────────────────────────────────────────────────────────────────────────────
CHECK_APP_MAX_ATTEMPTS=5
CHECK_APP_DELAY_SECONDS=5
# Función para validar que un puerto esté accesible externamente para una aplicación
# Recibe Puerto y Nombre de la Aplicación
# Realiza hasta CHECK_APP_MAX_ATTEMPTS intentos con CHECK_APP_DELAY_SECONDS segundos de delay. Si tras CHECK_APP_MAX_ATTEMPTS fallos, muestra error y termina.
check_port_open() {
check_port_local() {
local PORT=$1
local APP_NAME=$2
local attempt=1
while ((attempt <= CHECK_APP_MAX_ATTEMPTS)); do
echo -e "Verificando acceso a ${APP_NAME} . . . "
echo "Verificando ${APP_NAME} en localhost:${PORT} (intento ${attempt}/${CHECK_APP_MAX_ATTEMPTS})..."
sleep ${CHECK_APP_DELAY_SECONDS}
# Verificar respuesta del VPS
if nc -z -w5 "${PUBLIC_IP}" "${PORT}"; then
echo -e "${GREEN}¡Instalación completada! ${APP_NAME} funcionando y accesible: http://${PUBLIC_IP}:${PORT}${NC}/manager"
if nc -z -w5 127.0.0.1 "${PORT}"; then
echo -e "${GREEN}¡${APP_NAME} está corriendo en localhost:${PORT}!${NC}"
return 0
fi
attempt=$((attempt + 1))
done
# Si llegamos aquí, todos los intentos fallaron
echo -e "${RED}Error: El puerto ${PORT} para ${APP_NAME} no es accesible externamente en ${PUBLIC_IP}:${PORT}. Verifica las reglas de entrada / firewall de tu servidor VPS.${NC}"
echo -e "${RED}Error: ${APP_NAME} no responde en localhost:${PORT} tras ${CHECK_APP_MAX_ATTEMPTS} intentos.${NC}"
echo "Revisa los logs con: docker compose logs evolution_api"
exit 1
}
check_port_open "${EVOLUTION_API_PORT}" "Evolution API"
check_port_local "${EVOLUTION_API_PORT}" "Evolution API"
# Refrescar grupos para la sesión actual
newgrp docker

@ -0,0 +1,67 @@
1.1. Ingresa a la carpeta del instalador
Una vez descargado, ingresa a la carpeta correspondiente:
cd shell-evolution-api
Copiar
2. Crea el archivo .env
Vamos a crear el archivo de configuración de nuestro instalador basados en un archivo de ejemplo:
cp .env.example .env
Copiar
2.1. Configuración del archivo .env
Antes de levantar los servicios, asegúrate de configurar tu archivo .env:
nano .env
Copiar
Edita el archivo .env con tus propios valores:
############################################
# Evolution API
############################################
# ------------------------------------------
AUTHENTICATION_API_KEY=api_key # Clave de autenticación para Evolution API (Contraseña de administrador)
# ------------------------------------------
EVOLUTION_API_PORT=8080 # Puerto de escucha para Evolution API
# ------------------------------------------
CONFIG_SESSION_PHONE_VERSION=2.3000.1023204200 # Whatsapp Web version for baileys channel: https://web.whatsapp.com/check-update?version=0&platform=web
# ------------------------------------------
############################################
# PostgreSQL
############################################
# ------------------------------------------
POSTGRESS_USER=user # Usuario de PostgreSQL (POR SEGURIDAD MODIFICA ESTE VALOR)
# ------------------------------------------
POSTGRESS_PASS=123456 # Contraseña de PostgreSQL (POR SEGURIDAD MODIFICA ESTE VALOR)
# ------------------------------------------
POSTGRESS_PORT=5432 # Puerto de PostgreSQL (Se sugiere no modificar)
# ------------------------------------------
############################################
# Redis
############################################
REDIS_PORT=6379 # Puerto de Redis (Se sugiere no modificar)
3. Ejecutar el instalador
3.1. Dar permisos de ejecución al script
Con ese comando le indicas al sistema que el archivo install.sh ya puede ser ejecutado en el servidor:
chmod +x install.sh
Copiar
3.2. Ejecutar el script
El script actualizará el sistema, instalará Docker y Docker Compose, añadirá el usuario al grupo docker y desplegará Evolution API:
./install.sh
Copiar
Shell Ubuntu
Nota:
El script omitirá la instalación de los servicios que ya tengas instalados en tu servidor VPS como Docker y Docker Compose.
4. Verifica la instalación
4.1. Evolution API
Al finalizar, verás un mensaje indicando la URL de acceso a Evolution API:
¡Instalación completada! Evolution API funcionando y accesible: http://IP_DEL_SERVIDOR:EVOLUTION_API_PORT/manager
Login Evolution API
Nota: Recuerda remplazar IP_DEL_SERVIDOR por el dominio / IP de tu servidor y tener el puerto EVOLUTION_API_PORT abierto.
Loading…
Cancel
Save