All apps · 0 apps
HomeAssistant_inabox
Docker app from SpaceInvaderOne's Repository
Overview
HomeAssistant_inabox downloads, installs, and automatically manages a Home Assistant VM on your Unraid server with a single click. If the VM is found to be unexpectedly stopped, the container will automatically restart it to ensure uninterrupted service. Once installed, clicking on this container's WebUI will redirect you directly to your Home Assistant VM's WebUI.
Container VariablesVM Name
Specify the desired name for the Home Assistant VM. --Default Home Assistant
VM Images Location
Set the path to where your VM images are stored
Appdata Location
Set the directory where HomeAssistant_inabox will store its appdata.
Keep VM Running
Choose Yes to automatically monitor if the Home Assistant VM is running. If it is found to be stopped, the container will attempt to restart the VM --Default Yes
Check Time
Specify how frequently (in minutes) to check if the Home Assistant VM is running.
Default: 15 minutes
HA_inabox WebUI Port
Port used by the container to access the Home Assistant WebUI --Default: 8123
Notes
- During the VM installation, the container dynamically builds the XML template based on the current configuration.
- It automatically detects the highest available QEMU machine type on the server and adjusts the VM template to use the optimal configuration.
- For smooth operation, ensure that the VM storage and appdata paths are correctly set according to your Unraid shares.
Readme
View on GitHubHomeAssistant_inabox
HomeAssistant_inabox is a powerful, easy-to-use Docker container designed to seamlessly download and install a fully functional Home Assistant VM onto an Unraid server. It simplifies the installation and management of Home Assistant by integrating a virtual machine (VM) setup directly from the official Home Assistant source.
Key Features
- Direct Download & Installation: Automatically downloads the Home Assistant
.qcow2image from the official Home Assistant release repository and installs it onto your Unraid server. - Automated VM Setup: Handles the creation of a new VM configuration, dynamically building the XML template based on your environment and the highest QEMU version available.
- Automatic VM Monitoring: Regularly checks the status of the VM and restarts it if it has been shut down unexpectedly, ensuring Home Assistant is always available.
- Seamless Integration with Docker & VM WebUI: Combines Docker container management with VM monitoring. Clicking the “WebUI” link from the Unraid Docker tab will automatically redirect to the Home Assistant WebUI inside the VM.
- Dynamic IP Management: Automatically determines the internal IP address of the Home Assistant VM and updates the Docker WebUI redirect, so you always have access even if the VM’s IP address changes.
Getting Started
Follow these instructions to install and configure the HomeAssistant_inabox container on your Unraid server.
Installation
- Go to the Unraid Apps Tab (also known as CA Community Applications).
- Search for
HomeAssistant_inaboxand click Install. - Configure the container variables as described below in the “Configuration” section.
- Start the container. HomeAssistant_inabox will automatically download the latest Home Assistant image, create a VM, and set up the necessary configuration files.
- Once the setup is complete, click the container’s “WebUI” button to access your Home Assistant instance.
Configuration
HomeAssistant_inabox relies on a few essential variables that need to be set through the Unraid Docker template. Below is a detailed description of each option and its purpose:
Container Variables
VMNAME- Description: Set the name of the Home Assistant VM.
- Default:
Home Assistant - Purpose: This is the VM name that will be displayed in Unraid’s VM manager.
VM Images Location- Description: Specify the location where the VM images are stored (e.g., your Domains share).
- Example:
/mnt/user/domains/ - Purpose: Defines the storage path for the Home Assistant VM files on your Unraid server.
Appdata Location- Description: Set the path where HomeAssistant_inabox stores its appdata and configuration files.
- Default:
/mnt/user/appdata/homeassistantinabox/ - Purpose: Specifies where the container’s internal configuration and scripts are stored.
Keep VM Running- Description: If set to
Yes, the container will automatically monitor the Home Assistant VM and restart it if it’s not running. - Default:
Yes - Purpose: Ensures that Home Assistant remains available, even after unexpected shutdowns.
- Description: If set to
Check Time- Description: Defines the frequency (in minutes) for checking the status of the Home Assistant VM.
- Default:
15 - Purpose: Determines how often the container checks to see if the VM is running and needs to be started.
WEBUI_PORT- Description: Set the port for accessing the Home Assistant WebUI through the container’s WebUI redirect.
- Default:
8123 - Purpose: Allows you to configure the WebUI access port for Home Assistant.
How It Works
HomeAssistant_inabox provides a robust solution by combining a Docker container with a full VM environment:
Direct Download & Installation:
- When the container is started, it automatically downloads the latest Home Assistant
.qcow2disk image from the official Home Assistant source. - It then extracts and moves the image to your Unraid server’s specified domains location.
- When the container is started, it automatically downloads the latest Home Assistant
Dynamic VM Setup:
- The container dynamically builds a VM XML template for Home Assistant using the latest QEMU version available.
- This template is then used to define a new VM on your Unraid server.
Automatic IP Detection:
- After the VM is started, the container uses the QEMU guest agent to retrieve the internal IP address of the VM.
- The IP address is then used to configure a redirect within the Docker container, making the “WebUI” link in Unraid’s Docker tab point directly to the Home Assistant WebUI inside the VM.
Monitoring & Restart Functionality:
- If
RESTARTis set toYes, the container will regularly check to see if the Home Assistant VM is running. - If the VM is found to be shut down or paused, the container will attempt to start it automatically.
- If
WebUI Integration:
- When you click the WebUI button for the HomeAssistant_inabox container, it dynamically redirects to the Home Assistant WebUI inside the VM using the IP address retrieved during the last check.
Example Use Case
- Scenario: You want to run Home Assistant on your Unraid server, but you also want to manage it through the Docker interface rather than a separate VM management tab then having to use browser to login.
- Solution: Install HomeAssistant_inabox and configure the necessary variables. With this setup, Home Assistant will run as a VM but be accessible directly from the Docker WebUI link.
- Result: This simplifies your environment and provides a single point of access for Home Assistant, combining the convenience of Docker management with the power and flexibility of a dedicated VM.
Contributions & Support
Feel free to contribute to the development of HomeAssistant_inabox by submitting pull requests or opening issues . For support and questions, join the Unraid community forum thread for HomeAssistant_inabox.
License
This project is licensed under the MIT License. See the LICENSE file for more details.
Acknowledgements
Special thanks to the Unraid community for their support and contributions, as well as the Home Assistant team for providing a powerful home automation platform.
Install HomeAssistant_inabox on Unraid in a few clicks.
Find HomeAssistant_inabox in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Requirements
Categories
Download Statistics
Total Downloads Over Time
Related apps
Explore more like this
Explore allLinks
Details
spaceinvaderone/ha_inabox:latestRuntime arguments
- Web UI
http://[IP]:[PORT:8123]- Network
bridge- Shell
sh- Privileged
- true
Template configuration
Enter a different name if you want the VM to have a name other than the OS name. If left blank, the container will use the default OS name installed.
- Target
- VMNAME
- Value
- Home Assistant
page to scrape for download link
- Target
- CHECKURL
- Default
- https://www.home-assistant.io/installation/linux
- Value
- https://www.home-assistant.io/installation/linux
Please choose the storage location for your VM images on the server. The default path is set to /mnt/user/domains/
- Target
- /domains
- Default
- /mnt/user/domains/
- Value
- /mnt/user/domains/
Please choose the storage location for your appdata The default path is set to /mnt/user/appdata/HomeAssistant_inabox/
- Target
- /config
- Default
- /mnt/user/appdata/HomeAssistant_inabox
- Value
- /mnt/user/appdata/HomeAssistant_inabox
If VM should stop container will restart it. Ensures Home Assistant will keep running should VM stop
- Target
- RESTART
- Default
- Yes|No
- Value
- Yes
Check if VM is running (default every 15 mins)
- Target
- CHECK
- Default
- 15
- Value
- 15
- Target
- 8123
- Default
- 8123
- Value
- 8123
- Target
- /icons
- Value
- /usr/local/emhttp/plugins/dynamix.vm.manager/templates/images
Used so container can use unraid notification system during Home Assistant VM creation process
- Target
- /host/usr/lib64
- Default
- /usr/lib64
- Value
- /usr/lib64
Location of where Unraid stores VM icons, aloowing container to use custom Home Assistant icon
- Target
- /unraid_vm_icons
- Default
- /usr/local/emhttp/plugins/dynamix.vm.manager/templates/images/
- Value
- /usr/local/emhttp/plugins/dynamix.vm.manager/templates/images/
NVRAM location on host. Used so container can create a unique nvram file for the Home Assistant VM
- Target
- /etc/libvirt/qemu/nvram/
- Default
- /etc/libvirt/qemu/nvram/
- Value
- /etc/libvirt/qemu/nvram/
UNRAID domain.cfg path. Used to find VM Default network source
- Target
- /vm/domain.cfg
- Default
- /boot/config/domain.cfg
- Value
- /boot/config/domain.cfg
Used so container can use unraid notification system during Home Assistant VM creation process
- Target
- /host/usr/lib
- Default
- /usr/lib
- Value
- /usr/lib
Used so container can use unraid notification system during Home Assistant VM creation process
- Target
- /host/lib64
- Default
- /lib64
- Value
- /lib64
Used so container can use unraid notification system during Home Assistant VM creation process
- Target
- /host/usr/local/emhttp/webGui/scripts/
- Default
- /usr/local/emhttp/webGui/scripts/
- Value
- /usr/local/emhttp/webGui/scripts/
Used so container can use unraid notification system during Home Assistant VM creation process
- Target
- /host/usr/local/emhttp/webGui/include/
- Default
- /usr/local/emhttp/webGui/include/
- Value
- /usr/local/emhttp/webGui/include/
Used so container can use unraid notification system during Home Assistant VM creation process
- Target
- /host/tmp/notifications
- Default
- /tmp/notifications
- Value
- /tmp/notifications
Used so container can use unraid notification system during Home Assistant VM creation process
- Target
- /host/boot/config/plugins/dynamix/
- Default
- /boot/config/plugins/dynamix/
- Value
- /boot/config/plugins/dynamix/
LIBVIRT Location on host. Used so container can define the Home Assistant VM
- Target
- /var/run/libvirt
- Default
- /var/run/libvirt
- Value
- /var/run/libvirt
Used so container can use unraid notification system during Home Assistant VM creation process
- Target
- /host/usr/bin
- Value
- /usr/bin
Used so container can use unraid notification system during Home Assistant VM creation process
- Target
- /host/lib
- Default
- /lib
- Value
- /lib
UNRAID docker.sock. Used so container can use docker inspect to workout true locations of mapped locations to create the xml used to define the Home Assistant VM
- Target
- /var/run/docker.sock
- Default
- /var/run/docker.sock
- Value
- /var/run/docker.sock
template evrsion of container. used to check template is correct version for version of software
- Target
- WHATVERSION
- Default
- 2
- Value
- 2