# Tiledesk with portainer

**URL:** <https://tiledesk.discourse.group/t/tiledesk-with-portainer/447>\
**Category:** Technical issue\
**Created:** [June 14, 2024, 3:59am UTC](https://tiledesk.discourse.group/t/tiledesk-with-portainer/447 "2024-06-14T03:59:41Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![rafliiarz](https://avatars.discourse-cdn.com/v4/letter/r/9fc348/32.png) [@rafliiarz](https://tiledesk.discourse.group/u/rafliiarz)\
**Post date:** [June 14, 2024, 3:59am UTC](https://tiledesk.discourse.group/t/tiledesk-with-portainer/447/1 "2024-06-14T03:59:41Z")

</div>

Hello can explain what i wrong? when i click the chat website redirect me to login again

version: “3.7”

volumes:  
tiledesk-datadb:  
services:  
dashboard:  
image: tiledesk/tiledesk-dashboard:2.6.21  
container\_name: tiledesk-dashboard  
environment:  
- FEATURES\_TOKEN=PAY:F-ANA:F-ACT:F-TRI:T-GRO:F-DEP:F-OPH:F-MTL:T-CAR:F-V1L: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:T-KNB:F-BAN:F-AST:F-MON:F-CNT:F-AUT:F-WUN:F  
- BOT\_CREDENTIAL\_URL=/api/modules/dialogflow/botcredendials/  
- RASA\_BOT\_CREDENTIAL\_URL=/api/modules/rasa/botcredendials/  
- “WIDGET\_LOCATION=${EXTERNAL\_BASE\_URL:-[http://localhost:8071](http://localhost:8071)}/widget/”  
- SERVER\_BASE\_URL=/api/  
- CHAT\_BASE\_URL=/chat/  
- CDS\_BASE\_URL=/cds/  
- WS\_URL  
- WS\_URL\_RELATIVE=/ws/  
- BRAND\_SRC  
- REMOTE\_JS\_SRC  
- CHAT21\_ENGINE=mqtt  
- UPLOAD\_ENGINE=native  
- PUSH\_ENGINE=none  
- LOG\_LEVEL=info  
- APPS\_URL=/api/modules/apps/  
- PROMO\_BANNER\_URL  
- FIREBASE\_APIKEY  
- FIREBASE\_AUTHDOMAIN  
- FIREBASE\_DATABASEURL  
- FIREBASE\_PROJECT\_ID  
- FIREBASE\_STORAGEBUCKET  
- FIREBASE\_MESSAGINGSENDERID  
- FIREBASE\_APP\_ID  
- FIREBASE\_VAPID  
- “API\_BASEIMAGE\_URL=${EXTERNAL\_BASE\_URL:-[http://localhost:8071](http://localhost:8071)}/api/”  
- COMMUNITY\_TEMPLATES\_URL=/api/modules/templates/public/community  
- TEMPLATES\_URL=/api/modules/templates/public/templates  
ports:  
- “4500:80” #use expose if you want to block external access

cds:  
image: tiledesk/design-studio:1.5.2  
container\_name: tiledesk-cds  
environment:  
- FEATURES\_TOKEN=PAY:F-ANA:F-ACT:F-TRI:T-GRO:F-DEP:F-OPH:F-MTL:T-CAR:F-V1L: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:T-KNB:F-BAN:F-AST:F-MON:F-CNT:F-AUT:F-WUN:F  
- “WIDGET\_LOCATION=${EXTERNAL\_BASE\_URL:-[http://localhost:8071](http://localhost:8071)}/widget/”  
- “SERVER\_BASE\_URL=${EXTERNAL\_BASE\_URL:-[http://localhost:8071](http://localhost:8071)}/api/”  
- DASHBOARD\_URL=/dashboard/  
- 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=${EXTERNAL\_BASE\_URL:-[http://localhost:8071](http://localhost:8071)}/api/”  
ports:  
- “4502:80” #use expose if you want to block external access

webwidget:  
image: chat21/chat21-web-widget:5.0.76  
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:8071}/mqws/ws”  
- “MQTT\_APIENDPOINT=${EXTERNAL\_BASE\_URL:-[http://localhost:8071](http://localhost:8071)}/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:8071](http://localhost:8071)}/api/”  
- “TRANSLATIONS\_URL=${EXTERNAL\_BASE\_URL:-[http://localhost:8071](http://localhost:8071)}/api/”  
#- API\_BASEIMAGE\_URL=[https://firebasestorage.googleapis.com/v0/b/](https://firebasestorage.googleapis.com/v0/b/) For firebase  
- “API\_BASEIMAGE\_URL=${EXTERNAL\_BASE\_URL:-[http://localhost:8071](http://localhost:8071)}/api/”  
- DASHBOARD\_URL=/dashboard/  
- AUTH\_PERSISTENCE=LOCAL  
- ENBED\_JS=true

ionic:  
image: chat21/chat21-ionic:3.2.3  
container\_name: chat21-ionic  
ports:  
- “8072:80” #use expose if you want to block external access  
environment:  
- DASHBOARD\_URL=/dashboard/  
- API\_BASEIMAGE\_URL=/api/  
- “SERVER\_BASE\_URL=${EXTERNAL\_BASE\_URL:-[http://localhost:8071](http://localhost:8071)}/api/”  
- FEATURES\_TOKEN=PAY:F-ANA:F-ACT:F-TRI:T-GRO:F-DEP:F-OPH:F-MTL:T-CAR:F-V1L: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:T-KNB:F-BAN:F-AST:F-MON:F-CNT:F-AUT:F-WUN:F  
- 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:8071}/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/  
proxy:  
image: tiledesk/tiledesk-docker-proxy:v1.1.2  
container\_name: tiledesk-docker-proxy  
ports:  
- “8071:80” # specify port forewarding  
depends\_on:  
- server  
- dashboard  
- webwidget  
- chat21httpserver  
- rabbitmq  
- cds  
command: [nginx-debug, ‘-g’, ‘daemon off;’]

server:  
image: tiledesk/tiledesk-server:2.7.16  
container\_name: tiledesk-server  
restart: always  
environment:  
- LOG\_LEVEL=info  
- CHAT21\_ENABLED=true  
- CHAT21\_ENGINE=mqtt  
- CHAT21\_URL=[http://chat21httpserver:8004](http://chat21httpserver:8004)  
- CHAT21\_JWT\_SECRET=tokenKey  
- CHAT21\_APPID=tilechat  
- RESTHOOK\_ENABLED=true  
- ALLOW\_REOPEN\_CHAT=true  
- CHAT21\_ADMIN\_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIzNDU2MTBkNy03MmYxLTQ5OWUtODQzMS0xMTNhZWJkOWVmOTgiLCJzdWIiOiIxMDAtQVBJQURNSU4iLCJzY29wZSI6WyJyYWJiaXRtcS5yZWFkOiovKi8qIiwicmFiYml0bXEud3JpdGU6Ki8qLyoiLCJyYWJiaXRtcS5jb25maWd1cmU6Ki8qLyoiXSwiY2xpZW50X2lkIjoiMTAwLUFQSUFETUlOIiwiY2lkIjoiMTAwLUFQSUFETUlOIiwiYXpwIjoiMTAwLUFQSUFETUlOIiwidXNlcl9pZCI6IjEwMC1BUElBRE1JTiIsImFwcF9pZCI6InRpbGVjaGF0IiwiaWF0IjoxNjE0OTQzNDkyLCJleHAiOjE5MjU5ODM0OTIsImF1ZCI6WyJyYWJiaXRtcSIsIjEwMC1BUElBRE1JTiJdLCJraWQiOiJ0aWxlZGVzay1rZXkiLCJ0aWxlZGVza19hcGlfcm9sZXMiOiJhZG1pbiJ9.KptGMsTKjd3wUiiP1GGSTYqW1XXK1vjSRJnetC3wjxU  
- 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:8071](http://localhost:8071)}/dashboard”  
- “WEBHOOK\_ORIGIN=${EXTERNAL\_BASE\_URL:-[http://localhost:8071](http://localhost:8071)}/api/”  
- “WIDGET\_LOCATION=${EXTERNAL\_BASE\_URL:-[http://localhost:8071](http://localhost:8071)}/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/](https://graph.facebook.com/v14.0/)  
- WHATSAPP\_LOG=false  
- TELEGRAM\_API\_URL=[https://api.telegram.org/bot](https://api.telegram.org/bot)  
- TELEGRAM\_FILE\_URL=[https://api.telegram.org/file/bot](https://api.telegram.org/file/bot)  
- TELEGRAM\_LOG=info  
- FB\_APP\_ID  
- FB\_APP\_SECRET  
- BASE\_FILE\_URL=${EXTERNAL\_BASE\_URL:-[http://localhost:8071](http://localhost:8071)}/api/"  
- OPENAI\_ENDPOINT  
- KB\_ENDPOINT  
depends\_on:  
- mongo  
ports:  
- “3000:3000”

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](http://localhost:8004/api/tilechat/notify)  
- PUSH\_WH\_WEBHOOK\_TOKEN=WHFyAhecCMkYsvldLFWbSrJt7lAZFAmrp7O5QVMvGQsLVn9SkfT  
- CACHE\_ENABLED=false  
- CONTACTS\_LOOKUP\_ENDPOINT=[http://server:3000/users\_util](http://server:3000/users_util)  
depends\_on:  
- mongo  
- rabbitmq  
ports:  
- “8004:8004”

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](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.eyJqdGkiOiI3NjMwYTAwZS0xNTUxLTQ3Y2ItYmEzMC02NGRlNjJmYmNmNGYiLCJzdWIiOiIwMS1PQlNFUlZFUiIsInNjb3BlIjpbInJhYmJpdG1xLnJlYWQ6Ki8qLyoiLCJyYWJiaXRtcS53cml0ZToqLyovKiIsInJhYmJpdG1xLmNvbmZpZ3VyZToqLyovKiJdLCJjbGllbnRfaWQiOiIwMS1PQlNFUlZFUiIsImNpZCI6IjAxLU9CU0VSVkVSIiwiYXpwIjoiMDEtT0JTRVJWRVIiLCJ1c2VyX2lkIjoiMDEtT0JTRVJWRVIiLCJhcHBfaWQiOiJ0aWxlY2hhdCIsImlhdCI6MTY5NjQ5MjI4NywiZXhwIjoyMDA3NTMyMjg3LCJhdWQiOlsicmFiYml0bXEiLCIwMS1PQlNFUlZFUiJdLCJraWQiOiJ0aWxlZGVzay1rZXkiLCJ0aWxlZGVza19hcGlfcm9sZXMiOiJ1c2VyIn0.Lq0MLTYny7tIYVQ-KEDLlL-h7gAqofCfC2IDgI\_0TOE@rabbitmq:5672?heartbeat=60  
depends\_on:  
- mongo  
- rabbitmq  
- chat21httpserver

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  
# healthcheck:  
# test: [“CMD”, “nc”, “-z”, “localhost”, “5672”]  
# interval: 5s  
# timeout: 15s  
# retries: 1  
mongo:  
container\_name: mongo  
image: mongo:4.0.23  
ports:  
- “27019:27017”  
command: --bind\_ip\_all  
volumes:  
- tiledesk-datadb:/data/db  
redis:  
container\_name: redis  
image: redis:7.0.5  
ports:  
- “6379:6379”

#ngrok:

# container\_name: ngrok

# image: wernight/ngrok

# command: ngrok http server:3000

# ports:

# - ‘4040:4040’

 ![image](https://global.discourse-cdn.com/free1/uploads/tiledesk/original/1X/05940c887d2960232889bf54382079fc16af710e.png)  
 ![image](https://global.discourse-cdn.com/free1/uploads/tiledesk/original/1X/9267ed3290e02cb2479a49083f2d981d9a7661f4.png)
