mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-24 17:38:40 -06:00
refactor v1
This commit is contained in:
parent
427c994993
commit
b1e9f5171c
@ -1,5 +1,4 @@
|
|||||||
.git
|
|
||||||
*Dockerfile*
|
|
||||||
*docker-compose*
|
|
||||||
node_modules
|
node_modules
|
||||||
|
npm-debug.log
|
||||||
dist
|
dist
|
||||||
|
.env
|
||||||
|
@ -1,37 +1,28 @@
|
|||||||
|
PRISMA_MIGRATIONS=true
|
||||||
|
|
||||||
SERVER_TYPE=http
|
SERVER_TYPE=http
|
||||||
SERVER_PORT=8080
|
SERVER_PORT=8080
|
||||||
# Server URL - Set your application url
|
|
||||||
SERVER_URL=http://localhost:8080
|
SERVER_URL=http://localhost:8080
|
||||||
|
|
||||||
SENTRY_DSN=
|
SENTRY_DSN=
|
||||||
|
|
||||||
# Cors - * for all or set separate by commas - ex.: 'yourdomain1.com, yourdomain2.com'
|
|
||||||
CORS_ORIGIN=*
|
CORS_ORIGIN=*
|
||||||
CORS_METHODS=GET,POST,PUT,DELETE
|
CORS_METHODS=GET,POST,PUT,DELETE
|
||||||
CORS_CREDENTIALS=true
|
CORS_CREDENTIALS=true
|
||||||
|
|
||||||
# Determine the logs to be displayed
|
|
||||||
LOG_LEVEL=ERROR,WARN,DEBUG,INFO,LOG,VERBOSE,DARK,WEBHOOKS,WEBSOCKET
|
LOG_LEVEL=ERROR,WARN,DEBUG,INFO,LOG,VERBOSE,DARK,WEBHOOKS,WEBSOCKET
|
||||||
LOG_COLOR=true
|
LOG_COLOR=true
|
||||||
# Log Baileys - "fatal" | "error" | "warn" | "info" | "debug" | "trace"
|
|
||||||
LOG_BAILEYS=error
|
LOG_BAILEYS=error
|
||||||
|
|
||||||
# Set the maximum number of listeners that can be registered for an event
|
|
||||||
EVENT_EMITTER_MAX_LISTENERS=50
|
EVENT_EMITTER_MAX_LISTENERS=50
|
||||||
|
|
||||||
# Determine how long the instance should be deleted from memory in case of no connection.
|
|
||||||
# Default time: 5 minutes
|
|
||||||
# If you don't even want an expiration, enter the value false
|
|
||||||
DEL_INSTANCE=false
|
DEL_INSTANCE=false
|
||||||
|
|
||||||
# Provider: postgresql | mysql
|
|
||||||
DATABASE_PROVIDER=postgresql
|
DATABASE_PROVIDER=postgresql
|
||||||
DATABASE_CONNECTION_URI='postgresql://user:pass@postgres:5432/evolution?schema=public'
|
DATABASE_CONNECTION_URI=postgresql://postgres:YOUR_PASSWORD@localhost:5432/evolution?schema=public
|
||||||
# Client name for the database connection
|
DATABASE_CONNECTION_URL=postgresql://postgres:YOUR_PASSWORD@localhost:5432/evolution?schema=public
|
||||||
# It is used to separate an API installation from another that uses the same database.
|
|
||||||
DATABASE_CONNECTION_CLIENT_NAME=evolution_exchange
|
DATABASE_CONNECTION_CLIENT_NAME=evolution_exchange
|
||||||
|
|
||||||
# Choose the data you want to save in the application's database
|
|
||||||
DATABASE_SAVE_DATA_INSTANCE=true
|
DATABASE_SAVE_DATA_INSTANCE=true
|
||||||
DATABASE_SAVE_DATA_NEW_MESSAGE=true
|
DATABASE_SAVE_DATA_NEW_MESSAGE=true
|
||||||
DATABASE_SAVE_MESSAGE_UPDATE=true
|
DATABASE_SAVE_MESSAGE_UPDATE=true
|
||||||
@ -43,15 +34,11 @@ DATABASE_SAVE_IS_ON_WHATSAPP=true
|
|||||||
DATABASE_SAVE_IS_ON_WHATSAPP_DAYS=7
|
DATABASE_SAVE_IS_ON_WHATSAPP_DAYS=7
|
||||||
DATABASE_DELETE_MESSAGE=true
|
DATABASE_DELETE_MESSAGE=true
|
||||||
|
|
||||||
# RabbitMQ - Environment variables
|
|
||||||
RABBITMQ_ENABLED=false
|
RABBITMQ_ENABLED=false
|
||||||
RABBITMQ_URI=amqp://localhost
|
RABBITMQ_URI=amqp://localhost
|
||||||
RABBITMQ_EXCHANGE_NAME=evolution
|
RABBITMQ_EXCHANGE_NAME=evolution
|
||||||
# Global events - By enabling this variable, events from all instances are sent in the same event queue.
|
|
||||||
RABBITMQ_GLOBAL_ENABLED=false
|
RABBITMQ_GLOBAL_ENABLED=false
|
||||||
# Prefix key to queue name
|
|
||||||
RABBITMQ_PREFIX_KEY=evolution
|
RABBITMQ_PREFIX_KEY=evolution
|
||||||
# Choose the events you want to send to RabbitMQ
|
|
||||||
RABBITMQ_EVENTS_APPLICATION_STARTUP=false
|
RABBITMQ_EVENTS_APPLICATION_STARTUP=false
|
||||||
RABBITMQ_EVENTS_INSTANCE_CREATE=false
|
RABBITMQ_EVENTS_INSTANCE_CREATE=false
|
||||||
RABBITMQ_EVENTS_INSTANCE_DELETE=false
|
RABBITMQ_EVENTS_INSTANCE_DELETE=false
|
||||||
@ -80,18 +67,15 @@ RABBITMQ_EVENTS_CALL=false
|
|||||||
RABBITMQ_EVENTS_TYPEBOT_START=false
|
RABBITMQ_EVENTS_TYPEBOT_START=false
|
||||||
RABBITMQ_EVENTS_TYPEBOT_CHANGE_STATUS=false
|
RABBITMQ_EVENTS_TYPEBOT_CHANGE_STATUS=false
|
||||||
|
|
||||||
# SQS - Environment variables
|
|
||||||
SQS_ENABLED=false
|
SQS_ENABLED=false
|
||||||
SQS_ACCESS_KEY_ID=
|
SQS_ACCESS_KEY_ID=
|
||||||
SQS_SECRET_ACCESS_KEY=
|
SQS_SECRET_ACCESS_KEY=
|
||||||
SQS_ACCOUNT_ID=
|
SQS_ACCOUNT_ID=
|
||||||
SQS_REGION=
|
SQS_REGION=
|
||||||
|
|
||||||
# Websocket - Environment variables
|
|
||||||
WEBSOCKET_ENABLED=false
|
WEBSOCKET_ENABLED=false
|
||||||
WEBSOCKET_GLOBAL_EVENTS=false
|
WEBSOCKET_GLOBAL_EVENTS=false
|
||||||
|
|
||||||
# Pusher - Environment variables
|
|
||||||
PUSHER_ENABLED=false
|
PUSHER_ENABLED=false
|
||||||
PUSHER_GLOBAL_ENABLED=false
|
PUSHER_GLOBAL_ENABLED=false
|
||||||
PUSHER_GLOBAL_APP_ID=
|
PUSHER_GLOBAL_APP_ID=
|
||||||
@ -99,7 +83,6 @@ PUSHER_GLOBAL_KEY=
|
|||||||
PUSHER_GLOBAL_SECRET=
|
PUSHER_GLOBAL_SECRET=
|
||||||
PUSHER_GLOBAL_CLUSTER=
|
PUSHER_GLOBAL_CLUSTER=
|
||||||
PUSHER_GLOBAL_USE_TLS=true
|
PUSHER_GLOBAL_USE_TLS=true
|
||||||
# Choose the events you want to send to Pusher
|
|
||||||
PUSHER_EVENTS_APPLICATION_STARTUP=true
|
PUSHER_EVENTS_APPLICATION_STARTUP=true
|
||||||
PUSHER_EVENTS_QRCODE_UPDATED=true
|
PUSHER_EVENTS_QRCODE_UPDATED=true
|
||||||
PUSHER_EVENTS_MESSAGES_SET=true
|
PUSHER_EVENTS_MESSAGES_SET=true
|
||||||
@ -126,21 +109,14 @@ PUSHER_EVENTS_CALL=true
|
|||||||
PUSHER_EVENTS_TYPEBOT_START=false
|
PUSHER_EVENTS_TYPEBOT_START=false
|
||||||
PUSHER_EVENTS_TYPEBOT_CHANGE_STATUS=false
|
PUSHER_EVENTS_TYPEBOT_CHANGE_STATUS=false
|
||||||
|
|
||||||
# WhatsApp Business API - Environment variables
|
|
||||||
# Token used to validate the webhook on the Facebook APP
|
|
||||||
WA_BUSINESS_TOKEN_WEBHOOK=evolution
|
WA_BUSINESS_TOKEN_WEBHOOK=evolution
|
||||||
WA_BUSINESS_URL=https://graph.facebook.com
|
WA_BUSINESS_URL=https://graph.facebook.com
|
||||||
WA_BUSINESS_VERSION=v20.0
|
WA_BUSINESS_VERSION=v20.0
|
||||||
WA_BUSINESS_LANGUAGE=en_US
|
WA_BUSINESS_LANGUAGE=en_US
|
||||||
|
|
||||||
# Global Webhook Settings
|
|
||||||
# Each instance's Webhook URL and events will be requested at the time it is created
|
|
||||||
WEBHOOK_GLOBAL_ENABLED=false
|
WEBHOOK_GLOBAL_ENABLED=false
|
||||||
# Define a global webhook that will listen for enabled events from all instances
|
|
||||||
WEBHOOK_GLOBAL_URL=''
|
WEBHOOK_GLOBAL_URL=''
|
||||||
# With this option activated, you work with a url per webhook event, respecting the global url and the name of each event
|
|
||||||
WEBHOOK_GLOBAL_WEBHOOK_BY_EVENTS=false
|
WEBHOOK_GLOBAL_WEBHOOK_BY_EVENTS=false
|
||||||
# Set the events you want to hear
|
|
||||||
WEBHOOK_EVENTS_APPLICATION_STARTUP=false
|
WEBHOOK_EVENTS_APPLICATION_STARTUP=false
|
||||||
WEBHOOK_EVENTS_QRCODE_UPDATED=true
|
WEBHOOK_EVENTS_QRCODE_UPDATED=true
|
||||||
WEBHOOK_EVENTS_MESSAGES_SET=true
|
WEBHOOK_EVENTS_MESSAGES_SET=true
|
||||||
@ -166,63 +142,40 @@ WEBHOOK_EVENTS_LOGOUT_INSTANCE=false
|
|||||||
WEBHOOK_EVENTS_LABELS_EDIT=true
|
WEBHOOK_EVENTS_LABELS_EDIT=true
|
||||||
WEBHOOK_EVENTS_LABELS_ASSOCIATION=true
|
WEBHOOK_EVENTS_LABELS_ASSOCIATION=true
|
||||||
WEBHOOK_EVENTS_CALL=true
|
WEBHOOK_EVENTS_CALL=true
|
||||||
# This events is used with Typebot
|
|
||||||
WEBHOOK_EVENTS_TYPEBOT_START=false
|
WEBHOOK_EVENTS_TYPEBOT_START=false
|
||||||
WEBHOOK_EVENTS_TYPEBOT_CHANGE_STATUS=false
|
WEBHOOK_EVENTS_TYPEBOT_CHANGE_STATUS=false
|
||||||
# This event is used to send errors
|
|
||||||
WEBHOOK_EVENTS_ERRORS=false
|
WEBHOOK_EVENTS_ERRORS=false
|
||||||
WEBHOOK_EVENTS_ERRORS_WEBHOOK=
|
WEBHOOK_EVENTS_ERRORS_WEBHOOK=
|
||||||
|
|
||||||
# Name that will be displayed on smartphone connection
|
|
||||||
CONFIG_SESSION_PHONE_CLIENT=Evolution API
|
CONFIG_SESSION_PHONE_CLIENT=Evolution API
|
||||||
# Browser Name = Chrome | Firefox | Edge | Opera | Safari
|
|
||||||
CONFIG_SESSION_PHONE_NAME=Chrome
|
CONFIG_SESSION_PHONE_NAME=Chrome
|
||||||
|
|
||||||
# Whatsapp Web version for baileys channel
|
|
||||||
# https://web.whatsapp.com/check-update?version=0&platform=web
|
|
||||||
CONFIG_SESSION_PHONE_VERSION=2.3000.1015901307
|
CONFIG_SESSION_PHONE_VERSION=2.3000.1015901307
|
||||||
|
|
||||||
# Set qrcode display limit
|
|
||||||
QRCODE_LIMIT=30
|
QRCODE_LIMIT=30
|
||||||
# Color of the QRCode on base64
|
|
||||||
QRCODE_COLOR='#175197'
|
QRCODE_COLOR='#175197'
|
||||||
|
|
||||||
# Typebot - Environment variables
|
|
||||||
TYPEBOT_ENABLED=false
|
TYPEBOT_ENABLED=false
|
||||||
# old | latest
|
|
||||||
TYPEBOT_API_VERSION=latest
|
TYPEBOT_API_VERSION=latest
|
||||||
|
|
||||||
# Chatwoot - Environment variables
|
|
||||||
CHATWOOT_ENABLED=false
|
CHATWOOT_ENABLED=false
|
||||||
# If you leave this option as false, when deleting the message for everyone on WhatsApp, it will not be deleted on Chatwoot.
|
|
||||||
CHATWOOT_MESSAGE_READ=true
|
CHATWOOT_MESSAGE_READ=true
|
||||||
# If you leave this option as true, when sending a message in Chatwoot, the client's last message will be marked as read on WhatsApp.
|
|
||||||
CHATWOOT_MESSAGE_DELETE=true
|
CHATWOOT_MESSAGE_DELETE=true
|
||||||
# If you leave this option as true, a contact will be created on Chatwoot to provide the QR Code and update messages about the instance.
|
|
||||||
CHATWOOT_BOT_CONTACT=true
|
CHATWOOT_BOT_CONTACT=true
|
||||||
# This db connection is used to import messages from whatsapp to chatwoot database
|
|
||||||
CHATWOOT_IMPORT_DATABASE_CONNECTION_URI=postgresql://user:passwprd@host:5432/chatwoot?sslmode=disable
|
CHATWOOT_IMPORT_DATABASE_CONNECTION_URI=postgresql://user:passwprd@host:5432/chatwoot?sslmode=disable
|
||||||
CHATWOOT_IMPORT_PLACEHOLDER_MEDIA_MESSAGE=true
|
CHATWOOT_IMPORT_PLACEHOLDER_MEDIA_MESSAGE=true
|
||||||
|
|
||||||
# OpenAI - Environment variables
|
|
||||||
OPENAI_ENABLED=false
|
OPENAI_ENABLED=false
|
||||||
|
|
||||||
# Dify - Environment variables
|
|
||||||
DIFY_ENABLED=false
|
DIFY_ENABLED=false
|
||||||
|
|
||||||
# Cache - Environment variables
|
|
||||||
# Redis Cache enabled
|
|
||||||
CACHE_REDIS_ENABLED=true
|
CACHE_REDIS_ENABLED=true
|
||||||
CACHE_REDIS_URI=redis://localhost:6379/6
|
CACHE_REDIS_URI=redis://localhost:6379/6
|
||||||
CACHE_REDIS_TTL=604800
|
CACHE_REDIS_TTL=604800
|
||||||
# Prefix serves to differentiate data from one installation to another that are using the same redis
|
|
||||||
CACHE_REDIS_PREFIX_KEY=evolution
|
CACHE_REDIS_PREFIX_KEY=evolution
|
||||||
# Enabling this variable will save the connection information in Redis and not in the database.
|
|
||||||
CACHE_REDIS_SAVE_INSTANCES=false
|
CACHE_REDIS_SAVE_INSTANCES=false
|
||||||
# Local Cache enabled
|
|
||||||
CACHE_LOCAL_ENABLED=false
|
CACHE_LOCAL_ENABLED=false
|
||||||
|
|
||||||
# Amazon S3 - Environment variables
|
|
||||||
S3_ENABLED=false
|
S3_ENABLED=false
|
||||||
S3_ACCESS_KEY=
|
S3_ACCESS_KEY=
|
||||||
S3_SECRET_KEY=
|
S3_SECRET_KEY=
|
||||||
@ -232,38 +185,9 @@ S3_ENDPOINT=s3.domain.com
|
|||||||
S3_REGION=eu-west-3
|
S3_REGION=eu-west-3
|
||||||
S3_USE_SSL=true
|
S3_USE_SSL=true
|
||||||
|
|
||||||
# AMAZON S3 - Environment variables
|
|
||||||
# S3_ENABLED=true
|
|
||||||
# S3_BUCKET=bucket_name
|
|
||||||
# S3_ACCESS_KEY=access_key_id
|
|
||||||
# S3_SECRET_KEY=secret_access_key
|
|
||||||
# S3_ENDPOINT=s3.amazonaws.com # region: s3.eu-west-3.amazonaws.com
|
|
||||||
# S3_REGION=eu-west-3
|
|
||||||
|
|
||||||
# MINIO Use SSL - Environment variables
|
|
||||||
# S3_ENABLED=true
|
|
||||||
# S3_ACCESS_KEY=access_key_id
|
|
||||||
# S3_SECRET_KEY=secret_access_key
|
|
||||||
# S3_BUCKET=bucket_name
|
|
||||||
# S3_PORT=443
|
|
||||||
# S3_ENDPOINT=s3.domain.com
|
|
||||||
# S3_USE_SSL=true
|
|
||||||
# S3_REGION=eu-south
|
|
||||||
|
|
||||||
# Evolution Audio Converter - Environment variables - https://github.com/EvolutionAPI/evolution-audio-converter
|
|
||||||
# API_AUDIO_CONVERTER=http://localhost:4040/process-audio
|
|
||||||
# API_AUDIO_CONVERTER_KEY=429683C4C977415CAAFCCE10F7D57E11
|
|
||||||
|
|
||||||
# Define a global apikey to access all instances.
|
|
||||||
# OBS: This key must be inserted in the request header to create an instance.
|
|
||||||
AUTHENTICATION_API_KEY=429683C4C977415CAAFCCE10F7D57E11
|
AUTHENTICATION_API_KEY=429683C4C977415CAAFCCE10F7D57E11
|
||||||
# If you leave this option as true, the instances will be exposed in the fetch instances endpoint.
|
|
||||||
AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=true
|
AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=true
|
||||||
LANGUAGE=en
|
LANGUAGE=en
|
||||||
|
|
||||||
# Define a global proxy to be used if the instance does not have one
|
|
||||||
# PROXY_HOST=
|
|
||||||
# PROXY_PORT=80
|
|
||||||
# PROXY_PROTOCOL=http
|
|
||||||
# PROXY_USERNAME=
|
|
||||||
# PROXY_PASSWORD=
|
|
193
.env.example.railway
Normal file
193
.env.example.railway
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
PRISMA_MIGRATIONS=true
|
||||||
|
|
||||||
|
SERVER_TYPE=http
|
||||||
|
SERVER_PORT=8080
|
||||||
|
SERVER_URL=http://localhost:8080
|
||||||
|
|
||||||
|
SENTRY_DSN=
|
||||||
|
|
||||||
|
CORS_ORIGIN=*
|
||||||
|
CORS_METHODS=GET,POST,PUT,DELETE
|
||||||
|
CORS_CREDENTIALS=true
|
||||||
|
|
||||||
|
LOG_LEVEL=ERROR,WARN,DEBUG,INFO,LOG,VERBOSE,DARK,WEBHOOKS,WEBSOCKET
|
||||||
|
LOG_COLOR=true
|
||||||
|
LOG_BAILEYS=error
|
||||||
|
|
||||||
|
EVENT_EMITTER_MAX_LISTENERS=50
|
||||||
|
|
||||||
|
DEL_INSTANCE=false
|
||||||
|
|
||||||
|
DATABASE_PROVIDER=postgresql
|
||||||
|
DATABASE_CONNECTION_URI=postgresql://postgres:YOUR_PASSWORD@autorack.proxy.rlwy.net:YOUR_PORT/railway
|
||||||
|
DATABASE_CONNECTION_URL=postgresql://postgres:YOUR_PASSWORD@autorack.proxy.rlwy.net:YOUR_PORT/railway
|
||||||
|
DATABASE_CONNECTION_CLIENT_NAME=evolution_exchange
|
||||||
|
|
||||||
|
DATABASE_SAVE_DATA_INSTANCE=true
|
||||||
|
DATABASE_SAVE_DATA_NEW_MESSAGE=true
|
||||||
|
DATABASE_SAVE_MESSAGE_UPDATE=true
|
||||||
|
DATABASE_SAVE_DATA_CONTACTS=true
|
||||||
|
DATABASE_SAVE_DATA_CHATS=true
|
||||||
|
DATABASE_SAVE_DATA_LABELS=true
|
||||||
|
DATABASE_SAVE_DATA_HISTORIC=true
|
||||||
|
DATABASE_SAVE_IS_ON_WHATSAPP=true
|
||||||
|
DATABASE_SAVE_IS_ON_WHATSAPP_DAYS=7
|
||||||
|
DATABASE_DELETE_MESSAGE=true
|
||||||
|
|
||||||
|
RABBITMQ_ENABLED=false
|
||||||
|
RABBITMQ_URI=amqp://localhost
|
||||||
|
RABBITMQ_EXCHANGE_NAME=evolution
|
||||||
|
RABBITMQ_GLOBAL_ENABLED=false
|
||||||
|
RABBITMQ_PREFIX_KEY=evolution
|
||||||
|
RABBITMQ_EVENTS_APPLICATION_STARTUP=false
|
||||||
|
RABBITMQ_EVENTS_INSTANCE_CREATE=false
|
||||||
|
RABBITMQ_EVENTS_INSTANCE_DELETE=false
|
||||||
|
RABBITMQ_EVENTS_QRCODE_UPDATED=false
|
||||||
|
RABBITMQ_EVENTS_MESSAGES_SET=false
|
||||||
|
RABBITMQ_EVENTS_MESSAGES_UPSERT=false
|
||||||
|
RABBITMQ_EVENTS_MESSAGES_EDITED=false
|
||||||
|
RABBITMQ_EVENTS_MESSAGES_UPDATE=false
|
||||||
|
RABBITMQ_EVENTS_MESSAGES_DELETE=false
|
||||||
|
RABBITMQ_EVENTS_SEND_MESSAGE=false
|
||||||
|
RABBITMQ_EVENTS_CONTACTS_SET=false
|
||||||
|
RABBITMQ_EVENTS_CONTACTS_UPSERT=false
|
||||||
|
RABBITMQ_EVENTS_CONTACTS_UPDATE=false
|
||||||
|
RABBITMQ_EVENTS_PRESENCE_UPDATE=false
|
||||||
|
RABBITMQ_EVENTS_CHATS_SET=false
|
||||||
|
RABBITMQ_EVENTS_CHATS_UPSERT=false
|
||||||
|
RABBITMQ_EVENTS_CHATS_UPDATE=false
|
||||||
|
RABBITMQ_EVENTS_CHATS_DELETE=false
|
||||||
|
RABBITMQ_EVENTS_GROUPS_UPSERT=false
|
||||||
|
RABBITMQ_EVENTS_GROUP_UPDATE=false
|
||||||
|
RABBITMQ_EVENTS_GROUP_PARTICIPANTS_UPDATE=false
|
||||||
|
RABBITMQ_EVENTS_CONNECTION_UPDATE=false
|
||||||
|
RABBITMQ_EVENTS_REMOVE_INSTANCE=false
|
||||||
|
RABBITMQ_EVENTS_LOGOUT_INSTANCE=false
|
||||||
|
RABBITMQ_EVENTS_CALL=false
|
||||||
|
RABBITMQ_EVENTS_TYPEBOT_START=false
|
||||||
|
RABBITMQ_EVENTS_TYPEBOT_CHANGE_STATUS=false
|
||||||
|
|
||||||
|
SQS_ENABLED=false
|
||||||
|
SQS_ACCESS_KEY_ID=
|
||||||
|
SQS_SECRET_ACCESS_KEY=
|
||||||
|
SQS_ACCOUNT_ID=
|
||||||
|
SQS_REGION=
|
||||||
|
|
||||||
|
WEBSOCKET_ENABLED=false
|
||||||
|
WEBSOCKET_GLOBAL_EVENTS=false
|
||||||
|
|
||||||
|
PUSHER_ENABLED=false
|
||||||
|
PUSHER_GLOBAL_ENABLED=false
|
||||||
|
PUSHER_GLOBAL_APP_ID=
|
||||||
|
PUSHER_GLOBAL_KEY=
|
||||||
|
PUSHER_GLOBAL_SECRET=
|
||||||
|
PUSHER_GLOBAL_CLUSTER=
|
||||||
|
PUSHER_GLOBAL_USE_TLS=true
|
||||||
|
PUSHER_EVENTS_APPLICATION_STARTUP=true
|
||||||
|
PUSHER_EVENTS_QRCODE_UPDATED=true
|
||||||
|
PUSHER_EVENTS_MESSAGES_SET=true
|
||||||
|
PUSHER_EVENTS_MESSAGES_UPSERT=true
|
||||||
|
PUSHER_EVENTS_MESSAGES_EDITED=true
|
||||||
|
PUSHER_EVENTS_MESSAGES_UPDATE=true
|
||||||
|
PUSHER_EVENTS_MESSAGES_DELETE=true
|
||||||
|
PUSHER_EVENTS_SEND_MESSAGE=true
|
||||||
|
PUSHER_EVENTS_CONTACTS_SET=true
|
||||||
|
PUSHER_EVENTS_CONTACTS_UPSERT=true
|
||||||
|
PUSHER_EVENTS_CONTACTS_UPDATE=true
|
||||||
|
PUSHER_EVENTS_PRESENCE_UPDATE=true
|
||||||
|
PUSHER_EVENTS_CHATS_SET=true
|
||||||
|
PUSHER_EVENTS_CHATS_UPSERT=true
|
||||||
|
PUSHER_EVENTS_CHATS_UPDATE=true
|
||||||
|
PUSHER_EVENTS_CHATS_DELETE=true
|
||||||
|
PUSHER_EVENTS_GROUPS_UPSERT=true
|
||||||
|
PUSHER_EVENTS_GROUPS_UPDATE=true
|
||||||
|
PUSHER_EVENTS_GROUP_PARTICIPANTS_UPDATE=true
|
||||||
|
PUSHER_EVENTS_CONNECTION_UPDATE=true
|
||||||
|
PUSHER_EVENTS_LABELS_EDIT=true
|
||||||
|
PUSHER_EVENTS_LABELS_ASSOCIATION=true
|
||||||
|
PUSHER_EVENTS_CALL=true
|
||||||
|
PUSHER_EVENTS_TYPEBOT_START=false
|
||||||
|
PUSHER_EVENTS_TYPEBOT_CHANGE_STATUS=false
|
||||||
|
|
||||||
|
WA_BUSINESS_TOKEN_WEBHOOK=evolution
|
||||||
|
WA_BUSINESS_URL=https://graph.facebook.com
|
||||||
|
WA_BUSINESS_VERSION=v20.0
|
||||||
|
WA_BUSINESS_LANGUAGE=en_US
|
||||||
|
|
||||||
|
WEBHOOK_GLOBAL_ENABLED=false
|
||||||
|
WEBHOOK_GLOBAL_URL=''
|
||||||
|
WEBHOOK_GLOBAL_WEBHOOK_BY_EVENTS=false
|
||||||
|
WEBHOOK_EVENTS_APPLICATION_STARTUP=false
|
||||||
|
WEBHOOK_EVENTS_QRCODE_UPDATED=true
|
||||||
|
WEBHOOK_EVENTS_MESSAGES_SET=true
|
||||||
|
WEBHOOK_EVENTS_MESSAGES_UPSERT=true
|
||||||
|
WEBHOOK_EVENTS_MESSAGES_EDITED=true
|
||||||
|
WEBHOOK_EVENTS_MESSAGES_UPDATE=true
|
||||||
|
WEBHOOK_EVENTS_MESSAGES_DELETE=true
|
||||||
|
WEBHOOK_EVENTS_SEND_MESSAGE=true
|
||||||
|
WEBHOOK_EVENTS_CONTACTS_SET=true
|
||||||
|
WEBHOOK_EVENTS_CONTACTS_UPSERT=true
|
||||||
|
WEBHOOK_EVENTS_CONTACTS_UPDATE=true
|
||||||
|
WEBHOOK_EVENTS_PRESENCE_UPDATE=true
|
||||||
|
WEBHOOK_EVENTS_CHATS_SET=true
|
||||||
|
WEBHOOK_EVENTS_CHATS_UPSERT=true
|
||||||
|
WEBHOOK_EVENTS_CHATS_UPDATE=true
|
||||||
|
WEBHOOK_EVENTS_CHATS_DELETE=true
|
||||||
|
WEBHOOK_EVENTS_GROUPS_UPSERT=true
|
||||||
|
WEBHOOK_EVENTS_GROUPS_UPDATE=true
|
||||||
|
WEBHOOK_EVENTS_GROUP_PARTICIPANTS_UPDATE=true
|
||||||
|
WEBHOOK_EVENTS_CONNECTION_UPDATE=true
|
||||||
|
WEBHOOK_EVENTS_REMOVE_INSTANCE=false
|
||||||
|
WEBHOOK_EVENTS_LOGOUT_INSTANCE=false
|
||||||
|
WEBHOOK_EVENTS_LABELS_EDIT=true
|
||||||
|
WEBHOOK_EVENTS_LABELS_ASSOCIATION=true
|
||||||
|
WEBHOOK_EVENTS_CALL=true
|
||||||
|
WEBHOOK_EVENTS_TYPEBOT_START=false
|
||||||
|
WEBHOOK_EVENTS_TYPEBOT_CHANGE_STATUS=false
|
||||||
|
WEBHOOK_EVENTS_ERRORS=false
|
||||||
|
WEBHOOK_EVENTS_ERRORS_WEBHOOK=
|
||||||
|
|
||||||
|
CONFIG_SESSION_PHONE_CLIENT=Evolution API
|
||||||
|
CONFIG_SESSION_PHONE_NAME=Chrome
|
||||||
|
|
||||||
|
CONFIG_SESSION_PHONE_VERSION=2.3000.1015901307
|
||||||
|
|
||||||
|
QRCODE_LIMIT=30
|
||||||
|
QRCODE_COLOR='#175197'
|
||||||
|
|
||||||
|
TYPEBOT_ENABLED=false
|
||||||
|
TYPEBOT_API_VERSION=latest
|
||||||
|
|
||||||
|
CHATWOOT_ENABLED=false
|
||||||
|
CHATWOOT_MESSAGE_READ=true
|
||||||
|
CHATWOOT_MESSAGE_DELETE=true
|
||||||
|
CHATWOOT_BOT_CONTACT=true
|
||||||
|
CHATWOOT_IMPORT_DATABASE_CONNECTION_URI=postgresql://user:passwprd@host:5432/chatwoot?sslmode=disable
|
||||||
|
CHATWOOT_IMPORT_PLACEHOLDER_MEDIA_MESSAGE=true
|
||||||
|
|
||||||
|
OPENAI_ENABLED=false
|
||||||
|
|
||||||
|
DIFY_ENABLED=false
|
||||||
|
|
||||||
|
CACHE_REDIS_ENABLED=true
|
||||||
|
CACHE_REDIS_URI=redis://default:YOUR_PASSWORD@junction.proxy.rlwy.net:11556
|
||||||
|
CACHE_REDIS_TTL=604800
|
||||||
|
CACHE_REDIS_PREFIX_KEY=evolution
|
||||||
|
CACHE_REDIS_SAVE_INSTANCES=false
|
||||||
|
CACHE_LOCAL_ENABLED=false
|
||||||
|
|
||||||
|
S3_ENABLED=false
|
||||||
|
S3_ACCESS_KEY=
|
||||||
|
S3_SECRET_KEY=
|
||||||
|
S3_BUCKET=evolution
|
||||||
|
S3_PORT=443
|
||||||
|
S3_ENDPOINT=s3.domain.com
|
||||||
|
S3_REGION=eu-west-3
|
||||||
|
S3_USE_SSL=true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
AUTHENTICATION_API_KEY=429683C4C977415CAAFCCE10F7D57E11
|
||||||
|
AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=true
|
||||||
|
LANGUAGE=en
|
193
.env.example.supabase
Normal file
193
.env.example.supabase
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
PRISMA_MIGRATIONS=true
|
||||||
|
|
||||||
|
SERVER_TYPE=http
|
||||||
|
SERVER_PORT=8080
|
||||||
|
SERVER_URL=http://localhost:8080
|
||||||
|
|
||||||
|
SENTRY_DSN=
|
||||||
|
|
||||||
|
CORS_ORIGIN=*
|
||||||
|
CORS_METHODS=GET,POST,PUT,DELETE
|
||||||
|
CORS_CREDENTIALS=true
|
||||||
|
|
||||||
|
LOG_LEVEL=ERROR,WARN,DEBUG,INFO,LOG,VERBOSE,DARK,WEBHOOKS,WEBSOCKET
|
||||||
|
LOG_COLOR=true
|
||||||
|
LOG_BAILEYS=error
|
||||||
|
|
||||||
|
EVENT_EMITTER_MAX_LISTENERS=50
|
||||||
|
|
||||||
|
DEL_INSTANCE=false
|
||||||
|
|
||||||
|
DATABASE_PROVIDER=postgresql
|
||||||
|
DATABASE_CONNECTION_URI=postgresql://postgres.YOUR_USER:YOUR_PASSWORD@aws-0-us-west-1.pooler.supabase.com:6543/postgres?pgbouncer=true&connection_limit=1
|
||||||
|
DATABASE_CONNECTION_URL=postgresql://postgres.YOUR_USER:YOUR_PASSWORD@aws-0-us-west-1.pooler.supabase.com:5432/postgres?pgbouncer=true&connection_limit=1
|
||||||
|
DATABASE_CONNECTION_CLIENT_NAME=evolution_exchange
|
||||||
|
|
||||||
|
DATABASE_SAVE_DATA_INSTANCE=true
|
||||||
|
DATABASE_SAVE_DATA_NEW_MESSAGE=true
|
||||||
|
DATABASE_SAVE_MESSAGE_UPDATE=true
|
||||||
|
DATABASE_SAVE_DATA_CONTACTS=true
|
||||||
|
DATABASE_SAVE_DATA_CHATS=true
|
||||||
|
DATABASE_SAVE_DATA_LABELS=true
|
||||||
|
DATABASE_SAVE_DATA_HISTORIC=true
|
||||||
|
DATABASE_SAVE_IS_ON_WHATSAPP=true
|
||||||
|
DATABASE_SAVE_IS_ON_WHATSAPP_DAYS=7
|
||||||
|
DATABASE_DELETE_MESSAGE=true
|
||||||
|
|
||||||
|
RABBITMQ_ENABLED=false
|
||||||
|
RABBITMQ_URI=amqp://localhost
|
||||||
|
RABBITMQ_EXCHANGE_NAME=evolution
|
||||||
|
RABBITMQ_GLOBAL_ENABLED=false
|
||||||
|
RABBITMQ_PREFIX_KEY=evolution
|
||||||
|
RABBITMQ_EVENTS_APPLICATION_STARTUP=false
|
||||||
|
RABBITMQ_EVENTS_INSTANCE_CREATE=false
|
||||||
|
RABBITMQ_EVENTS_INSTANCE_DELETE=false
|
||||||
|
RABBITMQ_EVENTS_QRCODE_UPDATED=false
|
||||||
|
RABBITMQ_EVENTS_MESSAGES_SET=false
|
||||||
|
RABBITMQ_EVENTS_MESSAGES_UPSERT=false
|
||||||
|
RABBITMQ_EVENTS_MESSAGES_EDITED=false
|
||||||
|
RABBITMQ_EVENTS_MESSAGES_UPDATE=false
|
||||||
|
RABBITMQ_EVENTS_MESSAGES_DELETE=false
|
||||||
|
RABBITMQ_EVENTS_SEND_MESSAGE=false
|
||||||
|
RABBITMQ_EVENTS_CONTACTS_SET=false
|
||||||
|
RABBITMQ_EVENTS_CONTACTS_UPSERT=false
|
||||||
|
RABBITMQ_EVENTS_CONTACTS_UPDATE=false
|
||||||
|
RABBITMQ_EVENTS_PRESENCE_UPDATE=false
|
||||||
|
RABBITMQ_EVENTS_CHATS_SET=false
|
||||||
|
RABBITMQ_EVENTS_CHATS_UPSERT=false
|
||||||
|
RABBITMQ_EVENTS_CHATS_UPDATE=false
|
||||||
|
RABBITMQ_EVENTS_CHATS_DELETE=false
|
||||||
|
RABBITMQ_EVENTS_GROUPS_UPSERT=false
|
||||||
|
RABBITMQ_EVENTS_GROUP_UPDATE=false
|
||||||
|
RABBITMQ_EVENTS_GROUP_PARTICIPANTS_UPDATE=false
|
||||||
|
RABBITMQ_EVENTS_CONNECTION_UPDATE=false
|
||||||
|
RABBITMQ_EVENTS_REMOVE_INSTANCE=false
|
||||||
|
RABBITMQ_EVENTS_LOGOUT_INSTANCE=false
|
||||||
|
RABBITMQ_EVENTS_CALL=false
|
||||||
|
RABBITMQ_EVENTS_TYPEBOT_START=false
|
||||||
|
RABBITMQ_EVENTS_TYPEBOT_CHANGE_STATUS=false
|
||||||
|
|
||||||
|
SQS_ENABLED=false
|
||||||
|
SQS_ACCESS_KEY_ID=
|
||||||
|
SQS_SECRET_ACCESS_KEY=
|
||||||
|
SQS_ACCOUNT_ID=
|
||||||
|
SQS_REGION=
|
||||||
|
|
||||||
|
WEBSOCKET_ENABLED=false
|
||||||
|
WEBSOCKET_GLOBAL_EVENTS=false
|
||||||
|
|
||||||
|
PUSHER_ENABLED=false
|
||||||
|
PUSHER_GLOBAL_ENABLED=false
|
||||||
|
PUSHER_GLOBAL_APP_ID=
|
||||||
|
PUSHER_GLOBAL_KEY=
|
||||||
|
PUSHER_GLOBAL_SECRET=
|
||||||
|
PUSHER_GLOBAL_CLUSTER=
|
||||||
|
PUSHER_GLOBAL_USE_TLS=true
|
||||||
|
PUSHER_EVENTS_APPLICATION_STARTUP=true
|
||||||
|
PUSHER_EVENTS_QRCODE_UPDATED=true
|
||||||
|
PUSHER_EVENTS_MESSAGES_SET=true
|
||||||
|
PUSHER_EVENTS_MESSAGES_UPSERT=true
|
||||||
|
PUSHER_EVENTS_MESSAGES_EDITED=true
|
||||||
|
PUSHER_EVENTS_MESSAGES_UPDATE=true
|
||||||
|
PUSHER_EVENTS_MESSAGES_DELETE=true
|
||||||
|
PUSHER_EVENTS_SEND_MESSAGE=true
|
||||||
|
PUSHER_EVENTS_CONTACTS_SET=true
|
||||||
|
PUSHER_EVENTS_CONTACTS_UPSERT=true
|
||||||
|
PUSHER_EVENTS_CONTACTS_UPDATE=true
|
||||||
|
PUSHER_EVENTS_PRESENCE_UPDATE=true
|
||||||
|
PUSHER_EVENTS_CHATS_SET=true
|
||||||
|
PUSHER_EVENTS_CHATS_UPSERT=true
|
||||||
|
PUSHER_EVENTS_CHATS_UPDATE=true
|
||||||
|
PUSHER_EVENTS_CHATS_DELETE=true
|
||||||
|
PUSHER_EVENTS_GROUPS_UPSERT=true
|
||||||
|
PUSHER_EVENTS_GROUPS_UPDATE=true
|
||||||
|
PUSHER_EVENTS_GROUP_PARTICIPANTS_UPDATE=true
|
||||||
|
PUSHER_EVENTS_CONNECTION_UPDATE=true
|
||||||
|
PUSHER_EVENTS_LABELS_EDIT=true
|
||||||
|
PUSHER_EVENTS_LABELS_ASSOCIATION=true
|
||||||
|
PUSHER_EVENTS_CALL=true
|
||||||
|
PUSHER_EVENTS_TYPEBOT_START=false
|
||||||
|
PUSHER_EVENTS_TYPEBOT_CHANGE_STATUS=false
|
||||||
|
|
||||||
|
WA_BUSINESS_TOKEN_WEBHOOK=evolution
|
||||||
|
WA_BUSINESS_URL=https://graph.facebook.com
|
||||||
|
WA_BUSINESS_VERSION=v20.0
|
||||||
|
WA_BUSINESS_LANGUAGE=en_US
|
||||||
|
|
||||||
|
WEBHOOK_GLOBAL_ENABLED=false
|
||||||
|
WEBHOOK_GLOBAL_URL=''
|
||||||
|
WEBHOOK_GLOBAL_WEBHOOK_BY_EVENTS=false
|
||||||
|
WEBHOOK_EVENTS_APPLICATION_STARTUP=false
|
||||||
|
WEBHOOK_EVENTS_QRCODE_UPDATED=true
|
||||||
|
WEBHOOK_EVENTS_MESSAGES_SET=true
|
||||||
|
WEBHOOK_EVENTS_MESSAGES_UPSERT=true
|
||||||
|
WEBHOOK_EVENTS_MESSAGES_EDITED=true
|
||||||
|
WEBHOOK_EVENTS_MESSAGES_UPDATE=true
|
||||||
|
WEBHOOK_EVENTS_MESSAGES_DELETE=true
|
||||||
|
WEBHOOK_EVENTS_SEND_MESSAGE=true
|
||||||
|
WEBHOOK_EVENTS_CONTACTS_SET=true
|
||||||
|
WEBHOOK_EVENTS_CONTACTS_UPSERT=true
|
||||||
|
WEBHOOK_EVENTS_CONTACTS_UPDATE=true
|
||||||
|
WEBHOOK_EVENTS_PRESENCE_UPDATE=true
|
||||||
|
WEBHOOK_EVENTS_CHATS_SET=true
|
||||||
|
WEBHOOK_EVENTS_CHATS_UPSERT=true
|
||||||
|
WEBHOOK_EVENTS_CHATS_UPDATE=true
|
||||||
|
WEBHOOK_EVENTS_CHATS_DELETE=true
|
||||||
|
WEBHOOK_EVENTS_GROUPS_UPSERT=true
|
||||||
|
WEBHOOK_EVENTS_GROUPS_UPDATE=true
|
||||||
|
WEBHOOK_EVENTS_GROUP_PARTICIPANTS_UPDATE=true
|
||||||
|
WEBHOOK_EVENTS_CONNECTION_UPDATE=true
|
||||||
|
WEBHOOK_EVENTS_REMOVE_INSTANCE=false
|
||||||
|
WEBHOOK_EVENTS_LOGOUT_INSTANCE=false
|
||||||
|
WEBHOOK_EVENTS_LABELS_EDIT=true
|
||||||
|
WEBHOOK_EVENTS_LABELS_ASSOCIATION=true
|
||||||
|
WEBHOOK_EVENTS_CALL=true
|
||||||
|
WEBHOOK_EVENTS_TYPEBOT_START=false
|
||||||
|
WEBHOOK_EVENTS_TYPEBOT_CHANGE_STATUS=false
|
||||||
|
WEBHOOK_EVENTS_ERRORS=false
|
||||||
|
WEBHOOK_EVENTS_ERRORS_WEBHOOK=
|
||||||
|
|
||||||
|
CONFIG_SESSION_PHONE_CLIENT=Evolution API
|
||||||
|
CONFIG_SESSION_PHONE_NAME=Chrome
|
||||||
|
|
||||||
|
CONFIG_SESSION_PHONE_VERSION=2.3000.1015901307
|
||||||
|
|
||||||
|
QRCODE_LIMIT=30
|
||||||
|
QRCODE_COLOR='#175197'
|
||||||
|
|
||||||
|
TYPEBOT_ENABLED=false
|
||||||
|
TYPEBOT_API_VERSION=latest
|
||||||
|
|
||||||
|
CHATWOOT_ENABLED=false
|
||||||
|
CHATWOOT_MESSAGE_READ=true
|
||||||
|
CHATWOOT_MESSAGE_DELETE=true
|
||||||
|
CHATWOOT_BOT_CONTACT=true
|
||||||
|
CHATWOOT_IMPORT_DATABASE_CONNECTION_URI=postgresql://user:passwprd@host:5432/chatwoot?sslmode=disable
|
||||||
|
CHATWOOT_IMPORT_PLACEHOLDER_MEDIA_MESSAGE=true
|
||||||
|
|
||||||
|
OPENAI_ENABLED=false
|
||||||
|
|
||||||
|
DIFY_ENABLED=false
|
||||||
|
|
||||||
|
CACHE_REDIS_ENABLED=true
|
||||||
|
CACHE_REDIS_URI=rediss://default:YOUR_PASSWORD@just-stallion-44283.upstash.io:6379
|
||||||
|
CACHE_REDIS_TTL=604800
|
||||||
|
CACHE_REDIS_PREFIX_KEY=evolution
|
||||||
|
CACHE_REDIS_SAVE_INSTANCES=false
|
||||||
|
CACHE_LOCAL_ENABLED=false
|
||||||
|
|
||||||
|
S3_ENABLED=false
|
||||||
|
S3_ACCESS_KEY=
|
||||||
|
S3_SECRET_KEY=
|
||||||
|
S3_BUCKET=evolution
|
||||||
|
S3_PORT=443
|
||||||
|
S3_ENDPOINT=s3.domain.com
|
||||||
|
S3_REGION=eu-west-3
|
||||||
|
S3_USE_SSL=true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
AUTHENTICATION_API_KEY=429683C4C977415CAAFCCE10F7D57E11
|
||||||
|
AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=true
|
||||||
|
LANGUAGE=en
|
71
Dockerfile
71
Dockerfile
@ -1,58 +1,43 @@
|
|||||||
FROM node:20-alpine AS builder
|
# Usa una imagen oficial de Node.js como base
|
||||||
|
FROM node:20 AS build
|
||||||
|
|
||||||
RUN apk update && \
|
# Define el directorio de trabajo en el contenedor
|
||||||
apk add git ffmpeg wget curl bash openssl
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
LABEL version="2.2.3" description="Api to control whatsapp features through http requests."
|
# Copia package.json y package-lock.json
|
||||||
LABEL maintainer="Davidson Gomes" git="https://github.com/DavidsonGomes"
|
COPY package*.json ./
|
||||||
LABEL contact="contato@atendai.com"
|
|
||||||
|
|
||||||
WORKDIR /evolution
|
|
||||||
|
|
||||||
COPY ./package.json ./tsconfig.json ./
|
|
||||||
|
|
||||||
|
# Instala las dependencias
|
||||||
RUN npm install
|
RUN npm install
|
||||||
|
|
||||||
COPY ./src ./src
|
# Copia el resto de tu código, incluyendo la carpeta prisma y scripts
|
||||||
COPY ./public ./public
|
COPY . .
|
||||||
COPY ./prisma ./prisma
|
|
||||||
COPY ./manager ./manager
|
|
||||||
COPY ./.env.example ./.env
|
|
||||||
COPY ./runWithProvider.js ./
|
|
||||||
COPY ./tsup.config.ts ./
|
|
||||||
|
|
||||||
COPY ./Docker ./Docker
|
# Genera el cliente de Prisma usando tu script personalizado
|
||||||
|
RUN npm run db:generate
|
||||||
RUN chmod +x ./Docker/scripts/* && dos2unix ./Docker/scripts/*
|
|
||||||
|
|
||||||
RUN ./Docker/scripts/generate_database.sh
|
|
||||||
|
|
||||||
|
# Compila el proyecto TypeScript
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
FROM node:20-alpine AS final
|
# Usa una imagen base más ligera para la etapa de producción
|
||||||
|
FROM node:20-slim
|
||||||
|
|
||||||
RUN apk update && \
|
# Instala OpenSSL en la imagen de producción
|
||||||
apk add tzdata ffmpeg bash openssl
|
RUN apt-get update && apt-get install -y openssl
|
||||||
|
|
||||||
ENV TZ=America/Sao_Paulo
|
# Define el directorio de trabajo
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
WORKDIR /evolution
|
# Copia los artefactos compilados y dependencias desde la etapa de construcción
|
||||||
|
COPY --from=build /usr/src/app/dist ./dist
|
||||||
COPY --from=builder /evolution/package.json ./package.json
|
COPY --from=build /usr/src/app/node_modules ./node_modules
|
||||||
COPY --from=builder /evolution/package-lock.json ./package-lock.json
|
COPY --from=build /usr/src/app/manager ./manager
|
||||||
|
COPY --from=build /usr/src/app/prisma ./prisma
|
||||||
COPY --from=builder /evolution/node_modules ./node_modules
|
COPY --from=build /usr/src/app/package.json ./
|
||||||
COPY --from=builder /evolution/dist ./dist
|
COPY --from=build /usr/src/app/runWithProvider.js ./
|
||||||
COPY --from=builder /evolution/prisma ./prisma
|
|
||||||
COPY --from=builder /evolution/manager ./manager
|
|
||||||
COPY --from=builder /evolution/public ./public
|
|
||||||
COPY --from=builder /evolution/.env ./.env
|
|
||||||
COPY --from=builder /evolution/Docker ./Docker
|
|
||||||
COPY --from=builder /evolution/runWithProvider.js ./runWithProvider.js
|
|
||||||
COPY --from=builder /evolution/tsup.config.ts ./tsup.config.ts
|
|
||||||
|
|
||||||
ENV DOCKER_ENV=true
|
|
||||||
|
|
||||||
|
# Expone el puerto de la aplicación
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
|
|
||||||
ENTRYPOINT ["/bin/bash", "-c", ". ./Docker/scripts/deploy_database.sh && npm run start:prod" ]
|
# Comando para iniciar la aplicación
|
||||||
|
CMD ["sh", "-c", "npm run db:generate && npm run db:migrate:dev && node dist/main"]
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
services:
|
|
||||||
api:
|
|
||||||
container_name: evolution_api
|
|
||||||
image: evolution/api:local
|
|
||||||
build: .
|
|
||||||
restart: always
|
|
||||||
ports:
|
|
||||||
- 8080:8080
|
|
||||||
volumes:
|
|
||||||
- evolution_instances:/evolution/instances
|
|
||||||
networks:
|
|
||||||
- evolution-net
|
|
||||||
env_file:
|
|
||||||
- .env
|
|
||||||
expose:
|
|
||||||
- 8080
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
evolution_instances:
|
|
||||||
|
|
||||||
|
|
||||||
networks:
|
|
||||||
evolution-net:
|
|
||||||
name: evolution-net
|
|
||||||
driver: bridge
|
|
@ -1,60 +0,0 @@
|
|||||||
services:
|
|
||||||
api:
|
|
||||||
container_name: evolution_api
|
|
||||||
image: atendai/evolution-api:homolog
|
|
||||||
restart: always
|
|
||||||
depends_on:
|
|
||||||
- redis
|
|
||||||
- postgres
|
|
||||||
ports:
|
|
||||||
- 8080:8080
|
|
||||||
volumes:
|
|
||||||
- evolution_instances:/evolution/instances
|
|
||||||
networks:
|
|
||||||
- evolution-net
|
|
||||||
env_file:
|
|
||||||
- .env
|
|
||||||
expose:
|
|
||||||
- 8080
|
|
||||||
|
|
||||||
redis:
|
|
||||||
image: redis:latest
|
|
||||||
networks:
|
|
||||||
- evolution-net
|
|
||||||
container_name: redis
|
|
||||||
command: >
|
|
||||||
redis-server --port 6379 --appendonly yes
|
|
||||||
volumes:
|
|
||||||
- evolution_redis:/data
|
|
||||||
ports:
|
|
||||||
- 6379:6379
|
|
||||||
|
|
||||||
postgres:
|
|
||||||
container_name: postgres
|
|
||||||
image: postgres:15
|
|
||||||
networks:
|
|
||||||
- evolution-net
|
|
||||||
command: ["postgres", "-c", "max_connections=1000", "-c", "listen_addresses=*"]
|
|
||||||
restart: always
|
|
||||||
ports:
|
|
||||||
- 5432:5432
|
|
||||||
environment:
|
|
||||||
- POSTGRES_USER=user
|
|
||||||
- POSTGRES_PASSWORD=pass
|
|
||||||
- POSTGRES_DB=evolution
|
|
||||||
- POSTGRES_HOST_AUTH_METHOD=trust
|
|
||||||
volumes:
|
|
||||||
- postgres_data:/var/lib/postgresql/data
|
|
||||||
expose:
|
|
||||||
- 5432
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
evolution_instances:
|
|
||||||
evolution_redis:
|
|
||||||
postgres_data:
|
|
||||||
|
|
||||||
|
|
||||||
networks:
|
|
||||||
evolution-net:
|
|
||||||
name: evolution-net
|
|
||||||
driver: bridge
|
|
652
package-lock.json
generated
652
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -9,8 +9,9 @@ generator client {
|
|||||||
}
|
}
|
||||||
|
|
||||||
datasource db {
|
datasource db {
|
||||||
provider = "postgresql"
|
provider = "postgresql"
|
||||||
url = env("DATABASE_CONNECTION_URI")
|
url = env("DATABASE_CONNECTION_URI")
|
||||||
|
directUrl = env("DATABASE_CONNECTION_URL")
|
||||||
}
|
}
|
||||||
|
|
||||||
enum InstanceConnectionStatus {
|
enum InstanceConnectionStatus {
|
||||||
|
@ -4,7 +4,7 @@ const { existsSync } = require('fs');
|
|||||||
|
|
||||||
dotenv.config();
|
dotenv.config();
|
||||||
|
|
||||||
const { DATABASE_PROVIDER } = process.env;
|
const { DATABASE_PROVIDER, PRISMA_MIGRATIONS } = process.env;
|
||||||
const databaseProviderDefault = DATABASE_PROVIDER ?? 'postgresql';
|
const databaseProviderDefault = DATABASE_PROVIDER ?? 'postgresql';
|
||||||
|
|
||||||
if (!DATABASE_PROVIDER) {
|
if (!DATABASE_PROVIDER) {
|
||||||
@ -16,6 +16,13 @@ let command = process.argv
|
|||||||
.join(' ')
|
.join(' ')
|
||||||
.replace(/DATABASE_PROVIDER/g, databaseProviderDefault);
|
.replace(/DATABASE_PROVIDER/g, databaseProviderDefault);
|
||||||
|
|
||||||
|
if (command.includes('migrate')) {
|
||||||
|
if (PRISMA_MIGRATIONS !== "true") {
|
||||||
|
console.log("Prisma migrations han sido omitidas.");
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (command.includes('rmdir') && existsSync('prisma\\migrations')) {
|
if (command.includes('rmdir') && existsSync('prisma\\migrations')) {
|
||||||
try {
|
try {
|
||||||
execSync('rmdir /S /Q prisma\\migrations', { stdio: 'inherit' });
|
execSync('rmdir /S /Q prisma\\migrations', { stdio: 'inherit' });
|
||||||
|
Loading…
Reference in New Issue
Block a user