docker部署HomeAssistant,并使用Nginx反向代理以启用SSL


在Ubuntu服务器中部署HomeAssistant的步骤。个人备忘,以便需要时查看

0. 在Ubuntu中安装Docker

参考 Ubuntu Docker Docs

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

1.通过Docker运行HomeAssistant

镜像地址 Package home-assistant

  • 使用以下命令拉取镜像
docker pull ghcr.io/home-assistant/home-assistant:latest
  • 使用以下命令启动容器
docker run -d --name="hass" -v /home/hass/config:/config -p 8123:8123 ghcr.io/home-assistant/home-assistant:latest

将会把HA的配置保存在/home/hass中,若需备份或恢复,直接拷贝整个文件夹即可

2. 修改HA的配置文件

首先需要修改HA的配置文件,以允许代理访问,否则将产生HTTP 400错误。
修改/home/hass/config/configuration.yaml,添加如下内容

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 127.0.0.1
    - 172.17.0.1 # 填写Docker Bridge网络的地址,可使用docker network inspect bridge查看

3. 修改Nginx配置文件

刚开始以为直接添加http代理就行,就只对根路径写了proxy_pass http://127.0.0.1:8123,可以打开HA的页面,但是输入账号密码一直登录失败,如图:
在这里插入图片描述
通过ssh转发8123端口到本地,登录进去发现这样的报错:
在这里插入图片描述
查了些资料,发现还需要添加websocket的代理才行。

最后贴出完整的配置文件

server {
	listen 443 ssl;
	server_name 域名;
    ssl_certificate /etc/ssl/域名.pem;
    ssl_certificate_key /etc/ssl/域名.key;
    location / {
        proxy_pass http://127.0.0.1:8123;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location /api/websocket {
        proxy_pass http://127.0.0.1:8123/api/websocket;
        proxy_set_header Host $host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
    access_log /var/log/nginx/ha.access.log;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值