diff --git a/homeassistant/.env-example b/homeassistant/.env-example index 04df6b7..459593e 100644 --- a/homeassistant/.env-example +++ b/homeassistant/.env-example @@ -2,4 +2,4 @@ HOMEASSISTANT_VERSION=latest # Homeassistant Domain -HOMEASSISTANT_DOMAIN=Homeassistant.example.com \ No newline at end of file +HOMEASSISTANT_DOMAIN=homeassistant.example.com \ No newline at end of file diff --git a/homeassistant/README.md b/homeassistant/README.md index 3a38a68..3ca2fd9 100644 --- a/homeassistant/README.md +++ b/homeassistant/README.md @@ -1,27 +1,62 @@ -# HomeassistantDocker Deployment +# Home Assistant Docker Setup with Traefik -This repository provides a `docker-compose` configuration for deploying the Homeassistant container, which is accessible via Traefik as a reverse proxy. +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 must be installed -- Traefik must be set up as a reverse proxy +- Docker and Docker Compose installed on your system +- Traefik configured as your reverse proxy +- A domain name pointing to your Home Assistant instance -## Installation +## Environment Variables +Before deploying the container, create a `.env` file from the provided `.env-example` file and adjust the values as needed. -1. **Configure the `.env` file** -Rename the `.env-example` file to `.env` and update the file with your specific values. This file contains environment variables used by the Traefik service. - -```bash -mv .env-example .env -``` -Modify the .env file +```sh +cp .env-example .env +nano .env ``` -2. **Start Docker-Compose** - - ```sh - docker-compose up -d - ``` +### `.env-example` file +```ini +# Home Assistant Version (Default: latest) +HOMEASSISTANT_VERSION=latest -## Access -Once the container is running, Homeassistant will be available at the configured domain. \ No newline at end of file +# 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 +``` \ No newline at end of file diff --git a/homeassistant/docker-compose.yml b/homeassistant/docker-compose.yml index cc4ed39..9561c31 100644 --- a/homeassistant/docker-compose.yml +++ b/homeassistant/docker-compose.yml @@ -9,7 +9,8 @@ services: - /run/dbus:/run/dbus:ro restart: unless-stopped privileged: true - network_mode: host + networks: + - traefik environment: - TZ=Europe/Rome cap_add: @@ -27,4 +28,8 @@ services: - "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" \ No newline at end of file + - "traefik.http.services.homeassistant.loadbalancer.server.port=8123" + +networks: + traefik: + external: true \ No newline at end of file