Hummingbot API no longer includes the Dashboard by default in the latest version

When I recently deployed the latest version of Hummingbot API, I noticed a change that can easily confuse many users: after bringing up the stack, the familiar Dashboard was no longer there by default. At first glance, it may look like the Dashboard has been removed entirely, but that is not exactly the case. What actually changed is that the latest Hummingbot API deployment no longer starts the Dashboard automatically as part of the default setup.

最近我重新部署 Hummingbot API 最新版的时候,发现了一个很容易让人误会的变化:服务启动之后,原本大家熟悉的 Dashboard 默认已经看不到了。第一反应很容易以为官方把 Dashboard 彻底删掉了,但其实并不是这样。更准确地说,是最新版的 Hummingbot API 默认部署时,不再自动把 Dashboard 一起启动 了。

No Dashboard

The result is that many users finish deploying the API backend successfully, see the API and related services running, but still cannot find any graphical web interface for strategy management. This makes people think that the Dashboard feature has disappeared, while in reality it simply needs to be added back manually as a separate container.

这样一来,很多人在成功部署后端 API 之后,虽然能看到 API 和其他相关服务都正常运行,但就是找不到可视化的策略管理页面。于是就会误以为 Dashboard 功能没有了。实际上,Dashboard 只是没有随着默认部署一起拉起来,而是需要你自己以独立容器的方式手动补上。

Repair plan

To restore it, I added a dashboard service directly into the Docker Compose configuration. After doing that, the web interface worked again normally. The following configuration is what I used:

要把它恢复回来,我的做法很简单,就是在 Docker Compose 配置里手动加入一个 dashboard 服务。加完以后,图形化页面就能重新正常使用了。下面这段就是我实际使用的配置:

dashboard:
    container_name: hummingbot-dashboard
    image: hummingbot/dashboard:latest
    restart: unless-stopped
    environment:
      # Dashboard 在同一 docker network 内通过服务名访问 API(最稳)
      - BACKEND_API_HOST=hummingbot-api
      - BACKEND_API_PORT=8000
      # 先关闭 Dashboard 自己的认证,避免你还没恢复 key 就进不去
      - AUTH_SYSTEM_ENABLED=False
    ports:
      - "8501:8501"
    networks:
      - emqx-bridge
    depends_on:
      - hummingbot-api

This setup makes the Dashboard run as its own standalone service while still connecting to the Hummingbot API backend. In other words, the backend still exists and works, but the frontend now needs to be declared explicitly. Once this service is added and the containers are restarted, the Dashboard becomes accessible again on port 8501.

这段配置的作用,就是让 Dashboard 作为一个独立服务单独运行,同时继续连接到 Hummingbot API 后端。也就是说,后端其实还是在那里正常工作的,只是前端界面现在需要你自己明确写进 Compose 里。只要把这个服务加上去,再重新启动容器,Dashboard 就会重新出现在 8501 端口上。

Hostname

One important detail is that BACKEND_API_HOST=hummingbot-api only works if your API service is actually named hummingbot-api, and both containers are attached to the same Docker network. If your service name is different, or if the Dashboard container is placed on another network, it will not be able to reach the backend correctly.

这里有一个关键细节:BACKEND_API_HOST=hummingbot-api 只有在你的 API 服务名确实叫 hummingbot-api 的情况下才有效,而且 Dashboard 和 API 还必须处在同一个 Docker 网络里。如果你的服务名不是这个,或者 Dashboard 被放到了别的网络中,它就无法正确连接后端。

User and Pass

The username and password also need to match the credentials used by the backend API. If those values are inconsistent, the Dashboard may start successfully but fail when trying to communicate with the API. So when copying this configuration, it is worth double-checking the environment variables and your .env file.

另外,用户名和密码也必须和后端 API 的认证配置保持一致。如果这些值不一致,那么 Dashboard 虽然可能能启动,但在连接 API 的时候就会报错。所以在直接复制这段配置时,最好顺便检查一下环境变量和你自己的 .env 文件。

What is EMQX Dashboard?

Another reason this situation is confusing is that users may still see a “dashboard” in the stack and assume that it is the Hummingbot web interface. In practice, what many deployments expose by default is often the EMQX Dashboard, which is for the message broker and not the actual Hummingbot strategy management UI. These are two completely different things.

这件事之所以容易让人困惑,还有一个原因,就是有些用户在部署后仍然会看到某个“dashboard”,于是误以为那就是 Hummingbot 的图形化界面。实际上,默认部署里很多时候出现的是 EMQX Dashboard,它是给消息代理服务使用的后台,而不是你真正想要的 Hummingbot 策略管理界面。这两个东西完全不是一回事。

So the real conclusion is not that the latest Hummingbot API removed Dashboard support, but that the Dashboard is no longer included in the default deployment path. If you still want the web interface, you need to add the Dashboard container yourself and point it to the API backend properly.

