diff --git a/.env.example b/.env.example index dbd15e9..fda84e4 100644 --- a/.env.example +++ b/.env.example @@ -10,6 +10,7 @@ PIA_USER= PIA_PASS= PIA_LOCAL_NETWORK="192.168.0.0/16" HOSTNAME=localhost +HOMEASSISTANT_HOSTNAME= ADGUARD_HOSTNAME= ADGUARD_USERNAME= ADGUARD_PASSWORD= @@ -29,6 +30,7 @@ PROWLARR_API_KEY= JELLYFIN_API_KEY= JELLYSEERR_API_KEY= SABNZBD_API_KEY= +HOMEASSISTANT_ACCESS_TOKEN= HOMEPAGE_VAR_TITLE="Docker-Compose NAS" HOMEPAGE_VAR_SEARCH_PROVIDER=google HOMEPAGE_VAR_HEADER_STYLE=boxed diff --git a/.gitignore b/.gitignore index 4bb0d45..fc96e73 100644 --- a/.gitignore +++ b/.gitignore @@ -17,7 +17,6 @@ docker-compose.override.yml /jellyseerr /adguardhome/certs /adguardhome/conf -!/adguardhome/conf/.gitkeep /adguardhome/work -!/adguardhome/work/.gitkeep /sabnzbd +/homeassistant diff --git a/README.md b/README.md index fb9a4ae..f00c606 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,7 @@ I am running it in Ubuntu Server 22.04; I also tested this setup on a [Synology | [AdGuard Home](https://adguard.com/en/adguard-home/overview.html) | Optional - Network-wide software for blocking ads & tracking
Enable with `COMPOSE_PROFILES=adguardhome` | [adguard/adguardhome](https://hub.docker.com/r/adguard/adguardhome) | | | [Tandoor](https://tandoor.dev) | Optional - Smart recipe management
Enable with `COMPOSE_PROFILES=tandoor` | [vabene1111/recipes](https://hub.docker.com/r/vabene1111/recipes) | /recipes | | [Joplin](https://joplinapp.org/) | Optional - Note taking application
Enable with `COMPOSE_PROFILES=joplin` | [joplin/server](https://hub.docker.com/r/joplin/server) | /joplin | +| [Home Assistant](https://www.home-assistant.io//) | Optional - Open source home automation that puts local control and privacy first
Enable with `COMPOSE_PROFILES=homeassistant` | [home-assistant/home-assistant:stable](https://ghcr.io/home-assistant/home-assistant) | | Optional containers are not enabled by default, they need to be enabled, see [Optional Services](#optional-services) for more information. @@ -378,6 +379,16 @@ See [here](./tandoor/README.md). See [here](./joplin/README.md). +### Home Assistant + +Enable AdGuard Home by setting `COMPOSE_PROFILES=homeassistant`. + +Set the `HOMEASSISTANT_HOSTNAME`, since it does not support +[running in a subfolder](https://github.com/home-assistant/architecture/issues/156). +Add the necessary DNS records in your domain. + +Set the `HOMEASSISTANT_ACCESS_TOKEN` for homepage support. + ## Customization You can override the configuration of a service or add new services by creating a new `docker-compose.override.yml` file, diff --git a/adguardhome/certs/.gitkeep b/adguardhome/certs/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/adguardhome/conf/.gitkeep b/adguardhome/conf/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/adguardhome/work/.gitkeep b/adguardhome/work/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/docker-compose.yml b/docker-compose.yml index 7c8a390..a4a3e3d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -401,6 +401,41 @@ services: - homepage.widget.type=jellyfin - homepage.widget.url=http://jellyfin:8096/jellyfin - homepage.widget.key=${JELLYFIN_API_KEY} + homeassistant: + image: ghcr.io/home-assistant/home-assistant:stable + container_name: homeassistant + network_mode: host + environment: + - HOMEPAGE_VAR_TITLE=${HOMEPAGE_VAR_TITLE} + - HOMEPAGE_VAR_SEARCH_PROVIDER=${HOMEPAGE_VAR_SEARCH_PROVIDER} + - HOMEPAGE_VAR_HEADER_STYLE=${HOMEPAGE_VAR_HEADER_STYLE} + - HOMEPAGE_VAR_WEATHER_CITY=${HOMEPAGE_VAR_WEATHER_CITY} + - HOMEPAGE_VAR_WEATHER_LAT=${HOMEPAGE_VAR_WEATHER_LAT} + - HOMEPAGE_VAR_WEATHER_LONG=${HOMEPAGE_VAR_WEATHER_LONG} + - HOMEPAGE_VAR_WEATHER_TIME=${TIMEZONE} + - HOMEPAGE_VAR_WEATHER_UNIT=${HOMEPAGE_VAR_WEATHER_UNIT} + volumes: + - ./homeassistant:/config + - /etc/localtime:/etc/localtime:ro + - /run/dbus:/run/dbus:ro + restart: always + labels: + - traefik.enable=true + - traefik.http.routers.homeassistant.rule=(Host(`${HOMEASSISTANT_HOSTNAME}`)) + - traefik.http.routers.homeassistant.tls=true + - traefik.http.routers.homeassistant.tls.certresolver=myresolver + - traefik.http.services.homeassistant.loadbalancer.server.port=8123 + - homepage.group=Apps + - homepage.name=homeassistant + - homepage.icon=homeassistant.png + - homepage.href=${HOMEASSISTANT_HOSTNAME} + - homepage.description=Open source home automation that puts local control and privacy first + - homepage.weight=3 + - homepage.widget.type=homeassistant + - homepage.widget.url=http://homeassistant:8123 + - homepage.widget.key=${HOMEASSISTANT_ACCESS_TOKEN} + profiles: + - homeassistant homepage: image: ghcr.io/gethomepage/homepage:latest container_name: homepage