whiskerz007 / proxmox_hassio_lxc

MIT License
212 stars 82 forks source link

Home Assistant in Proxmox LXC container

Many benefits can be gained by using a LXC container compared to a VM. The resources needed to run a LXC container are less than running a VM. Modifing the resouces assigned to the LXC container can be done without having to reboot the container. The serial devices connected to Proxmox can be shared with multiple LXC containers simulatenously.

Usage

Note: Before using this repo, make sure Proxmox is up to date.

To create a new LXC container on Proxmox and setup Home Assistant to run inside of it, run the following in a SSH connection or the Proxmox web shell.

bash -c "$(wget -qLO - https://github.com/whiskerz007/proxmox_hassio_lxc/raw/master/create_container.sh)"

After running the above command, you should modify the container's Resources (Cores, Memory, Root disk) before you continue to setup Home Assistant. Failure to do so could result in Home Assistant not functioning as expected. Modified Resources will be applied immediately without the need to reboot the container. Hardware changes to Proxmox (for example plugin/unplug USB device) requires the container to restart in order for Home Assistant to parse the changes.

Update device hooks

To update the list of devices that are shared with the LXC ID of 100, run the following in a SSH connection or the Proxmox web shell.

bash -c "$(wget -qLO - https://github.com/whiskerz007/proxmox_hassio_lxc/raw/master/set_autodev_hook.sh)" -s 100

Note: The changes will apply on the next start of LXC.

Copy data between containers

To ease the process of updating the LXC configuration, a script has been provided. To copy Home Assistant data from one container to another, run the following in a SSH connection or the Proxmox web shell.

bash -c "$(wget -qLO - https://github.com/whiskerz007/proxmox_hassio_lxc/raw/master/copy_data.sh)"

Known limitations

Console

There is no login required to access the console from the Proxmox web UI. If you are presented with a blank screen, press CTRL + C to generate a prompt.