所以,真正的结论并不是“最新版 Hummingbot API 不支持 Dashboard 了”,而是“Dashboard 不再包含在默认部署流程里”。如果你还是想继续使用这个图形化界面,就需要自己把 Dashboard 容器补上,并正确连接到 API 后端。

For users who are upgrading from an older setup, this can feel like a missing feature, but it is really more of an architectural change. The frontend and backend are now more clearly separated, and the Dashboard needs to be deployed intentionally rather than assumed to come bundled by default.

对于从旧版本环境迁移过来的用户来说,这种变化很容易让人感觉像是“功能被砍了”。但实际上,这更像是架构上的调整:前端和后端被分得更清楚了,Dashboard 不再默认打包进来,而是变成了需要主动部署的独立组件。

Conclusion

In short, if you deploy the latest Hummingbot API and cannot find the Dashboard, do not panic. It is still possible to use it — you just need to add it manually in Docker Compose. After doing that, the familiar web interface can be brought back without much difficulty.

简而言之,如果你部署了最新版 Hummingbot API 却发现找不到 Dashboard,不用急着怀疑是不是官方彻底取消了它。这个界面仍然是可以继续使用的,只不过现在需要你在 Docker Compose 里手动补上。完成这一步之后,熟悉的图形化页面还是可以顺利恢复的。

Full configuration/完整配置

services:
  hummingbot-api:
    container_name: hummingbot-api
    image: hummingbot/hummingbot-api:latest
    ports:
      - "8000:8000"
    volumes:
      - ./bots:/hummingbot-api/bots
      - /var/run/docker.sock:/var/run/docker.sock
    env_file:
      - .env
    environment:
      # Override specific values for Docker networking
      - BROKER_HOST=emqx
      - DATABASE_URL=postgresql+asyncpg://hbot:hummingbot-api@postgres:5432/hummingbot_api
      - GATEWAY_URL=http://host.docker.internal:15888
    extra_hosts:
      # Map host.docker.internal to host gateway for Linux compatibility
      # On macOS/Windows, Docker Desktop provides this automatically
      # On Linux, this maps to the docker bridge gateway IP
      - "host.docker.internal:host-gateway"
    networks:
      - emqx-bridge
    depends_on:
      - postgres

  # ✅ 新增:Dashboard(Web UI)
  dashboard:
    container_name: hummingbot-dashboard
    image: hummingbot/dashboard:latest
    restart: unless-stopped
    environment:
      # Dashboard 在同一 docker network 内通过服务名访问 API(最稳)
      - BACKEND_API_HOST=hummingbot-api
      - BACKEND_API_PORT=8000
      # 先关闭 Dashboard 自己的认证,避免你还没恢复 key 就进不去
      - AUTH_SYSTEM_ENABLED=False
    ports:
      - "8501:8501"
    networks:
      - emqx-bridge
    depends_on:
      - hummingbot-api

  emqx:
    container_name: hummingbot-broker
    image: emqx:5
    restart: unless-stopped
    environment:
      - EMQX_NAME=emqx
      - EMQX_HOST=node1.emqx.local
      - EMQX_CLUSTER__DISCOVERY_STRATEGY=static
      - EMQX_CLUSTER__STATIC__SEEDS=[[email protected]]
      - EMQX_LOADED_PLUGINS="emqx_recon,emqx_retainer,emqx_management,emqx_dashboard"
    volumes:
      - emqx-data:/opt/emqx/data
      - emqx-log:/opt/emqx/log
      - emqx-etc:/opt/emqx/etc
    ports:
      - "1883:1883"  # mqtt:tcp
      - "8883:8883"  # mqtt:tcp:ssl
      - "8083:8083"  # mqtt:ws
      - "8084:8084"  # mqtt:ws:ssl
      - "8081:8081"  # http:management
      - "18083:18083"  # http:dashboard
      - "61613:61613"  # web-stomp gateway
    networks:
      emqx-bridge:
        aliases:
          - node1.emqx.local
    healthcheck:
      test: [ "CMD", "/opt/emqx/bin/emqx_ctl", "status" ]
      interval: 5s
      timeout: 25s
      retries: 5

  postgres:
    container_name: hummingbot-postgres
    image: postgres:16
    restart: unless-stopped
    environment:
      # These variables automatically create the user and database on first initialization
      - POSTGRES_DB=hummingbot_api
      - POSTGRES_USER=hbot
      - POSTGRES_PASSWORD=hummingbot-api
      # Additional init parameters for better compatibility
      - POSTGRES_INITDB_ARGS=--encoding=UTF8
    volumes:
      - postgres-data:/var/lib/postgresql/data
      # Init script as safety net - only runs on first initialization
      - ./init-db.sql:/docker-entrypoint-initdb.d/init-db.sql:ro
    ports:
      - "5432:5432"
    networks:
      - emqx-bridge
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U hbot -d hummingbot_api"]
      interval: 10s
      timeout: 5s
      retries: 5

networks:
  emqx-bridge:
    driver: bridge

volumes:
  emqx-data: { }
  emqx-log: { }
  emqx-etc: { }
  postgres-data: { }

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注