Skip to content

Docker Deployment (TKE)

TKE (ThinkLink Enterprise) is the self-hosted ThinkLink edition and runs with Docker Compose. For a Linux server with internet access, use the official one-command installer.

1. Requirements

ItemRequirement
Permissionsroot access (the command uses sudo)
CPUx86_64 / amd64, at least 2 cores; ARM is not supported
MemoryAt least 4 GiB
DiskAt least 20 GiB free on the filesystem containing /opt
NetworkHTTPS access to package.think-link.net
Support levelDistributionDocker requirement
Automatic installationDebian 11/12/13, Ubuntu 22, Rocky/AlmaLinux 9The installer can install Docker
Compatibility modeUbuntu 20, CentOS 7/8Docker Engine and Docker Compose V2 must already be installed

2. Open Ports

Open the ports you need in both the cloud security group and the server firewall:

PortProtocolPurpose
80TCPThinkLink web UI; if occupied, the installer can offer port 8080 interactively
1883TCPMQTT
8083TCPMQTT over WebSocket
8084TCPMQTT over Secure WebSocket
18083TCPEMQX management UI
1700UDPLoRaWAN GWMP gateway traffic

PostgreSQL port 5432 and Redis port 6379 are container-internal and should not be exposed publicly. The installer does not configure HTTPS; use a reverse proxy and certificate if public HTTPS access is required.

3. One-Command Installation

Run this command in the server terminal:

bash
curl --tlsv1.2 --tls-max 1.2 -fsSL https://package.think-link.net/install.sh | sudo bash

No additional arguments are required. The installer will:

  1. Check the operating system, architecture, CPU, memory, disk, and required ports.
  2. Install Docker on supported systems, or reuse an existing working installation.
  3. Download the current stable application, Compose file, and container images from the official ThinkLink package service.
  4. Install everything under /opt/thinklink, load the images, and run docker compose up -d.
  5. Check service health and record the release and access information.

If port 80 is already in use, the terminal offers port 8080 as an alternative. The installer does not stop or modify the existing service that owns port 80.

After installation, the terminal prints the platform URL, EMQX URL, MQTT Broker address, and GWMP address. The same access information and initial credentials are stored in:

text
/opt/thinklink/install-info.txt

Only root can read this file. Use the displayed platform URL and change all initial passwords immediately after the first login.

The default URL is:

text
http://<server-IP>

If you selected the alternative web port during installation, use:

text
http://<server-IP>:8080

After signing in, create or join an organization before configuring gateways and devices.

5. Verify and Troubleshoot

Check all containers:

bash
sudo docker compose -f /opt/thinklink/docker-compose.yml ps

Inspect a service log:

bash
sudo docker compose -f /opt/thinklink/docker-compose.yml logs <service-name>

Common installation failures include:

  • The server is not amd64/x86_64.
  • CPU, memory, or free space under /opt is below the minimum.
  • A compatibility-mode system does not already have Docker Engine and Compose V2.
  • A required port is occupied and no available alternative was selected.
  • A proxy or firewall prevents access to the official package service or interrupts a download.

The one-command installer is currently an online installation entry point and does not accept offline package arguments. For an offline or controlled-network deployment, obtain a release-matched delivery package and instructions from ThinkLink; do not use the retired repository or historical image archives.

6. Using TKE with the Cloud Platform

Do not keep the same LoRaWAN device profile enabled on two platforms at the same time. If TKE and the cloud platform both answer Join or Confirm messages, devices can experience Join failures and downlink conflicts. Disable or remove the profile on the platform that is not in use.