homeassistant #2
3 changed files with 102 additions and 0 deletions
5
homeassistant/.env-example
Normal file
5
homeassistant/.env-example
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# Homeassistant Version (Standard: latest)
|
||||||
|
HOMEASSISTANT_VERSION=latest
|
||||||
|
|
||||||
|
# Homeassistant Domain
|
||||||
|
HOMEASSISTANT_DOMAIN=homeassistant.example.com
|
62
homeassistant/README.md
Normal file
62
homeassistant/README.md
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
# Home Assistant Docker Setup with Traefik
|
||||||
|
|
||||||
|
This guide provides instructions for deploying Home Assistant using Docker and Traefik as a reverse proxy. The setup includes securing the Home Assistant instance with HTTPS and configuring a trusted proxy.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
- Docker and Docker Compose installed on your system
|
||||||
|
- Traefik configured as your reverse proxy
|
||||||
|
- A domain name pointing to your Home Assistant instance
|
||||||
|
|
||||||
|
## Environment Variables
|
||||||
|
Before deploying the container, create a `.env` file from the provided `.env-example` file and adjust the values as needed.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cp .env-example .env
|
||||||
|
nano .env
|
||||||
|
```
|
||||||
|
|
||||||
|
### `.env-example` file
|
||||||
|
```ini
|
||||||
|
# Home Assistant Version (Default: latest)
|
||||||
|
HOMEASSISTANT_VERSION=latest
|
||||||
|
|
||||||
|
# Home Assistant Domain
|
||||||
|
HOMEASSISTANT_DOMAIN=homeassistant.example.com
|
||||||
|
```
|
||||||
|
|
||||||
|
## Starting the Container
|
||||||
|
Once the `.env` file is configured, start the Home Assistant container using:
|
||||||
|
```sh
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuring the Reverse Proxy
|
||||||
|
To enable proper proxy support in Home Assistant, update `data/config/configuration.yaml` with the following settings:
|
||||||
|
|
||||||
|
### Finding the Local Subnet IP
|
||||||
|
To determine the Docker subnet used by Home Assistant, run:
|
||||||
|
```sh
|
||||||
|
docker inspect homeassistant | grep Gateway
|
||||||
|
```
|
||||||
|
|
||||||
|
### `configuration.yaml`
|
||||||
|
```yaml
|
||||||
|
http:
|
||||||
|
ip_ban_enabled: true
|
||||||
|
login_attempts_threshold: 5
|
||||||
|
use_x_forwarded_for: true
|
||||||
|
trusted_proxies:
|
||||||
|
- 10.0.0.0/24 # Local Subnet
|
||||||
|
- 172.18.0.0/24 # Your Docker Subnet
|
||||||
|
```
|
||||||
|
|
||||||
|
## Accessing Home Assistant
|
||||||
|
Once everything is set up, restart Home Assistant and it should be accessible via the configured domain:
|
||||||
|
```
|
||||||
|
https://homeassistant.example.com
|
||||||
|
```
|
||||||
|
|
||||||
|
If there are any issues, check the container logs with:
|
||||||
|
```sh
|
||||||
|
docker logs -f homeassistant
|
||||||
|
```
|
35
homeassistant/docker-compose.yml
Normal file
35
homeassistant/docker-compose.yml
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
---
|
||||||
|
services:
|
||||||
|
homeassistant:
|
||||||
|
container_name: homeassistant
|
||||||
|
image: "ghcr.io/home-assistant/home-assistant:${HOMEASSISTANT_VERSION:-latest}"
|
||||||
|
volumes:
|
||||||
|
- ./data/config:/config
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
- /run/dbus:/run/dbus:ro
|
||||||
|
restart: unless-stopped
|
||||||
|
privileged: true
|
||||||
|
networks:
|
||||||
|
- traefik
|
||||||
|
environment:
|
||||||
|
- TZ=Europe/Rome
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
- NET_BIND_SERVICE
|
||||||
|
- SYS_ADMIN
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.docker.network=traefik"
|
||||||
|
- "traefik.http.routers.homeassistant.entrypoints=http"
|
||||||
|
- "traefik.http.routers.homeassistant.rule=Host(`${HOMEASSISTANT_DOMAIN:?error}`)"
|
||||||
|
- "traefik.http.middlewares.homeassistant-https-redirect.redirectscheme.scheme=https"
|
||||||
|
- "traefik.http.routers.homeassistant.middlewares=homeassistant-https-redirect"
|
||||||
|
- "traefik.http.routers.homeassistant-secure.entrypoints=https"
|
||||||
|
- "traefik.http.routers.homeassistant-secure.rule=Host(`${HOMEASSISTANT_DOMAIN:?error}`)"
|
||||||
|
- "traefik.http.routers.homeassistant-secure.tls=true"
|
||||||
|
- "traefik.http.routers.homeassistant-secure.service=homeassistant"
|
||||||
|
- "traefik.http.services.homeassistant.loadbalancer.server.port=8123"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
traefik:
|
||||||
|
external: true
|
Loading…
Add table
Reference in a new issue