Guide · Docker from the command line

Install TedEnergy from the command line

For Docker users: NAS (Synology over SSH, QNAP…), mini-PC, Raspberry Pi 4 or 5, Linux server. The public tedenergy/ted image exists for Intel / AMD and ARM64: Docker picks the right one.

  1. 1

    Create the data folder

    It keeps settings, license, history and logs from one version to the next. Example for a Synology; on a PC or a Raspberry Pi, ~/ted is fine.

    Data folder
    sudo mkdir -p /volume1/docker/ted
  2. 2

    Start the container

    Two ports and one folder are enough: no variable to set.

    Start the container
    sudo docker run -d \
      --name ted-bot \
      --restart unless-stopped \
      -p 5002:5000 \
      -p 1885:1885 \
      -v /volume1/docker/ted:/data \
      tedenergy/ted:latest
  3. 3

    Open the interface

    http://MACHINE-IP:5002: the setup wizard asks for the free license, then the Home Assistant address and a long-lived access token (Home Assistant › your profile › Security › Long-lived access tokens). Then getting started.

With Docker Compose

docker-compose.yml
services:
  ted:
    image: tedenergy/ted:latest
    container_name: ted-bot
    restart: unless-stopped
    ports:
      - "5002:5000"
      - "1885:1885"
    volumes:
      - ./ted:/data
Start
sudo docker compose up -d

Update

Updating the container

Pull the image, then recreate the container with the same command: your data stays in the folder mounted on /data.

docker run
sudo docker pull tedenergy/ted:latest
sudo docker rm -f ted-bot
# then run the step 2 command again
Docker Compose
sudo docker compose pull && sudo docker compose up -d

Without Docker Hub

Offline installation

For a machine without access to Docker Hub: download the image archive from the download page, ted-bot-v3.8.1.tar.gz (99 Mo) for Intel / AMD or ted-bot-v3.8.1-arm64.tar.gz for ARM64.

Load the image and start the container
gunzip -c ted-bot-v3.8.1.tar.gz | sudo docker load
sudo docker run -d --name ted-bot --restart unless-stopped \
  -p 5002:5000 -p 1885:1885 -v /volume1/docker/ted:/data ted-bot:latest

Both archives load as ted-bot:latest. The install_ted_prebuilt.sh script from the download page does these steps in one go (it also asks for the Home Assistant token): it checks the ports, offers a free one if a port is already taken (interface between 5001 and 5009, MQTT 1885 or next) and keeps the same ones at every update. To force the MQTT port: HOST_MQTT_PORT=1890 before the command (0 not to publish it). To update: load the new archive, then recreate the container.

Troubleshooting

Something wrong?

Is the container running?
sudo docker ps --filter name=ted-bot
sudo docker logs --tail 80 ted-bot
“Home Assistant injoignable” (unreachable) in the wizard

Use the Home Assistant IP address with its port (http://192.168.1.50:8123): homeassistant.local is not always known inside a container.

Port 5002 is already in use

Replace -p 5002:5000 with another free port (preferably between 5003 and 5009) and open the interface on that port.

Port 1885 (MQTT) is already in use, or missing from the container

Docker cannot add a port to an existing container: delete it (sudo docker rm -f ted-bot, your data stays in the folder) and run the step 2 command again. If 1885 is taken, replace -p 1885:1885 with another free port, for example -p 1890:1885, then enter 1890 in Settings › Inverter cloud › Built-in MQTT server (step 2 of the setup). The offline installation script makes this choice by itself.

Access from outside

Never expose the interface on the Internet: prefer a VPN. For the mobile app away from home, enable remote access (Paramètres › Application mobile et accès à distance): only requests signed by the app are then accepted, and the procedure is shown.

Up and running? Move on to getting started.

The setup wizard, then your first inverters: everything is explained.

Download for free