Tiledesk Developer Hub
WebsiteCommunityTutorialsGet started
  • Introduction
  • Community
  • Ask for Support
  • Public Roadmap and Changelog
  • Tutorials
  • Widget
    • Widget SDK
    • Javascript API: Methods
    • Javascript API: Attributes
    • Javascript API: Listeners/Events
    • Widget Authentication
    • Widget Angular integration
    • Widget React integration
    • Widget for Android with WebView
    • Widget for iOS with WKWebView
    • Widget for Flutter with WebView
    • Widget for React with WebView
    • Widget for Wix Website platform
    • Tutorials
      • Hide widget
      • Show/Hide widget programmatically
      • Force widget loading without user interaction
      • Mobile positioning
      • Custom size (width/height)
      • Installing widget on selected pages
    • Conversation Embedded Apps
      • Payment App Tutorial
      • Prechat form App Tutorial
    • Advanced
      • Preset the Widget on a specific Department
      • Authentication Flow
      • Widget protocol specs
      • Prechat Form JSON specs
      • Prevent multiple conversations
      • Old versions
        • Web SDK v4
  • External Chatbot
    • Introduction
    • Hello World tutorial
    • Chatbot to Human handoff
    • Send Text Buttons
    • Advanced Tutorials
      • Introduction
      • Tutorial 1 - Dialogflow as external chatbot
      • Tutorial 2 - Buttons and images
      • Tutorial 3 - Automatic human handoff with fallback intent
      • Tutorial 4 - Explicit Human handoff with user intent
      • Tutorial 5 - Gracefully handling operating hours during handoff
      • Generate Dialogflow Google Credentials file
    • Rasa tutorials
      • Rasa Tutorial 1 - Rasa as external chatbot
  • Resolution bot
    • Introduction
    • Quickstart
    • Webhook service
    • Rich messages
    • Tutorials
      • Chatbot chooser (multilanguage)
      • Department chooser
      • Order info (webhook)
  • APIs
    • REST APIs
      • Introduction
      • Authentication
      • Requests
      • Leads
      • Messages
      • Activities
      • Projects
      • Team
      • User
      • Analytics
      • Canned responses
      • Tags
      • Events
      • Jwt
      • Labels
      • Images
      • Files
      • Segments
      • Chatbots
      • Knowledge Bases
        • Knowledge Base
        • Contents
        • Question & Answer
      • Management Api
        • Departments
        • Groups
    • NodeJS SDK
    • Webhooks
      • Subscriptions
    • Conversation Messages APIs tips
    • Realtime API
    • JWT Authentication
      • JWT Custom authentication Tutorial
    • Tutorials
      • REST API
        • Sending and receiving messages with Tiledesk APIs
        • PHP Tiledesk REST API example
        • Import multiple messages into Tiledesk using REST APIs from third party app
      • Webhooks
        • Custom Request assignment
        • Request transcript on close
  • Apps
    • Build Custom App - Quick start
    • External Channels integration flow diagram
    • Telegram integration tutorial
  • Dashboard & AgentChat SDK
    • Dashboard SDK
    • Agent Chat SDK
  • Architecture
    • Architecture overview
    • Components list
    • Bot Design diagram
    • Multi Channel Message Flow
  • Installation
    • Installation
    • Running Tiledesk using Docker Compose
    • Running Tiledesk with Kubernetes using Helm
    • Choosing Hardware
  • Configuration
    • Chat21 channel configuration
    • Email parameters and templates configuration
    • Configure the logging system
Powered by GitBook
On this page
  • Server Requirements for Tiledesk
  • Minimum Infrastructure
  • Production Environment Configuration
  • Front-end Components
  • Traffic Optimization
  • Database
  • MongoDB Options
  • Additional Database Management Tips
  • Other Backend Requirements (Third-Party Services)
  • Required Services
  • Deployment Modes
  • Optional: Hosting Large Language Models (LLMs)
  • Hardware Specifications for LLM Hosting
  • Additional Optimization Suggestions
  • Cloud Hosting Considerations

Was this helpful?

  1. Installation

Choosing Hardware

Server Requirements for Tiledesk

Minimum Infrastructure

The minimum recommended setup for hosting Tiledesk involves two separate servers:

  • Server 1: To host the Tiledesk Server, Dashboard, Widget, and Web Chat.

  • Server 2: Dedicated to MongoDB.

This basic infrastructure allows the servers to be up and running but does not account for advanced quality parameters such as performance, high availability, backups, redundancy, and disaster recovery.

Instance Type Recommendation: The default instance type recommended is an AWS EC2 t2.small (or equivalent), which is sufficient for testing environments. For production environments, a c4.large instance is ideal, providing better performance and stability.

Alternative with Heroku: If you prefer using Heroku, we recommend at least the Hobby dyno type for small applications, although Tiledesk can also run on the Free type for development and testing.

Production Environment Configuration

