mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-23 04:22:02 -06:00
refactor v1
This commit is contained in:
parent
427c994993
commit
b1e9f5171c
@ -1,5 +1,4 @@
|
||||
.git
|
||||
*Dockerfile*
|
||||
*docker-compose*
|
||||
node_modules
|
||||
npm-debug.log
|
||||
dist
|
||||
.env
|
||||
|
@ -1,37 +1,28 @@
|
||||
PRISMA_MIGRATIONS=true
|
||||
|
||||
SERVER_TYPE=http
|
||||
SERVER_PORT=8080
|
||||
# Server URL - Set your application url
|
||||
SERVER_URL=http://localhost:8080
|
||||
|
||||
SENTRY_DSN=
|
||||
|
||||
# Cors - * for all or set separate by commas - ex.: 'yourdomain1.com, yourdomain2.com'
|
||||
CORS_ORIGIN=*
|
||||
CORS_METHODS=GET,POST,PUT,DELETE
|
||||
CORS_CREDENTIALS=true
|
||||
|
||||
# Determine the logs to be displayed
|
||||
LOG_LEVEL=ERROR,WARN,DEBUG,INFO,LOG,VERBOSE,DARK,WEBHOOKS,WEBSOCKET
|
||||
LOG_COLOR=true
|
||||
# Log Baileys - "fatal" | "error" | "warn" | "info" | "debug" | "trace"
|
||||
LOG_BAILEYS=error
|
||||
|
||||
# Set the maximum number of listeners that can be registered for an event
|
||||
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
|
||||
|
||||
# Provider: postgresql | mysql
|
||||
DATABASE_PROVIDER=postgresql
|
||||
DATABASE_CONNECTION_URI='postgresql://user:pass@postgres:5432/evolution?schema=public'
|
||||
# Client name for the database connection
|
||||
# It is used to separate an API installation from another that uses the same database.
|
||||
DATABASE_CONNECTION_URI=postgresql://postgres:YOUR_PASSWORD@localhost:5432/evolution?schema=public
|
||||
DATABASE_CONNECTION_URL=postgresql://postgres:YOUR_PASSWORD@localhost:5432/evolution?schema=public
|
||||
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_NEW_MESSAGE=true
|
||||
DATABASE_SAVE_MESSAGE_UPDATE=true
|
||||
@ -43,15 +34,11 @@ DATABASE_SAVE_IS_ON_WHATSAPP=true
|
||||
DATABASE_SAVE_IS_ON_WHATSAPP_DAYS=7
|
||||
DATABASE_DELETE_MESSAGE=true
|
||||
|
||||
# RabbitMQ - Environment variables
|
||||
RABBITMQ_ENABLED=false
|
||||
RABBITMQ_URI=amqp://localhost
|
||||
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
|
||||
# Prefix key to queue name
|
||||
RABBITMQ_PREFIX_KEY=evolution
|
||||
# Choose the events you want to send to RabbitMQ
|
||||
RABBITMQ_EVENTS_APPLICATION_STARTUP=false
|
||||
RABBITMQ_EVENTS_INSTANCE_CREATE=false
|
||||
RABBITMQ_EVENTS_INSTANCE_DELETE=false
|
||||
@ -80,18 +67,15 @@ RABBITMQ_EVENTS_CALL=false
|
||||
RABBITMQ_EVENTS_TYPEBOT_START=false
|
||||
RABBITMQ_EVENTS_TYPEBOT_CHANGE_STATUS=false
|
||||
|
||||
# SQS - Environment variables
|
||||
SQS_ENABLED=false
|
||||
SQS_ACCESS_KEY_ID=
|
||||
SQS_SECRET_ACCESS_KEY=
|
||||
SQS_ACCOUNT_ID=
|
||||
SQS_REGION=
|
||||
|
||||
# Websocket - Environment variables
|
||||
WEBSOCKET_ENABLED=false
|
||||
WEBSOCKET_GLOBAL_EVENTS=false
|
||||
|
||||
# Pusher - Environment variables
|
||||
PUSHER_ENABLED=false
|
||||
PUSHER_GLOBAL_ENABLED=false
|
||||
PUSHER_GLOBAL_APP_ID=
|
||||
@ -99,7 +83,6 @@ PUSHER_GLOBAL_KEY=
|
||||
PUSHER_GLOBAL_SECRET=
|
||||
PUSHER_GLOBAL_CLUSTER=
|
||||
PUSHER_GLOBAL_USE_TLS=true
|
||||
# Choose the events you want to send to Pusher
|
||||
PUSHER_EVENTS_APPLICATION_STARTUP=true
|
||||
PUSHER_EVENTS_QRCODE_UPDATED=true
|
||||
PUSHER_EVENTS_MESSAGES_SET=true
|
||||
@ -126,21 +109,14 @@ PUSHER_EVENTS_CALL=true
|
||||
PUSHER_EVENTS_TYPEBOT_START=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_URL=https://graph.facebook.com
|
||||
WA_BUSINESS_VERSION=v20.0
|
||||
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
|
||||
# Define a global webhook that will listen for enabled events from all instances
|
||||
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
|
||||
# Set the events you want to hear
|
||||
WEBHOOK_EVENTS_APPLICATION_STARTUP=false
|
||||
WEBHOOK_EVENTS_QRCODE_UPDATED=true
|
||||
WEBHOOK_EVENTS_MESSAGES_SET=true
|
||||
@ -166,63 +142,40 @@ WEBHOOK_EVENTS_LOGOUT_INSTANCE=false
|
||||
WEBHOOK_EVENTS_LABELS_EDIT=true
|
||||
WEBHOOK_EVENTS_LABELS_ASSOCIATION=true
|
||||
WEBHOOK_EVENTS_CALL=true
|
||||
# This events is used with Typebot
|
||||
WEBHOOK_EVENTS_TYPEBOT_START=false
|
||||
WEBHOOK_EVENTS_TYPEBOT_CHANGE_STATUS=false
|
||||
# This event is used to send errors
|
||||
WEBHOOK_EVENTS_ERRORS=false
|
||||
WEBHOOK_EVENTS_ERRORS_WEBHOOK=
|
||||
|
||||
# Name that will be displayed on smartphone connection
|
||||
CONFIG_SESSION_PHONE_CLIENT=Evolution API
|
||||
# Browser Name = Chrome | Firefox | Edge | Opera | Safari
|
||||
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
|
||||
|
||||
# Set qrcode display limit
|
||||
QRCODE_LIMIT=30
|
||||
# Color of the QRCode on base64
|
||||
QRCODE_COLOR='#175197'
|
||||
|
||||
# Typebot - Environment variables
|
||||
TYPEBOT_ENABLED=false
|
||||
# old | latest
|
||||
TYPEBOT_API_VERSION=latest
|
||||
|
||||
# Chatwoot - Environment variables
|
||||
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
|
||||
# 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
|
||||
# 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
|
||||
# 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_PLACEHOLDER_MEDIA_MESSAGE=true
|
||||
|
||||
# OpenAI - Environment variables
|
||||
OPENAI_ENABLED=false
|
||||
|
||||
# Dify - Environment variables
|
||||
DIFY_ENABLED=false
|
||||
|
||||
# Cache - Environment variables
|
||||
# Redis Cache enabled
|
||||
CACHE_REDIS_ENABLED=true
|
||||
CACHE_REDIS_URI=redis://localhost:6379/6
|
||||
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
|
||||
# Enabling this variable will save the connection information in Redis and not in the database.
|
||||
CACHE_REDIS_SAVE_INSTANCES=false
|
||||
# Local Cache enabled
|
||||
CACHE_LOCAL_ENABLED=false
|
||||
|
||||
# Amazon S3 - Environment variables
|
||||
S3_ENABLED=false
|
||||
S3_ACCESS_KEY=
|
||||
S3_SECRET_KEY=
|
||||
@ -232,38 +185,9 @@ S3_ENDPOINT=s3.domain.com
|
||||
S3_REGION=eu-west-3
|
||||
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
|
||||
# If you leave this option as true, the instances will be exposed in the fetch instances endpoint.
|
||||
AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=true
|
||||
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 && \
|
||||
apk add git ffmpeg wget curl bash openssl
|
||||
# Define el directorio de trabajo en el contenedor
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
LABEL version="2.2.3" description="Api to control whatsapp features through http requests."
|
||||
LABEL maintainer="Davidson Gomes" git="https://github.com/DavidsonGomes"
|
||||
LABEL contact="contato@atendai.com"
|
||||
|
||||
WORKDIR /evolution
|
||||
|
||||
COPY ./package.json ./tsconfig.json ./
|
||||
# Copia package.json y package-lock.json
|
||||
COPY package*.json ./
|
||||
|
||||
# Instala las dependencias
|
||||
RUN npm install
|
||||
|
||||
COPY ./src ./src
|
||||
COPY ./public ./public
|
||||
COPY ./prisma ./prisma
|
||||
COPY ./manager ./manager
|
||||
COPY ./.env.example ./.env
|
||||
COPY ./runWithProvider.js ./
|
||||
COPY ./tsup.config.ts ./
|
||||
# Copia el resto de tu código, incluyendo la carpeta prisma y scripts
|
||||
COPY . .
|
||||
|
||||
COPY ./Docker ./Docker
|
||||
|
||||
RUN chmod +x ./Docker/scripts/* && dos2unix ./Docker/scripts/*
|
||||
|
||||
RUN ./Docker/scripts/generate_database.sh
|
||||
# Genera el cliente de Prisma usando tu script personalizado
|
||||
RUN npm run db:generate
|
||||
|
||||
# Compila el proyecto TypeScript
|
||||
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 && \
|
||||
apk add tzdata ffmpeg bash openssl
|
||||
# Instala OpenSSL en la imagen de producción
|
||||
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
|
||||
|
||||
COPY --from=builder /evolution/package.json ./package.json
|
||||
COPY --from=builder /evolution/package-lock.json ./package-lock.json
|
||||
|
||||
COPY --from=builder /evolution/node_modules ./node_modules
|
||||
COPY --from=builder /evolution/dist ./dist
|
||||
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
|
||||
# Copia los artefactos compilados y dependencias desde la etapa de construcción
|
||||
COPY --from=build /usr/src/app/dist ./dist
|
||||
COPY --from=build /usr/src/app/node_modules ./node_modules
|
||||
COPY --from=build /usr/src/app/manager ./manager
|
||||
COPY --from=build /usr/src/app/prisma ./prisma
|
||||
COPY --from=build /usr/src/app/package.json ./
|
||||
COPY --from=build /usr/src/app/runWithProvider.js ./
|
||||
|
||||
# Expone el puerto de la aplicación
|
||||
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 {
|
||||
provider = "postgresql"
|
||||
url = env("DATABASE_CONNECTION_URI")
|
||||
provider = "postgresql"
|
||||
url = env("DATABASE_CONNECTION_URI")
|
||||
directUrl = env("DATABASE_CONNECTION_URL")
|
||||
}
|
||||
|
||||
enum InstanceConnectionStatus {
|
||||
|
@ -4,7 +4,7 @@ const { existsSync } = require('fs');
|
||||
|
||||
dotenv.config();
|
||||
|
||||
const { DATABASE_PROVIDER } = process.env;
|
||||
const { DATABASE_PROVIDER, PRISMA_MIGRATIONS } = process.env;
|
||||
const databaseProviderDefault = DATABASE_PROVIDER ?? 'postgresql';
|
||||
|
||||
if (!DATABASE_PROVIDER) {
|
||||
@ -16,6 +16,13 @@ let command = process.argv
|
||||
.join(' ')
|
||||
.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')) {
|
||||
try {
|
||||
execSync('rmdir /S /Q prisma\\migrations', { stdio: 'inherit' });
|
||||
|
Loading…
Reference in New Issue
Block a user