
Deploy Evolution API on Your Own Server
Evolution API is a powerful WhatsApp API that allows you to create bots and automate your WhatsApp communication.
💬 Communication
想更快部署 Evolution API到服务器?试试 Senate,一条命令完成部署,自动配置 HTTPS 和监控。
什么是 Evolution API?
Deploying Evolution API with required services (PostgreSQL, Redis, RabbitMQ)...
自托管 Evolution API
按照以下步骤在您的服务器上部署。
1
安装 Docker
如果服务器上已安装 Docker,可跳过此步骤。
curl -fsSL https://get.docker.com | sh
2
配置
自定义以下设置。大多数情况下使用默认值即可。
3
部署
复制配置并在服务器上运行。
services:
evolution_api:
image: atendai/evolution-api:v2.2.1
environment:
AUTHENTICATION_API_KEY: evolution_api_authentication_api_key
AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES: "false"
CACHE_LOCAL_ENABLED: "false"
CACHE_REDIS_ENABLED: "true"
CACHE_REDIS_PREFIX_KEY: "evolution-api:"
CACHE_REDIS_SAVE_INSTANCES: "true"
CACHE_REDIS_TTL: "3600"
CACHE_REDIS_URI: redis://evolution_api-redis:6379
CHATWOOT_BOT_CONTACT: "false"
CHATWOOT_ENABLED: "false"
CHATWOOT_IMPORT_DATABASE_CONNECTION_URI: ""
CHATWOOT_IMPORT_PLACEHOLDER_MEDIA_MESSAGE: ""
CHATWOOT_MESSAGE_DELETE: "false"
CHATWOOT_MESSAGE_READ: "false"
CONFIG_SESSION_PHONE_CLIENT: Evolution API
CONFIG_SESSION_PHONE_NAME: Chrome
CONFIG_SESSION_PHONE_VERSION: 4.0.0
CORS_CREDENTIALS: "true"
CORS_METHODS: POST,GET,PUT,DELETE
CORS_ORIGIN: "*"
DATABASE_CONNECTION_CLIENT_NAME: evolution-api
DATABASE_CONNECTION_URI: postgres://evolution:925e9af0804594ea@evolution_api-postgres:5432/evolution_db
DATABASE_DELETE_MESSAGE: "false"
DATABASE_PROVIDER: postgresql
DATABASE_SAVE_DATA_CHATS: "true"
DATABASE_SAVE_DATA_CONTACTS: "true"
DATABASE_SAVE_DATA_HISTORIC: "true"
DATABASE_SAVE_DATA_INSTANCE: "true"
DATABASE_SAVE_DATA_LABELS: "true"
DATABASE_SAVE_DATA_NEW_MESSAGE: "true"
DATABASE_SAVE_IS_ON_WHATSAPP: "true"
DATABASE_SAVE_IS_ON_WHATSAPP_DAYS: "30"
DATABASE_SAVE_MESSAGE_UPDATE: "true"
DEL_INSTANCE: "false"
DIFY_ENABLED: "false"
EVENT_EMITTER_MAX_LISTENERS: "100"
LANGUAGE: en
LOG_BAILEYS: error
LOG_COLOR: "true"
LOG_LEVEL: info
OPENAI_ENABLED: "false"
PROXY_HOST: ""
PROXY_PASSWORD: ""
PROXY_PORT: ""
PROXY_PROTOCOL: ""
PROXY_USERNAME: ""
PUSHER_ENABLED: "false"
PUSHER_EVENTS_APPLICATION_STARTUP: ""
PUSHER_EVENTS_CALL: ""
PUSHER_EVENTS_CHATS_DELETE: ""
PUSHER_EVENTS_CHATS_SET: ""
PUSHER_EVENTS_CHATS_UPDATE: ""
PUSHER_EVENTS_CHATS_UPSERT: ""
PUSHER_EVENTS_CONNECTION_UPDATE: ""
PUSHER_EVENTS_CONTACTS_SET: ""
PUSHER_EVENTS_CONTACTS_UPDATE: ""
PUSHER_EVENTS_CONTACTS_UPSERT: ""
PUSHER_EVENTS_GROUPS_UPDATE: ""
PUSHER_EVENTS_GROUPS_UPSERT: ""
PUSHER_EVENTS_GROUP_PARTICIPANTS_UPDATE: ""
PUSHER_EVENTS_LABELS_ASSOCIATION: ""
PUSHER_EVENTS_LABELS_EDIT: ""
PUSHER_EVENTS_MESSAGES_DELETE: ""
PUSHER_EVENTS_MESSAGES_EDITED: ""
PUSHER_EVENTS_MESSAGES_SET: ""
PUSHER_EVENTS_MESSAGES_UPDATE: ""
PUSHER_EVENTS_MESSAGES_UPSERT: ""
PUSHER_EVENTS_PRESENCE_UPDATE: ""
PUSHER_EVENTS_QRCODE_UPDATED: ""
PUSHER_EVENTS_SEND_MESSAGE: ""
PUSHER_EVENTS_TYPEBOT_CHANGE_STATUS: ""
PUSHER_EVENTS_TYPEBOT_START: ""
PUSHER_GLOBAL_APP_ID: ""
PUSHER_GLOBAL_CLUSTER: ""
PUSHER_GLOBAL_ENABLED: "false"
PUSHER_GLOBAL_KEY: ""
PUSHER_GLOBAL_SECRET: ""
PUSHER_GLOBAL_USE_TLS: ""
QRCODE_COLOR: "#198754"
QRCODE_LIMIT: "30"
RABBITMQ_ENABLED: "true"
RABBITMQ_EVENTS_APPLICATION_STARTUP: "true"
RABBITMQ_EVENTS_CALL: "true"
RABBITMQ_EVENTS_CHATS_DELETE: "true"
RABBITMQ_EVENTS_CHATS_SET: "true"
RABBITMQ_EVENTS_CHATS_UPDATE: "true"
RABBITMQ_EVENTS_CHATS_UPSERT: "true"
RABBITMQ_EVENTS_CONNECTION_UPDATE: "true"
RABBITMQ_EVENTS_CONTACTS_SET: "true"
RABBITMQ_EVENTS_CONTACTS_UPDATE: "true"
RABBITMQ_EVENTS_CONTACTS_UPSERT: "true"
RABBITMQ_EVENTS_GROUPS_UPSERT: "true"
RABBITMQ_EVENTS_GROUP_PARTICIPANTS_UPDATE: "true"
RABBITMQ_EVENTS_GROUP_UPDATE: "true"
RABBITMQ_EVENTS_INSTANCE_CREATE: "true"
RABBITMQ_EVENTS_INSTANCE_DELETE: "true"
RABBITMQ_EVENTS_LOGOUT_INSTANCE: "true"
RABBITMQ_EVENTS_MESSAGES_DELETE: "true"
RABBITMQ_EVENTS_MESSAGES_EDITED: "true"
RABBITMQ_EVENTS_MESSAGES_SET: "true"
RABBITMQ_EVENTS_MESSAGES_UPDATE: "true"
RABBITMQ_EVENTS_MESSAGES_UPSERT: "true"
RABBITMQ_EVENTS_PRESENCE_UPDATE: "true"
RABBITMQ_EVENTS_QRCODE_UPDATED: "true"
RABBITMQ_EVENTS_REMOVE_INSTANCE: "true"
RABBITMQ_EVENTS_SEND_MESSAGE: "true"
RABBITMQ_EVENTS_TYPEBOT_CHANGE_STATUS: "true"
RABBITMQ_EVENTS_TYPEBOT_START: "true"
RABBITMQ_EXCHANGE_NAME: evolution-api
RABBITMQ_GLOBAL_ENABLED: "true"
RABBITMQ_URI: amqp://evolution:ae3c742c3615f876@evolution_api-rabbitmq:5672
S3_ACCESS_KEY: ""
S3_BUCKET: ""
S3_ENABLED: "false"
S3_ENDPOINT: ""
S3_PORT: ""
S3_REGION: us-east-1
S3_SECRET_KEY: ""
S3_USE_SSL: "false"
SENTRY_DSN: ""
SERVER_PORT: "80"
SERVER_TYPE: http
SERVER_URL: https://evolution_api.your-domain.com
SQS_ACCESS_KEY_ID: ""
SQS_ACCOUNT_ID: ""
SQS_ENABLED: "false"
SQS_REGION: ""
SQS_SECRET_ACCESS_KEY: ""
TYPEBOT_API_VERSION: "1"
TYPEBOT_ENABLED: "false"
WA_BUSINESS_LANGUAGE: ""
WA_BUSINESS_TOKEN_WEBHOOK: ""
WA_BUSINESS_URL: ""
WA_BUSINESS_VERSION: ""
WEBHOOK_EVENTS_APPLICATION_STARTUP: "true"
WEBHOOK_EVENTS_CALL: "true"
WEBHOOK_EVENTS_CHATS_DELETE: "true"
WEBHOOK_EVENTS_CHATS_SET: "true"
WEBHOOK_EVENTS_CHATS_UPDATE: "true"
WEBHOOK_EVENTS_CHATS_UPSERT: "true"
WEBHOOK_EVENTS_CONNECTION_UPDATE: "true"
WEBHOOK_EVENTS_CONTACTS_SET: "true"
WEBHOOK_EVENTS_CONTACTS_UPDATE: "true"
WEBHOOK_EVENTS_CONTACTS_UPSERT: "true"
WEBHOOK_EVENTS_ERRORS: "true"
WEBHOOK_EVENTS_ERRORS_WEBHOOK: "true"
WEBHOOK_EVENTS_GROUPS_UPDATE: "true"
WEBHOOK_EVENTS_GROUPS_UPSERT: "true"
WEBHOOK_EVENTS_GROUP_PARTICIPANTS_UPDATE: "true"
WEBHOOK_EVENTS_LABELS_ASSOCIATION: "true"
WEBHOOK_EVENTS_LABELS_EDIT: "true"
WEBHOOK_EVENTS_LOGOUT_INSTANCE: "true"
WEBHOOK_EVENTS_MESSAGES_DELETE: "true"
WEBHOOK_EVENTS_MESSAGES_EDITED: "true"
WEBHOOK_EVENTS_MESSAGES_SET: "true"
WEBHOOK_EVENTS_MESSAGES_UPDATE: "true"
WEBHOOK_EVENTS_MESSAGES_UPSERT: "true"
WEBHOOK_EVENTS_PRESENCE_UPDATE: "true"
WEBHOOK_EVENTS_QRCODE_UPDATED: "true"
WEBHOOK_EVENTS_REMOVE_INSTANCE: "true"
WEBHOOK_EVENTS_SEND_MESSAGE: "true"
WEBHOOK_EVENTS_TYPEBOT_CHANGE_STATUS: "true"
WEBHOOK_EVENTS_TYPEBOT_START: "true"
WEBHOOK_GLOBAL_ENABLED: "true"
WEBHOOK_GLOBAL_URL: https://your-webhook-url.com
WEBHOOK_GLOBAL_WEBHOOK_BY_EVENTS: "true"
WEBSOCKET_ENABLED: "false"
WEBSOCKET_GLOBAL_EVENTS: "false"
volumes:
- evolution_api-data:/evolution
depends_on:
- evolution_api-redis
- evolution_api-postgres
- evolution_api-rabbitmq
evolution_api-postgres:
image: postgres:17
environment:
POSTGRES_DB: evolution_db
POSTGRES_PASSWORD: 925e9af0804594ea
POSTGRES_USER: evolution
volumes:
- evolution_api-postgres-data:/var/lib/postgresql/data
evolution_api-rabbitmq:
image: rabbitmq:3.7
environment:
RABBITMQ_DEFAULT_PASS: ae3c742c3615f876
RABBITMQ_DEFAULT_USER: evolution
volumes:
- evolution_api-rabbitmq-data:/var/lib/rabbitmq
evolution_api-redis:
image: redis:latest
volumes:
- evolution_api-redis-data:/data
volumes:
evolution_api-data: {}
evolution_api-postgres-data: {}
evolution_api-rabbitmq-data: {}
evolution_api-redis-data: {}
然后运行:
docker compose up -d
4
访问
启动后,访问您的应用: http://localhost:80
为什么要自托管 Evolution API?
完全数据所有权
数据保存在您的服务器上,无第三方访问。
无月费
只需支付服务器费用,无按席位或用量收费。
完全控制
按您的需求自定义、备份和扩展。
隐私与合规
满足 GDPR、HIPAA 或内部安全要求。
技术细节
Docker 镜像
atendai/evolution-api:${ant_version}想更快部署?
尝试 Senate!Senate 帮您处理 Docker、HTTPS、更新和监控。一条命令部署 300+ 应用。
在任意 Linux 服务器上安装:
sh -c "$(curl -sSL https://get.senate.sh)"