Skip to content

Instantly share code, notes, and snippets.

@buraxta
Created September 19, 2025 19:10
Show Gist options
  • Save buraxta/bfce0aab020c98a0e671bb82129fdd21 to your computer and use it in GitHub Desktop.
Save buraxta/bfce0aab020c98a0e671bb82129fdd21 to your computer and use it in GitHub Desktop.
docker-compose.yml
version: "3.7"
volumes:
tiledesk-datadb:
services:
dashboard:
image: buraxtaa/tiledesk-dashboard-custom:latest
container_name: dashboard
restart: always
ports:
- "4201:80"
networks:
- tiledesk-net
environment:
SERVER_BASE_URL: 'http://localhost:8081/api/'
WS_URL: 'ws://localhost:8081/ws/'
API_BASEIMAGE_URL: 'http://localhost:8081/api/'
WIDGET_LOCATION: 'http://localhost:8081/widget/launch.js'
LOG_LEVEL: 'Info'
CHA21_ENGINE: 'mqtt'
UPLOAD_ENGINE: 'native'
PUSH_ENGINE: 'none'
FIREBASE_AUTH: 'false'
FEATURES_TOKEN: 'PAY:T-ANA:T-ACT:T-TRI:T-GRO:T-DEP:T-OPH:T-MTL:T-DGF:T-NAT:T-CAR:T-V1L:T-PSA:T-MTT:T-SUP:T-LBS:T-APP:T-DEV:T-NOT:T-RAS:T'
TEMPLATES_URL: 'http://localhost:8081/modules/templates/public/templates'
APPS_URL: 'http://localhost:8081/modules/apps/'
CDS_BASE_URL: 'http://localhost:4502/' # BUNUN VAR OLDUĞUNU %100 KONTROL ET
BOT_CREDENTIAL_URL:
RASA_BOT_CREDENTIAL_URL:
CHAT_BASE_URL:
WS_URL_RELATIVE:
BRAND_SRC:
REMOTE_JS_SRC:
FILE_UPLOAD_ACCEPT: '*'
COMMUNITY_TEMPLATES_URL:
PROMO_BANNER_URL:
WHATSAPP_API_URL:
TILEDESK_PHONE_NUMBER:
TICKETING_EMAIL:
AI_MODELS:
OAUTH2_SIGNIN_ENABLED: 'false'
FIREBASE_APIKEY:
FIREBASE_AUTHDOMAIN:
FIREBASE_DATABASEURL:
FIREBASE_PROJECT_ID:
FIREBASE_STORAGEBUCKET:
FIREBASE_MESSAGINGSENDERID:
FIREBASE_APP_ID:
FIREBASE_VAPID:
cds:
image: tiledesk/design-studio:1.30.4
container_name: cds
environment:
- FEATURES_TOKEN=PAY:F-ANA:T-ACT:T-TRI:T-GRO:T-DEP:T-OPH:T-MTL:T-CAR:T-PSA:F-MTT:T-SUP:T-LBS:T-APP:T-DEV:F-NOT:T-IPS:F-ETK:F-RAS:T-PPB:F-PET:F-MTS:F-TIL:T-DGF:T-NAT:T-HPB:F-TOW:F-KNB:F-GPT:T-BAN:F-AST:F-MON:T-CNT:F-AUT:F-WUN:F-QIN:F-INT:T-DPA:T
- "WIDGET_LOCATION=${EXTERNAL_BASE_URL:-http://localhost:8081}/widget/"
- SERVER_BASE_URL=http://localhost:8081/api/
- DASHBOARD_URL= # BU SATIRI BOŞ BIRAK
- WS_URL
- WS_URL_RELATIVE=/ws/
- BRAND_SRC
- REMOTE_JS_SRC
- UPLOAD_ENGINE=native
- LOG_LEVEL=info
- FIREBASE_APIKEY
- FIREBASE_AUTHDOMAIN
- FIREBASE_DATABASEURL
- FIREBASE_PROJECT_ID
- FIREBASE_STORAGEBUCKET
- FIREBASE_MESSAGINGSENDERID
- FIREBASE_APP_ID
- FIREBASE_VAPID
- CDS_STORAGE_PREFIX=cds_sv5
- API_BASEIMAGE_URL=http://localhost:8081/api/
- FILE_UPLOAD_ACCEPT=*/*
- AI_MODELS=gpt-3.5-turbo:0.6;gpt-4:25;gpt-4-turbo-preview:12;gpt-4o:6;gpt-4o-mini:0.3
ports:
- "4502:80"
networks:
- tiledesk-net
webwidget:
image: chat21/chat21-web-widget:5.0.93
container_name: chat21-web-widget
ports:
- "4200:80" # specify port forewarding
environment:
- CHAT21_ENGINE=mqtt
- MQTT_APPID=tilechat
- PUSH_ENGINE=none
- LOG_LEVEL=info
- "MQTT_ENDPOINT=${EXTERNAL_MQTT_BASE_URL:-ws://localhost:8081}/mqws/ws"
- "MQTT_APIENDPOINT=${EXTERNAL_BASE_URL:-http://localhost:8081}/chatapi/api"
#- MQTT_LOGINSERVICE_ENDPOINT=/api/chat21/native/auth/createCustomToken
- FIREBASE_APIKEY
- FIREBASE_AUTHDOMAIN
- FIREBASE_DATABASEURL
- FIREBASE_PROJECT_ID
- FIREBASE_STORAGEBUCKET
- FIREBASE_MESSAGINGSENDERID
- FIREBASE_TENANT=tilechat
- UPLOAD_ENGINE=native
- "SERVER_BASE_URL=${EXTERNAL_BASE_URL:-http://localhost:8081}/api/"
- "TRANSLATIONS_URL=${EXTERNAL_BASE_URL:-http://localhost:8081}/api/"
#- API_BASEIMAGE_URL=https://firebasestorage.googleapis.com/v0/b/ For firebase
- "API_BASEIMAGE_URL=${EXTERNAL_BASE_URL:-http://localhost:8081}/api/"
- DASHBOARD_URL=/dashboard/
- AUTH_PERSISTENCE=LOCAL
- ENBED_JS=true
- FILE_UPLOAD_ACCEPT=*/*
networks:
- tiledesk-net
ionic:
image: chat21/chat21-ionic:3.4.13
container_name: chat21-ionic
ports:
- "8082:80" #use expose if you want to block external access
environment:
- DASHBOARD_URL=/dashboard/
- API_BASEIMAGE_URL=/api/
- SERVER_BASE_URL=/api/
- FEATURES_TOKEN=PAY:F-ANA:T-ACT:T-TRI:T-GRO:T-DEP:T-OPH:T-MTL:T-CAR:T-PSA:F-MTT:T-SUP:T-LBS:T-APP:T-DEV:F-NOT:T-IPS:F-ETK:F-RAS:T-PPB:F-PET:F-MTS:F-TIL:T-DGF:T-NAT:T-HPB:F-TOW:F-KNB:F-GPT:T-BAN:F-AST:F-MON:T-CNT:F-AUT:F-WUN:F-QIN:F-INT:T-DPA:T
- WIDGET_LOCATION=/widget/
- PUSH_ENGINE=none
- LOG_LEVEL=info
- FILE_UPLOAD_ACCEPT=*/*
- CHAT21_ENGINE=mqtt
- MQTT_APPID=tilechat
- "MQTT_ENDPOINT=${EXTERNAL_MQTT_BASE_URL:-ws://localhost:8081}/mqws/ws"
- MQTT_APIENDPOINT=/chatapi/api
#- MQTT_LOGINSERVICE_ENDPOINT=/api/chat21/native/auth/createCustomToken
- UPLOAD_ENGINE=native
- FIREBASE_APIKEY
- FIREBASE_AUTHDOMAIN
- FIREBASE_DATABASEURL
- FIREBASE_PROJECT_ID
- FIREBASE_STORAGEBUCKET
- FIREBASE_MESSAGINGSENDERID
- FIREBASE_TENANT=tilechat
- FIREBASE_VAPID
- SUPPORT_MODE=true
- WRITE_TO_BUTTON=true
- ARCHIVED_BUTTON=true
- AUTH_PERSISTENCE=LOCAL
- EMAIL_SECTION=true
- CHAT_STORAGE_PREFIX=chat_sv5
- WS_URL_RELATIVE=/ws/
networks:
- tiledesk-net
proxy:
image: tiledesk/tiledesk-docker-proxy:v1.1.2
container_name: tiledesk-docker-proxy
ports:
- "8081:80" # specify port forewarding
networks: # Bu satırı eklemek iyi bir alışkanlıktır
- tiledesk-net
depends_on:
- server
- dashboard
- webwidget
- chat21httpserver
- rabbitmq
- cds
command: >
/bin/sh -c "sleep 10 && nginx-debug -g 'daemon off;'"
chatbot:
image: tiledesk/tiledesk-chatbot:2.0.7
container_name: chatbot
environment:
- API_ENDPOINT=http://server:3000
- TILEBOT_ENDPOINT=http://chatbot:3000
- "API_URL=${EXTERNAL_BASE_URL:-http://localhost:8081}/api"
- MONGODB_URI=mongodb://mongo/tiledesk
- CACHE_ENABLED=true
- CACHE_REDIS_HOST=redis
- CACHE_REDIS_PORT=6379
- TILEBOT_LOG=info
- AI_ENDPOINT=http://ai:8000/api
networks:
- tiledesk-net
server:
image: tiledesk/tiledesk-server:2.10.75
container_name: server
restart: always
environment:
- LOG_LEVEL=info
- CHAT21_ENABLED=true
- CHAT21_ENGINE=mqtt
- CHAT21_URL=http://chat21httpserver:8004
- CHAT21_JWT_SECRET=tokenKey
- CHAT21_APPID=tilechat
- RESTHOOK_ENABLED=true
- ALLOW_REOPEN_CHAT=true
- CHAT21_ADMIN_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIzNDU2MTBkNy03MmYxLTQ5OWUtODQzMS0xMTNhZWJkOWVmOTgiLCJzdWIiOiIxMDAtQVBJQURNSU4iLCJzY29wZSI6WyJyYWJiaXRtcS5yZWFkOiovKi8qIiwicmFiYml0bXEud3JpdGU6Ki8qLyoiLCJyYWJiaXRtcS5jb25maWd1cmU6Ki8qLyoiXSwiY2xpZW50X2lkIjoiMTAwLUFQSUFETUlOIiwiY2lkIjoiMTAwLUFQSUFETUlOIiwiYXpwIjoiMTAwLUFQSUFETUlOIiwidXNlcl9pZCI6IjEwMC1BUElBRE1JTiIsImFwcF9pZCI6InRpbGVjaGF0IiwiaWF0IjoxNjE0OTQzNDkyLCJleHAiOjE5MjU5ODM0OTIsImF1ZCI6WyJyYWJiaXRtcSIsIjEwMC1BUElBRE1JTiJdLCJraWQiOiJ0aWxlZGVzay1rZXkiLCJ0aWxlZGVza19hcGlfcm9sZXMiOiJhZG1pbiJ9.KptGMsTKjd3wUiiP1GGSTYqW1XXK1vjSRJnetC3wjxU
- AMQP_MANAGER_URL=amqp://ignored:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3NjMwYTAwZS0xNTUxLTQ3Y2ItYmEzMC02NGRlNjJmYmNmNGYiLCJzdWIiOiIwMS1PQlNFUlZFUiIsInNjb3BlIjpbInJhYmJpdG1xLnJlYWQ6Ki8qLyoiLCJyYWJiaXRtcS53cml0ZToqLyovKiIsInJhYmJiaXRtcS5jb25maWd1cmU6Ki8qLyoiXSwiY2xpZW50X2lkIjoiMDEtPQlNFUlZFUiIsImNpZCI6IjAxLU9CU0VSVkVSIiwiYXpwIjoiMDEtT0JTRVJWRVIiLCJ1c2VyX2lkIjoiMDEtT0JTRVJWRVIiLCJhcHBfaWQiOiJ0aWxlY2hhdCIsImlhdCI6MTY5NjQ5MjI4NywiZXhwIjoyMDA3NTMyMjg3LCJhdWQiOlsicmFiYml0bXEiLCIwMS1PQlNFUlZFUiJdLCJraWQiOiJ0aWxlZGVzay1rZXkiLCJ0aWxlZGVza19hcGlfcm9sZXMiOiJ1c2VyIn0.Lq0MLTYny7tIYVQ-KEDLlL-h7gAqofCfC2IDgI_0TOE@rabbitmq:5672?heartbeat=60
- MONGODB_URI=mongodb://mongo/tiledesk
- EMAIL_ENABLED
- EMAIL_HOST
- EMAIL_USERNAME
- EMAIL_SECURE
- EMAIL_PORT
- EMAIL_PASSWORD
- EMAIL_FROM_ADDRESS
- "EMAIL_BASEURL=${EXTERNAL_BASE_URL:-http://localhost:8081}/dashboard"
- "WEBHOOK_ORIGIN=${EXTERNAL_BASE_URL:-http://localhost:8081}/api/"
- "WIDGET_LOCATION=${EXTERNAL_BASE_URL:-http://localhost:8081}/widget/"
- WS_SERVER_PATH
#PLEASE DON'T PASTE THE LICENSE KEY HERE USE .ENV FILE. DOCKER ISSUE WITH /n char
- LICENSE_KEY
- CACHE_ENABLED=true
- CACHE_ENGINE=redis
- CACHE_REDIS_HOST=redis
- CACHE_REDIS_PORT=6379
- APPS_ACCESS_TOKEN_SECRET=nodeauthsecret
- BOOT_LOADING=true
- META_GRAPH_URL=https://graph.facebook.com/v14.0/
- WHATSAPP_LOG=false
- TELEGRAM_API_URL=https://api.telegram.org/bot
- TELEGRAM_FILE_URL=https://api.telegram.org/file/bot
- TELEGRAM_LOG=info
- FB_APP_ID
- FB_APP_SECRET
- "BASE_FILE_URL=${EXTERNAL_BASE_URL:-http://localhost:8081}/api/"
- GPTKEY=CHANGEIT
- OPENAI_ENDPOINT=https://api.openai.com/v1
- KB_ENDPOINT
- QUOTES_ENABLED=false
- TILEBOT_ENDPOINT=http://chatbot:3000
depends_on:
- mongo
ports:
- "3000:3000"
networks:
- tiledesk-net
chat21httpserver:
image: chat21/chat21-http-server:0.2.37
container_name: chat21httpserver
restart: always
environment:
- LOG_LEVEL=info
#- AUTO_RESTART=false
- MONGODB_URI=mongodb://mongo/chat21
- JWT_KEY=tokenKey
- RABBITMQ_URI=amqp://ignored:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiMjM1OTFmZS05N2FhLTRmNWQtOGVlOS0yNjQ2NzljYmM0M2YiLCJzdWIiOiIxMDAtQVBJQURNSU4iLCJzY29wZSI6WyJyYWJiaXRtcS5yZWFkOiovKi8qIiwicmFiYml0bXEud3JpdGU6Ki8qLyoiLCJyYWJiaXRtcS5jb25maWd1cmU6Ki8qLyoiXSwiY2xpZW50X2lkIjoiMTAwLUFQSUFETUlOIiwiY2lkIjoiMTAwLUFQSUFETUlOIiwiYXpwIjoiMTAwLUFQSUFETUlOIiwidXNlcl9pZCI6IjEwMC1BUElBRE1JTiIsImFwcF9pZCI6InRpbGVjaGF0IiwiaWF0IjoxNjk2NDkyMjg3LCJleHAiOjIwMDc1MzIyODcsImF1ZCI6WyJyYWJiaXRtcSIsIjEwMC1BUElBRE1JTiJdLCJraWQiOiJ0aWxlZGVzay1rZXkiLCJ0aWxlZGVza19hcGlfcm9sZXMiOiJhZG1pbiJ9.Ee-TpAPsoC7Dm7qsbUojeHud3E4OCtJZkpupu_R0Aic@rabbitmq:5672?heartbeat=60
- PUSH_ENABLED=true
- FIREBASE_PRIVATE_KEY
- FIREBASE_APIKEY
- FIREBASE_PROJECT_ID
- FIREBASE_CLIENT_EMAIL
- PUSH_WH_CHAT21_API_ADMIN_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI5NGFjNjNmNy1hOGM3LTRkZGMtYjJkNS01MWE2MjBmNTdhNmIiLCJzdWIiOiIxMDAtQVBJQURNSU4iLCJzY29wZSI6WyJyYWJiaXRtcS5yZWFkOiovKi8qIiwicmFiYml0bXEud3JpdGU6Ki8qLyoiLCJyYWJiaXRtcS5jb25maWd1cmU6Ki8qLyoiXSwiY2xpZW50X2lkIjoiMTAwLUFQSUFETUlOIiwiY2lkIjoiMTAwLUFQSUFETUlOIiwiYXpwIjoiMTAwLUFQSUFETUlOIiwidXNlcl9pZCI6IjEwMC1BUElBRE1JTiIsImFwcF9pZCI6InRpbGVjaGF0IiwiaWF0IjoxNjM3NzYxNDM0LCJleHAiOjE5NDg4MDE0MzQsImF1ZCI6WyJyYWJiaXRtcSIsIjEwMC1BUElBRE1JTiJdLCJraWQiOiJ0aWxlZGVzay1rZXkiLCJ0aWxlZGVza19hcGlfcm9sZXMiOiJhZG1pbiJ9.fLPrGArRlnyC04552oBsUjohf6l_BIpxwB847xWvugo
- PUSH_WH_NOTIFY_URL=http://localhost:8004/api/tilechat/notify
- PUSH_WH_WEBHOOK_TOKEN=WHFyAhecCMkYsvldLFWbSrJt7lAZFAmrp7O5QVMvGQsLVn9SkfT
- CHAT21HTTP_CACHE_ENABLED=false
- CONTACTS_LOOKUP_ENDPOINT=http://server:3000/users_util
depends_on:
- mongo
- rabbitmq
ports:
- "8004:8004"
networks:
- tiledesk-net
chat21server:
image: chat21/chat21-server:0.2.53
container_name: chat21server
restart: always
environment:
#- AUTO_RESTART=false
- LOG_LEVEL=info
- MONGODB_URI=mongodb://mongo/chat21
- APP_ID=tilechat
- WEBHOOK_ENDPOINTS=http://server:3000/chat21/requests,http://chat21httpserver:8004/api/tilechat/push/webhook/endpoint/WHFyAhecCMkYsvldLFWbSrJt7lAZFAmrp7O5QVMvGQsLVn9SkfT
- WEBHOOK_ENABLED=true
- WEBHOOK_EVENTS=message-sent,message-delivered,conversation-unarchived
- RABBITMQ_URI=amqp://ignored:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3NjMwYTAwZS0xNTUxLTQ3Y2ItYmEzMC02NGRlNjJmYmNmNGYiLCJzdWIiOiIwMS1PQlNFUlZFUiIsInNjb3BlIjpbInJhYmJiaXRtcS5yZWFkOiovKi8qIiwicmFiYml0bXEud3JpdGU6Ki8qLyoiLCJyYWJiaXRtcS5jb25maWd1cmU6Ki8qLyoiXSwiY2xpZW50X2lkIjoiMDEtPQlNFUlZFUiIsImNpZCI6IjAxLU9CU0VSVkVSIiwiYXpwIjoiMDEtT0JTRVJWRVIiLCJ1c2VyX2lkIjoiMDEtT0JTRVJWRVIiLCJhcHBfaWQiOiJ0aWxlY2hhdCIsImlhdCI6MTY5NjQ5MjI4NywiZXhwIjoyMDA3NTMyMjg3LCJhdWQiOlsicmFiYml0bXEiLCIwMS1PQlNFUlZFUiJdLCJraWQiOiJ0aWxlZGVzay1rZXkiLCJ0aWxlZGVza19hcGlfcm9sZXMiOiJ1c2VyIn0.Lq0MLTYny7tIYVQ-KEDLlL-h7gAqofCfC2IDgI_0TOE@rabbitmq:5672?heartbeat=60
depends_on:
- mongo
- rabbitmq
- server
networks:
- tiledesk-net
ai:
image: tiledesk/tiledeskai-lite:0.1.0
container_name: ai
restart: always
environment:
- WORKERS=3
- TIMEOUT=180
- MAXREQUESTS=1200
- MAXRJITTER=5
- GRACEFULTIMEOUT=30
ports:
- 8000:8000
networks:
- tiledesk-net
rabbitmq:
image: chat21/chat21-rabbitmq
container_name: rabbitmq
environment:
RABBITMQ_ERLANG_COOKIE: ${RABBITMQ_ERLANG_COOKIE}
RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER}
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS}
ports:
- 5672:5672
- 15672:15672
- 1883:1883
- 15675:15675
networks:
- tiledesk-net
# healthcheck:
# test: [ "CMD", "nc", "-z", "localhost", "5672" ]
# interval: 5s
# timeout: 15s
# retries: 1
mongo:
container_name: mongo
image: mongo:7.0.2
command: --bind_ip_all
ports:
- "27017:27017"
volumes:
- tiledesk-datadb:/data/db
networks:
- tiledesk-net
redis:
container_name: redis
image: redis:7.0.5
ports:
- "6379:6379"
networks:
- tiledesk-net
#ngrok:
# container_name: ngrok
# image: wernight/ngrok
# command: ngrok http server:3000
# ports:
# - '4040:4040'
# docker-compose.yml dosyasının EN ALTINA ekleyin
networks:
tiledesk-net:
driver: bridge
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment