Collection of Ansible playbooks to deploy your own smart home environment
Hassible targets Ubuntu/Debian distros and deploys docker and homestack. It then configures and brings up the wanted containers defined in homestack.
Do note that for zigbee and zwave, you need to have a physical coordinator!
- Hassible also installs NGINX as a reverse proxy for you
- Handles SSL Certs with Let's Encrypt!
- Capability to handle dynamic dns with duckdns
The playbook homestack.yml
executes all the roles.
For convenience, each role also has it's own playbook if you want to execute only a specific role.
Hassible has been written for Ansible 2.9 so make sure you have that installed, for example in a virtualenv.
If you plan to use the zigbee2mqtt or zwavejs2mqtt roles, make sure you own the corresponding physical USB adapters!
-
Install required roles from Ansible Galaxy:
ansible-galaxy install -r requirements.yml -p roles
-
Start by editing the inventory file or pass your own inventory with the same group names.
- Replace localhost with the host that you are targeting
- Remove the host from groups you don't want
-
Remove/Comment out roles that you don't care for from
homestack.yml
-
Set up a domain to point towards the host and ensure port 80 is open
-
Edit files in
group_vars
- Set install location in
group_vars/homestack
- Change all default passwords (if you're real savvy use a vault!)
- Configure domains for all the services you want to reverse proxy in
group_vars/nginx_frontend
- Set install location in
-
Configure variables in group_vars as you see fit
-
Run the playbook!
ansible-playbook -i inventory homestack.yml
Optional: set up Duck DNS
- Log in to duckdns
- Create subdomain(s) and add them to group_vars/duckdns
- Copy token to group_vars/duckdns