For production environments with higher traffic and reliability requirements, consider a more robust server configuration:

  • Load Balancer: To manage traffic and increase availability by distributing the load across multiple instances.

  • Auto-scaling: To dynamically adjust server capacity based on traffic.

  • Backup and Disaster Recovery: Enable regular automated backups and define a disaster recovery plan.

Front-end Components

To serve Tiledesk’s front-end components (Dashboard, Widget, and Web Chat), we suggest using AWS S3 + CloudFront. This setup enables efficient and scalable distribution of static content.

Traffic Optimization

Database

We recommend the following configurations for MongoDB:

MongoDB Options

  1. MongoDB Atlas:

    • M10: Suitable for testing or low-traffic applications. It supports continuous backups for data security.

    • M30 or higher: Recommended for high-traffic applications or production environments, providing better performance and scalability.

  2. Local Installation in Replica Set Mode:

    • Replica Set with at least three nodes, each located in a separate Availability Zone to improve database reliability and availability. This setup reduces the risk of data loss and ensures greater service continuity.

Additional Database Management Tips

  • Sharding (for high workloads): In cases of heavy database usage, consider implementing sharding to distribute the load and enhance performance.

  • Performance Monitoring: Use tools like MongoDB Compass or integrations with monitoring systems (e.g., CloudWatch) to track the database status and optimize resource allocation.

Other Backend Requirements (Third-Party Services)

To run Tiledesk in an on-premise environment, the following third-party backend services are required:

Required Services

  • RabbitMQ – Message broker used for internal communication between microservices.

  • Redis – Caching layer that improves system performance by storing temporary data in memory.

⚠️ These services must be installed and properly configured before proceeding with the Tiledesk installation.

Deployment Modes

  • For non-business-critical environments (e.g. testing or small-scale deployments), all services can be installed in a singlenode setup on a single virtual machine or server.

  • For production-grade or business-critical environments, a high-availability (HA) setup with service replication and failover is strongly recommended to ensure reliability and uptime.


Optional: Hosting Large Language Models (LLMs)

If you plan to host a Large Language Model (LLM) such as LLaMA 3, which requires substantial computational resources, here are additional hardware specifications and recommendations:

Hardware Specifications for LLM Hosting

GPU

  • Architecture: NVIDIA Ampere or newer (e.g., A100, A6000, H100).

  • GPU Memory: At least 40 GB of HBM2 or higher (for larger models).

  • CUDA Cores: At least 6,912 cores to handle intensive AI workloads.

  • NVLink: If available, use NVLink to connect multiple GPUs, increasing communication bandwidth between GPUs and improving performance for larger models.

CPU

  • Multi-core CPU: Minimum 16 cores (32 threads) to support distributed workloads. Preferably a recent AMD EPYC or Intel Xeon CPU.

  • Clock Speed: At least 2.5 GHz per core.

RAM

  • RAM Amount: Minimum 128 GB DDR4/DDR5. For particularly large models, consider 256 GB or more, especially if the model will handle multiple requests simultaneously.

Storage

  • Storage Type: NVMe SSD for faster data access and improved I/O performance.

  • Storage Capacity: Minimum 1 TB, with scalability based on the model size and any auxiliary data. For long-term projects, consider a distributed storage system.


Additional Optimization Suggestions

  1. Cooling and Power: High-performance GPUs like the A100 or H100 require adequate cooling and stable power supply. Ensure that the cooling infrastructure is sufficient, especially for on-premises setups.

  2. Cluster Configurations: For large-scale applications, consider using a GPU cluster, for example, via a Kubernetes system with GPU support. This allows for elastic scaling based on workload and provides redundancy.

  3. Networking: For clusters, consider using a high-speed network (e.g., InfiniBand) to minimize latency between nodes and enhance overall performance.

  4. Containers and Virtualization: Use Docker or other containers for rapid deployment and to ensure portability of the model across different platforms.

  5. Resource Management and Monitoring: Use tools like NVIDIA’s GPU Cloud (NGC) to monitor and manage resources, optimizing GPU utilization and maintaining system stability.


Cloud Hosting Considerations

Tiledesk can be deployed in private or public cloud environments, utilizing dedicated hardware configurations provided by cloud providers such as AWS, Azure, or Google Cloud, with support for high-level GPUs like NVIDIA A100 and V100. This approach offers scalability and simplified management without the need for maintaining physical hardware.


This guide provides a solid and scalable setup for running Tiledesk in both development and production environments, with optional infrastructure suggestions for hosting Large Language Models if needed, allowing your infrastructure to grow based on traffic demands.

PreviousRunning Tiledesk with Kubernetes using HelmNextChat21 channel configuration

Last updated 8 days ago

Was this helpful?

Enable Gzip Compression on CloudFront to reduce network traffic and improve loading performance. More info here:

https://aws.amazon.com/blogs/aws/new-gzip-compression-support-for-amazon-cloudfront/