/home-lab

Home assistant setup, config and docs related to this

Primary LanguageJavaScript

Home Lab


This repo contains the config for all the services that run on the HomeLab. Here's the list of services that run in their own docker containers:

  • home-assistant - Runs the open source home automation tool, Home Assistant. All the other services are integrated into this in some form.
  • database - MariaDB database service used by home-assistant
  • zigbee-app - interacts with Conbee II stick, a universal Zigbee USB gateway.
  • mqtt-broker - runs an Eclipse Mosquitto MQTT broker. There are multiple Raspberry Pi's around the house that gather and report Plant sensor data to the broker. Home assistant consumes this data
  • media-server - runs a Plex Media Server. This gives access to the Media hosted on this server to multiple devices in the house
  • monitoring - runs Glances service to monitor the resources of the Home Lab server.
  • cloud-backup - uses rclone to do daily backups of the HomeLab setup to a cloud service. If something really bad happens, we can always start fresh from the last backup in no time.
  • local-sync - uses rsync to periodically move data from Internal to External HD.
  • cron-service - runs a docker cron service using Ofelia. This allows us to schedule tasks on different containers - used for periodic syncs.
  • torrent-client - runs a Transmission client that's accessible to other devices in the local network.

Requirements


Hardware

  • This instance runs on an Intel NUC. If you want use a Raspberry Pi, you will need to update the docker-compose.yml with images suitable for ARM CPU architecture.
  • Conbee II USB stick plugged into the server

Software

  • Ubuntu (20.04 or any version compatible with your hardware)
  • docker
  • docker-compose

For convinence, you may use this setup-docker.sh script.

Setup


Most services require some environments variables. Go to each folder and make a copy of .env.sample to .env and fill in the values.

Home Assistant

Check docs here

  • Set all secrets for the home assistant.

Rsync Cloud backups

  • Authorize a cloud service with cloud-backup container. It runs rsync - check docs for how to authenticate a service. Name the service as cloud to avoid having to make changes in docker-compose.yaml

Plex Media Server

Check docs here

  • Needs Plex claim code unless you are migrating an existing instance

deConz Zigbee app

Check docs here

  • Grant USB permissions to current user sudo usermod -a -G dialout $USER
  • Check that deconz USB stick is mounted at /dev/ttyACM0 if not
    • Change device in docker-compose.yml
    • Change device in zigbee-app/.env

Starting up


Just run docker-compose up -d to bring up Home Assistant and all other services.