Home Assistant addon for slackhq/nebula
Still in development, but as far as my use cases it appears fully functional. After I get some feedback I'll turn it into more than a locally-installed addon with some better docs.
nebula
folder in your local /addons
folderIf you've never used nebula and don't have detailed custom configuration needs, this is where to start.
hass_is_lighthouse
and hass_is_cert_authority
flagsnebula_network_cidr
)hass_advertise_addrs
)node_list
)As a security best practice, it's best not to store all your keys and certificates in one place. Or perhaps you just already manage all your nebula certificates somewhere else.
/ssl/nebula/nodes/{node_name}
and /ssl/nebula/nodes/ca
folders hass_is_cert_authority
in the UI configurationIf you already have your own nebula mesh running and don't want to use this add-on as a lighthouse, then you can host and configure your own lighthouse and just use this addon as a simple nebula node, or optionally use it as an easy way to generate your certificates.
hass_is_lightouse
flag in the UI, and configure the other_lighthouses
section and this node will link up to your existing lighthouses, as expected.If you already use nebula, or the existing templates just don't work for your usecase, you can always write your own config from scratch and ignore all the generated configs based on the UI.
/ssl/nebula/config.yaml
and delete the symlink that may already be there. Any generated configs will be ignored and your configuration will take precedence.nodes
folder and modify it as needed for your setup.Sorry, bad news. I haven't gotten to totally documenting this yet, but you can look at the nebula/examples/addon_config_example.yaml
and config.yaml
files in this repo to see what the structure of the fields is and what they do.
I also haven't implemented the public_key field, so if you want to use that for cert generation, you'll need to put the public key in the nodes
folder and reference it in the extra_args
field instead.
unsafe_route
clause to your nebula config that includes the IPs you want to access on your network using Nebula. (for example: 192.168.1.1/24
for the whole network, or 192.168.1.25/32
for just home assistant)nebula-cert
argument like -subnets 192.168.1.1/24
, using extra_args
rootfs/usr/bin
that will generate and sign all the certificates you need for your nodes, as well as handle (very) rudimentary IP management on your overlay network. It reads a hosts.txt
file and spits out folders with .crt
,.key
files and QR codes for easy consumption, without overwriting anything you already had in place.