File size: 7,869 Bytes
5e518ea
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e8306c7
 
5e518ea
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e8306c7
5e518ea
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
FROM node:20-bullseye

# 1. تثبيت متطلبات النظام
RUN apt-get update \
  && apt-get install -y --no-install-recommends \
        git \
  && rm -rf /var/lib/apt/lists/*

# 2. نسخ ملفات المشروع
WORKDIR /app
COPY package*.json ./
COPY tsconfig.json ./
COPY tsup.config.ts ./
COPY prisma ./prisma/
COPY src ./src/
COPY manager ./manager/

# 3. تضمين متغيرات البيئة من .env.example
ENV SERVER_TYPE=http
ENV SERVER_PORT=7860
ENV SERVER_URL=https://oex2003-evolution_api.hf.space
ENV SSL_CONF_PRIVKEY=/path/to/cert.key
ENV SSL_CONF_FULLCHAIN=/path/to/cert.crt
ENV SENTRY_DSN=
ENV CORS_ORIGIN=*
ENV CORS_METHODS=GET,POST,PUT,DELETE
ENV CORS_CREDENTIALS=true
ENV LOG_LEVEL=ERROR,WARN,DEBUG,INFO,LOG,VERBOSE,DARK,WEBHOOKS,WEBSOCKET
ENV LOG_COLOR=true
ENV LOG_BAILEYS=verbose
ENV EVENT_EMITTER_MAX_LISTENERS=50
ENV DEL_INSTANCE=false
ENV DATABASE_PROVIDER=postgresql
ENV DATABASE_URL="postgresql://postgres.spnhuzaclgccmmunhmfc:Akalimain000-@aws-0-eu-north-1.pooler.supabase.com:5432/postgres?pgbouncer=true&statement_cache_size=0" 
ENV DATABASE_CONNECTION_URI="postgresql://postgres.spnhuzaclgccmmunhmfc:Akalimain000-@aws-0-eu-north-1.pooler.supabase.com:5432/postgres?pgbouncer=true&statement_cache_size=0" 
ENV DATABASE_CONNECTION_CLIENT_NAME=evolution_exchange
ENV DATABASE_SAVE_DATA_INSTANCE=true
ENV DATABASE_SAVE_DATA_NEW_MESSAGE=true
ENV DATABASE_SAVE_MESSAGE_UPDATE=true
ENV DATABASE_SAVE_DATA_CONTACTS=true
ENV DATABASE_SAVE_DATA_CHATS=true
ENV DATABASE_SAVE_DATA_LABELS=true
ENV DATABASE_SAVE_DATA_HISTORIC=true
ENV DATABASE_SAVE_IS_ON_WHATSAPP=true
ENV DATABASE_SAVE_IS_ON_WHATSAPP_DAYS=7
ENV DATABASE_DELETE_MESSAGE=true
ENV RABBITMQ_ENABLED=false
ENV RABBITMQ_URI=amqp://localhost
ENV RABBITMQ_EXCHANGE_NAME=evolution
ENV RABBITMQ_FRAME_MAX=8192
ENV RABBITMQ_GLOBAL_ENABLED=false
ENV RABBITMQ_PREFIX_KEY=evolution
ENV RABBITMQ_EVENTS_APPLICATION_STARTUP=false
ENV RABBITMQ_EVENTS_INSTANCE_CREATE=false
ENV RABBITMQ_EVENTS_INSTANCE_DELETE=false
ENV RABBITMQ_EVENTS_QRCODE_UPDATED=false
ENV RABBITMQ_EVENTS_MESSAGES_SET=false
ENV RABBITMQ_EVENTS_MESSAGES_UPSERT=false
ENV RABBITMQ_EVENTS_MESSAGES_EDITED=false
ENV RABBITMQ_EVENTS_MESSAGES_UPDATE=false
ENV RABBITMQ_EVENTS_MESSAGES_DELETE=false
ENV RABBITMQ_EVENTS_SEND_MESSAGE=false
ENV RABBITMQ_EVENTS_SEND_MESSAGE_UPDATE=false
ENV RABBITMQ_EVENTS_CONTACTS_SET=false
ENV RABBITMQ_EVENTS_CONTACTS_UPSERT=false
ENV RABBITMQ_EVENTS_CONTACTS_UPDATE=false
ENV RABBITMQ_EVENTS_PRESENCE_UPDATE=false
ENV RABBITMQ_EVENTS_CHATS_SET=false
ENV RABBITMQ_EVENTS_CHATS_UPSERT=false
ENV RABBITMQ_EVENTS_CHATS_UPDATE=false
ENV RABBITMQ_EVENTS_CHATS_DELETE=false
ENV RABBITMQ_EVENTS_GROUPS_UPSERT=false
ENV RABBITMQ_EVENTS_GROUPS_UPDATE=false
ENV RABBITMQ_EVENTS_GROUP_PARTICIPANTS_UPDATE=false
ENV RABBITMQ_EVENTS_CONNECTION_UPDATE=false
ENV RABBITMQ_EVENTS_REMOVE_INSTANCE=false
ENV RABBITMQ_EVENTS_LOGOUT_INSTANCE=false
ENV RABBITMQ_EVENTS_CALL=false
ENV RABBITMQ_EVENTS_TYPEBOT_START=false
ENV RABBITMQ_EVENTS_TYPEBOT_CHANGE_STATUS=false
ENV SQS_ENABLED=false
ENV SQS_ACCESS_KEY_ID=
ENV SQS_SECRET_ACCESS_KEY=
ENV SQS_ACCOUNT_ID=
ENV SQS_REGION=
ENV WEBSOCKET_ENABLED=true
ENV WEBSOCKET_GLOBAL_EVENTS=true
ENV PUSHER_ENABLED=false
ENV PUSHER_GLOBAL_ENABLED=false
ENV PUSHER_GLOBAL_APP_ID=
ENV PUSHER_GLOBAL_KEY=
ENV PUSHER_GLOBAL_SECRET=
ENV PUSHER_GLOBAL_CLUSTER=
ENV PUSHER_GLOBAL_USE_TLS=true
ENV PUSHER_EVENTS_APPLICATION_STARTUP=true
ENV PUSHER_EVENTS_QRCODE_UPDATED=true
ENV PUSHER_EVENTS_MESSAGES_SET=true
ENV PUSHER_EVENTS_MESSAGES_UPSERT=true
ENV PUSHER_EVENTS_MESSAGES_EDITED=true
ENV PUSHER_EVENTS_MESSAGES_UPDATE=true
ENV PUSHER_EVENTS_MESSAGES_DELETE=true
ENV PUSHER_EVENTS_SEND_MESSAGE=true
ENV PUSHER_EVENTS_SEND_MESSAGE_UPDATE=true
ENV PUSHER_EVENTS_CONTACTS_SET=true
ENV PUSHER_EVENTS_CONTACTS_UPSERT=true
ENV PUSHER_EVENTS_CONTACTS_UPDATE=true
ENV PUSHER_EVENTS_PRESENCE_UPDATE=true
ENV PUSHER_EVENTS_CHATS_SET=true
ENV PUSHER_EVENTS_CHATS_UPSERT=true
ENV PUSHER_EVENTS_CHATS_UPDATE=true
ENV PUSHER_EVENTS_CHATS_DELETE=true
ENV PUSHER_EVENTS_GROUPS_UPSERT=true
ENV PUSHER_EVENTS_GROUPS_UPDATE=true
ENV PUSHER_EVENTS_GROUP_PARTICIPANTS_UPDATE=true
ENV PUSHER_EVENTS_CONNECTION_UPDATE=true
ENV PUSHER_EVENTS_LABELS_EDIT=true
ENV PUSHER_EVENTS_LABELS_ASSOCIATION=true
ENV PUSHER_EVENTS_CALL=true
ENV PUSHER_EVENTS_TYPEBOT_START=false
ENV PUSHER_EVENTS_TYPEBOT_CHANGE_STATUS=false
ENV WA_BUSINESS_TOKEN_WEBHOOK=evolution
ENV WA_BUSINESS_URL=https://graph.facebook.com
ENV WA_BUSINESS_VERSION=v20.0
ENV WA_BUSINESS_LANGUAGE=en_US
ENV WEBHOOK_GLOBAL_ENABLED=false
ENV WEBHOOK_GLOBAL_URL=
ENV WEBHOOK_GLOBAL_WEBHOOK_BY_EVENTS=false
ENV WEBHOOK_EVENTS_APPLICATION_STARTUP=false
ENV WEBHOOK_EVENTS_QRCODE_UPDATED=true
ENV WEBHOOK_EVENTS_MESSAGES_SET=true
ENV WEBHOOK_EVENTS_MESSAGES_UPSERT=true
ENV WEBHOOK_EVENTS_MESSAGES_EDITED=true
ENV WEBHOOK_EVENTS_MESSAGES_UPDATE=true
ENV WEBHOOK_EVENTS_MESSAGES_DELETE=true
ENV WEBHOOK_EVENTS_SEND_MESSAGE=true
ENV WEBHOOK_EVENTS_SEND_MESSAGE_UPDATE=true
ENV WEBHOOK_EVENTS_CONTACTS_SET=true
ENV WEBHOOK_EVENTS_CONTACTS_UPSERT=true
ENV WEBHOOK_EVENTS_CONTACTS_UPDATE=true
ENV WEBHOOK_EVENTS_PRESENCE_UPDATE=true
ENV WEBHOOK_EVENTS_CHATS_SET=true
ENV WEBHOOK_EVENTS_CHATS_UPSERT=true
ENV WEBHOOK_EVENTS_CHATS_UPDATE=true
ENV WEBHOOK_EVENTS_CHATS_DELETE=true
ENV WEBHOOK_EVENTS_GROUPS_UPSERT=true
ENV WEBHOOK_EVENTS_GROUPS_UPDATE=true
ENV WEBHOOK_EVENTS_GROUP_PARTICIPANTS_UPDATE=true
ENV WEBHOOK_EVENTS_CONNECTION_UPDATE=true
ENV WEBHOOK_EVENTS_REMOVE_INSTANCE=false
ENV WEBHOOK_EVENTS_LOGOUT_INSTANCE=false
ENV WEBHOOK_EVENTS_LABELS_EDIT=true
ENV WEBHOOK_EVENTS_LABELS_ASSOCIATION=true
ENV WEBHOOK_EVENTS_CALL=true
ENV WEBHOOK_EVENTS_TYPEBOT_START=false
ENV WEBHOOK_EVENTS_TYPEBOT_CHANGE_STATUS=false
ENV WEBHOOK_EVENTS_ERRORS=false
ENV WEBHOOK_EVENTS_ERRORS_WEBHOOK=
ENV WEBHOOK_REQUEST_TIMEOUT_MS=60000
ENV WEBHOOK_RETRY_MAX_ATTEMPTS=10
ENV WEBHOOK_RETRY_INITIAL_DELAY_SECONDS=5
ENV WEBHOOK_RETRY_USE_EXPONENTIAL_BACKOFF=true
ENV WEBHOOK_RETRY_MAX_DELAY_SECONDS=300
ENV WEBHOOK_RETRY_JITTER_FACTOR=0.2
ENV WEBHOOK_RETRY_NON_RETRYABLE_STATUS_CODES=400,401,403,404,422
ENV CONFIG_SESSION_PHONE_NAME=Chrome
ENV CONFIG_SESSION_PHONE_VERSION=2.3000.1023223821
ENV QRCODE_LIMIT=30
ENV QRCODE_COLOR=#000000
ENV TYPEBOT_ENABLED=false
ENV TYPEBOT_API_VERSION=latest
ENV CHATWOOT_ENABLED=false
ENV CHATWOOT_MESSAGE_READ=true
ENV CHATWOOT_MESSAGE_DELETE=true
ENV CHATWOOT_BOT_CONTACT=true
ENV CHATWOOT_IMPORT_DATABASE_CONNECTION_URI=
ENV CHATWOOT_IMPORT_PLACEHOLDER_MEDIA_MESSAGE=true
ENV OPENAI_ENABLED=false
ENV DIFY_ENABLED=false
ENV N8N_ENABLED=false
ENV EVOAI_ENABLED=false
ENV CACHE_REDIS_ENABLED=true
ENV CACHE_REDIS_URI=rediss://default:ARgBAAIjcDE5NjMxODI2NGI1ZWQ0ZWNjOGM5MzZjNGI5MDM2Mjg1MnAxMA@related-ant-6145.upstash.io:6379
ENV CACHE_REDIS_TTL=604800
ENV CACHE_REDIS_PREFIX_KEY=evolution
ENV CACHE_REDIS_SAVE_INSTANCES=true
ENV CACHE_LOCAL_ENABLED=false
ENV S3_ENABLED=false
ENV S3_ACCESS_KEY=
ENV S3_SECRET_KEY=
ENV S3_BUCKET=evolution
ENV S3_PORT=443
ENV S3_ENDPOINT=s3.domain.com
ENV S3_REGION=eu-west-3
ENV S3_USE_SSL=true
ENV AUTHENTICATION_API_KEY=429683C4C977415CAAFCCE10F7D57E11
ENV AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=true
ENV LANGUAGE=en
ENV PROXY_HOST=
#ENV PROXY_PORT=80
ENV PROXY_PROTOCOL=http
ENV PROXY_USERNAME=
ENV PROXY_PASSWORD=""

# 4. تثبيت، إعداد مخطط Prisma، إنشاء العميل، والبناء
RUN npm install \
  && npm install \
  && mkdir -p prisma \
  && cp prisma/postgresql-schema.prisma prisma/schema.prisma \
  && npx prisma generate \
  && npm run build

# 5. كشف منفذ Huggingface ونسخ سكريبت بدء التشغيل
EXPOSE 7860
COPY run.sh /app/run.sh
RUN chmod +x /app/run.sh

# 6. إصلاح الأذونات والتبديل إلى مستخدم غير جذري
RUN chown -R node:node /app
USER node
WORKDIR /app

ENTRYPOINT ["bash", "/app/run.sh"]