tiledesk

πŸš€ Deploying Tiledesk Community with Docker Compose

This guide explains how to quickly deploy Tiledesk Community using Docker Compose.

⚠️ The Tiledesk Community Docker Compose configuration is currently in beta.
It contains the latest work-in-progress deployment scripts and installs the latest development version of Tiledesk.

All tests are executed using the most recent versions of Docker and Docker Compose, as provided by CircleCI.


🧩 Prerequisites

Before you begin, ensure that the following software is installed:

Component Installation Guide
Docker https://docs.docker.com/
Docker Compose https://docs.docker.com/compose/install/

βš™οΈ Deploying Tiledesk Community

  1. Download the Docker Compose file:
    curl https://raw.githubusercontent.com/Tiledesk/tiledesk-deployment/master/docker-compose/docker-compose.yml --output docker-compose.yml
    
  2. Start Tiledesk:
    docker-compose up
    
  3. Open your browser and visit: http://localhost:8081/

  4. Sign in as admin:
    • Email: admin@tiledesk.com
    • Password: superadmin

πŸ’‘ Tips & Troubleshooting


🧠 Using RAG (Retrieval-Augmented Generation)

Tiledesk supports RAG (Retrieval-Augmented Generation) to enhance chatbot answers using your own data sources. The Community version uses Qdrant as vectore store.

βš™οΈ Configuration Steps

  1. Configure the GPTKEY environment variable to enable managed GPT integration: For a centralized, managed AI setup across multiple tenants (projects), set your GPTKEY in the docker-compose.yml file under the server, chatbot, backend-llm-train, and backend-llm-qa container sections:

    GPTKEY=sk-proj-I0Noo...
    

    Alternatively, you can configure individual keys per project by specifying the corresponding API key in Settings β†’ Integrations (See point 3).

  2. (Optional) Custom Embeddings In order to use custom embeddings instead of OpenAI’s default ones, under the server container section, set:
    EMBEDDINGS_PROVIDER=your-embeddings-provider       #i.e. huggingface
    EMBEDDINGS_NAME=your-embedding-name                #i.e. sentence-transformers/all-MiniLM-L6-v2
    EMBEDDINGS_DIMENSIONE=your-embeddings-dimension    #i.e. 384
    
  3. (Optional) Native and Custom Models (Ollama) Tiledesk natively supports OpenAI models and various common LLM models such as: Google Gemini, Anthropic, Groq and Cohere, for which you need to enter your API Key on the Tiledesk platform.
    Example: Go to Settings -> Integration -> Google Gemini and set your API Key
    

    And to configure Ollama with your custom models.

    Example: Go to Settings -> Integration -> Ollama and set
       - Server URL: https://ollama-dev.mycompany.internal:11434
       - Models: the list of your supported models
    

🧱 Running in Background

To run Tiledesk in detached mode:

docker-compose up -d

To view logs:

docker-compose logs -t -f --tail 5

πŸŒ™ Running the Latest Nightly Build

Use the following command to deploy the latest nightly build:

docker-compose -f docker-compose-latest.yml up

🌐 Setting Up a Custom Domain

You can configure a custom domain (e.g., http://mydomain.com) using NGINX as a reverse proxy.

  1. Install and configure NGINX:
    sudo apt-get install nginx
    cd /etc/nginx/sites-enabled
    sudo nano mydomain.com.conf
    
  2. Add the following configuration (replace mydomain.com with your domain):
    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }
    
    server {
        listen 80;
        server_name mydomain.com;
    
        location / {
            proxy_pass http://localhost:8081;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
        }
    }
    
  3. Validate and restart NGINX:
    sudo nginx -t
    sudo service nginx restart
    
  4. Run Tiledesk with your domain:
    EXTERNAL_BASE_URL="http://mydomain.com" EXTERNAL_MQTT_BASE_URL="ws://mydomain.com" docker-compose up
    

Your installation should now be accessible at:
πŸ‘‰ http://mydomain.com


πŸ”’ Adding HTTPS with Let’s Encrypt

  1. Install Certbot and the NGINX plugin:
    sudo apt install certbot
    sudo apt-get install python3-certbot-nginx
    
  2. Obtain and install the SSL certificate:
    sudo certbot --nginx -d mydomain.com
    
  3. Run Tiledesk with HTTPS:
    EXTERNAL_BASE_URL="https://mydomain.com" EXTERNAL_MQTT_BASE_URL="wss://mydomain.com" docker-compose up
    

⚠️ Make sure to use:

Your installation should now be accessible at:
πŸ‘‰ https://mydomain.com


πŸ”„ Updating Tiledesk

To update all Tiledesk images to the latest version:

docker-compose pull

🧹 Cleanup

To stop and remove all containers:

docker-compose down

To also remove volumes:

docker-compose down -v

πŸ§ͺ Try Online with Play With Docker

You can test Tiledesk directly in your browser using Play With Docker:

Try in Play With Docker


πŸ“‘ Service Endpoints

Service URL Component
Reverse Proxy http://localhost:8081/ tiledesk-docker-proxy
Tiledesk REST API (docs) http://localhost:8081/api/ tiledesk-server
Tiledesk WebSocket API (docs) ws://localhost:8081/ws/ tiledesk-server
Tiledesk Dashboard http://localhost:8081/dashboard/ tiledesk-dashboard
Web Chat http://localhost:8081/chat/ chat21-ionic
Widget http://localhost:8081/widget/ chat21-web-widget
Chat REST API http://localhost:8081/chatapi/ chat21-http-server
Chat Server MQTT – chat21-server
RabbitMQ http://localhost:8081/mqws/ chat21-rabbitmq

πŸ’‘ If SSL is enabled, replace http with https and ws with wss.