{"id":15086088,"url":"https://github.com/mwdle/homeassistantconfig","last_synced_at":"2026-01-04T01:03:22.601Z","repository":{"id":253706298,"uuid":"844264973","full_name":"mwdle/HomeAssistantConfig","owner":"mwdle","description":"A sample Docker Compose configuration for the smart home services I use: Home Assistant, MQTT, Frigate, Music Assistant, and RouterRebooter.","archived":false,"fork":false,"pushed_at":"2025-01-20T04:27:55.000Z","size":26,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-17T01:42:49.278Z","etag":null,"topics":["docker","docker-compose","frigate","frigate-nvr","home-assistant","home-assistant-config","mosquitto-mqtt-broker","mqtt-broker","mqtt-docker","mqtt-server","music-assistant","router-rebooter"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mwdle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-18T21:46:54.000Z","updated_at":"2025-01-20T04:27:56.000Z","dependencies_parsed_at":"2024-08-26T06:33:04.961Z","dependency_job_id":"2894701c-ba4b-40ba-8b3d-d7b5211411f7","html_url":"https://github.com/mwdle/HomeAssistantConfig","commit_stats":{"total_commits":7,"total_committers":1,"mean_commits":7.0,"dds":0.0,"last_synced_commit":"888c8064bdbee5e152441329ac4518180fcd77db"},"previous_names":["mwdle/homeassistant"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwdle%2FHomeAssistantConfig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwdle%2FHomeAssistantConfig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwdle%2FHomeAssistantConfig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwdle%2FHomeAssistantConfig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mwdle","download_url":"https://codeload.github.com/mwdle/HomeAssistantConfig/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243960450,"owners_count":20375101,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","frigate","frigate-nvr","home-assistant","home-assistant-config","mosquitto-mqtt-broker","mqtt-broker","mqtt-docker","mqtt-server","music-assistant","router-rebooter"],"created_at":"2024-09-25T07:30:30.787Z","updated_at":"2026-01-04T01:03:22.595Z","avatar_url":"https://github.com/mwdle.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multi-Service Docker Compose Configuration for Home Assistant\n\nA sample Docker Compose configuration for the smart home services I use: [Home Assistant](https://www.home-assistant.io/), [Mosquitto MQTT](https://mosquitto.org/), [Frigate NVR](https://frigate.video/), [Music Assistant](https://music-assistant.io/), and [selenium/standalone-chrome](https://hub.docker.com/r/selenium/standalone-chrome) for Selenium automation within Home Assistant.\n\n## Table of Contents\n\n- [Description](#multi-service-docker-compose-configuration-for-home-assistant)\n- [Getting Started](#getting-started)\n- [License](#license)\n- [Disclaimer](#disclaimer)\n\n## Getting Started\n\n1. Clone the repository:\n\n   ```shell\n   git clone https://github.com/mwdle/HomeAssistantConfig.git\n   ```\n\n2. Create a folder on your system for Docker bind mounts / storing container files. The folder should have the following structure:\n\n   ```shell\n   docker_volumes/\n   ├── Frigate/\n   │   ├── config/\n   │   └── storage/\n   ├── HomeAssistant/\n   │   ├── config/\n   │   └── .ssh/\n   ├── MQTT/\n   │   ├── config/\n   │   ├── data/\n   │   └── log/\n   └── MusicAssistant/\n       └── data/\n   ```\n\n3. Create a file called `.env` in the same directory as `compose.yaml` containing the following properties:\n\n   ```properties\n   DOCKER_VOLUMES=\u003cPATH_TO_DOCKER_VOLUMES_FOLDER\u003e # The folder created in the previous step.\n   RTSP_USER=\u003cYOUR_RTSP_USER\u003e # For Frigate\n   RTSP_PASSWORD=\u003cYOUR_RTSP_PASSWORD\u003e # For Frigate\n   MQTT_USER=\u003cYOUR_MQTT_USER\u003e # For Frigate\n   MQTT_PASSWORD=\u003cYOUR_MQTT_PASSWORD\u003e # For Frigate\n   MUSIC_VOLUME=\u003cYOUR_MUSIC_LIBRARY_FOLDER\u003e # A folder containing your local music library for Music Assistant.\n   ROUTER_PASSWORD=\u003cYOUR_ROUTER_PASSWORD\u003e # For router rebooter pyscript automation\n   EXTENDER_PASSWORD=\u003cYOUR_EXTENDER_PASSWORD\u003e # For extender rebooter pyscript automation\n   ```\n\n4. Open a terminal in the directory containing the compose.yaml file.\n5. Create docker networks for the containers\n\n   ```shell\n   docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 -o parent=eno1 AAA_LAN # Ensure the gateway and subnet match your LAN network. YOUR LAN SHOULD BE TRUSTED. AAA in the name ensures Docker uses this network as the primary interface for all connected containers.\n   docker network create Frigate\n   docker network create HomeAssistant\n   docker network create MusicAssistant\n   docker network create Chrome\n   ```\n\n   The networks are configured in compose.yaml such that:\n\n   - Containers in the same network are accessible from each other by their container names.\n   - Music Assistant is in a macvlan, making it appear to be a physical interface on the host's LAN (allowing mDNS / device discovery). Make sure to reserve the IP address listed for Music Assistant in compose.yaml on your router's web interface.\n   - Home Assistant is in a macvlan, making it appear to be a physical interface on the host's LAN (allowing mDNS / device discovery). Make sure to reserve the IP address listed for Home Assistant in compose.yaml on your router's web interface.\n   - Frigate's Port 8555 (for WebRTC) is bound to port 8555 on the host.\n   - Frigate and MQTT can directly communicate.\n   - Home Assistant and MQTT can directly communicate.\n   - Home Assistant and Chrome can directly communicate for Selenium automation via pyscript.\n   - Home Assistant and Music Assistant can communicate so long as you add your Reverse Proxy for MA to the Home Assistant Docker network using a _Docker Network Alias_ to connect with.\n   - Home Assistant and Frigate can communicate so long as you add your Reverse Proxy for Frigate to the Home Assistant Docker network using a _Docker Network Alias_ to connect with.\n\n6. Start the containers:\n\n   ```shell\n   docker compose up -d\n   ```\n\n7. Configure Home Assistant Dashboard (Optional): After deploying Home Assistant with the router_rebooter pyscript app files from this repository and setting up template buttons in `configuration.yaml` to trigger the services, you can add a dashboard card for easy access to the rebooter functionality:\n\n   ```yaml\n   type: entities\n   entities:\n     - entity: button.reboot_router\n     - entity: pyscript.router_rebooter_status\n     - entity: button.reboot_extender\n     - entity: pyscript.extender_rebooter_status\n   title: Rebooters\n   ```\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n## Disclaimer\n\nThis repository is provided as-is and is intended for informational and reference purposes only. The author assumes no responsibility for any errors or omissions in the content or for any consequences that may arise from the use of the information provided. Always exercise caution and seek professional advice if necessary.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmwdle%2Fhomeassistantconfig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmwdle%2Fhomeassistantconfig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmwdle%2Fhomeassistantconfig/lists"}