Container - HomeAssistant

本页介绍 MikroTik RouterOS 的容器功能,使用户可以直接在路由器上运行 HomeAssistant 之类的服务器。它提供了启用容器模式、配置网络、设置挂载和环境变量,以及获取 HomeAssistant Docker 镜像的分步说明。

容器 - HomeAssistant

RouterOS 中 container 功能的引入使得直接在路由器上运行各种各样的服务器成为可能。对于希望尽量减少网络中设备数量的用户来说,这一点尤其有价值。现在你无需在单独的机器上部署服务器,而是可以将其托管在路由器内部。

在本指南中,我们将演示如何在 RouterOS 上安装并运行 Home‑Assistant 服务器。

Home‑Assistant 是一个广受欢迎的平台,用于从众多传感器收集数据,并为各种 集成 提供广泛支持。

概要

在继续配置之前,请确保你已研究我们的容器指南。此外,请查看免责声明和要求部分,了解所有相关风险以及你可能需要采取的必要步骤。

你可以在链接中找到支持的架构。

在本指南发布时,home-assistant 镜像可用于 ARM64 和 AMD64(CHR 和 x86)设备。

根据 Home Assistant 网站的信息,推荐要求为:

  • 2 GB RAM
  • 32 GB 存储空间

但我们会尝试在配置更低的设备上运行它。

容器配置

子菜单: /container

note: 需要 container 软件包。

容器模式

启用容器模式:

/system/device-mode/update container=yes

如果在 X86 上使用容器,你需要通过按下复位按钮或冷重启来确认 device-mode。

网络

添加 veth 接口:

/interface/veth/add name=veth2 address=172.19.0.2/24 gateway=172.19.0.1

为容器创建网桥,并将 veth 接口添加到其中:

/interface/bridge/add name=ha
/ip/address/add address=172.19.0.1/24 interface=ha
/interface/bridge/port/add bridge=ha interface=veth2

如果需要 NAT(可选),转发 TCP 8123 端口用于 home-assistant 管理(其中 192.168.88.1 是设备的 LAN IP 地址):

/ip/firewall/nat/add action=dst-nat chain=dstnat dst-address=192.168.88.1 dst-port=8123 protocol=tcp to-addresses=172.19.0.2 to-ports=8123

环境变量和挂载

按照 home-assistant 文档,为配置文件定义挂载(其中 /usb1 是我们的外部 USB 存储文件夹):

/container/mounts/add dst=/config list=ha_config src=/usb1/ha_config

为 home-assistant 创建环境变量:

/container/envs/add key=TZ list=ha_env value=America/Los_Angeles

获取镜像

为简化配置,我们将从外部镜像库获取镜像。

请确保你已相应设置 "Registry URL"、限制 RAM 使用量(如有必要),并为镜像设置一个目录:

/container/config/set registry-url=https://registry-1.docker.io tmpdir=/usb1/pull

拉取 home-assistant 镜像并等待其解压完成:

/container/add remote-image=homeassistant/home-assistant:latest interface=veth2 root-dir=/usb1/ha mountlists=ha_config envlists=ha_env logging=yes

运行命令后,RouterOS 应开始 "extracting"(解压)软件包。检查 "File System" 中新建的文件夹,并使用命令 /container/print 监控容器状态。

启动容器

在你确认容器已添加,并且使用 /container/print 后状态已变为 status=stopped 之后,即可启动它:

/container/start 0

Home-Assistant 设置

打开你常用的 Web 浏览器,通过指定管理端口 ":8123" 访问 Home-Assistant 管理门户:

继续完成设置。更多信息请参阅 Home-Assistant 入门指南。

资源

仅运行 Home Assistant(没有任何负载/流量)就会占用约 300-400 MB 的 RAM:

/system/resource/print
                   uptime: 4m27s
                  version: 7.13.3 (stable)
               build-time: 2024-01-24 13:16:46
         factory-software: 7.10
              free-memory: 143.0MiB
             total-memory: 448.0MiB