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.
- 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
- Ubuntu (20.04 or any version compatible with your hardware)
- docker
- docker-compose
For convinence, you may use this setup-docker.sh script.
Most services require some environments variables. Go to each folder and make a copy of .env.sample
to .env
and fill in the values.
Check docs here
- Set all secrets for the home assistant.
- 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 indocker-compose.yaml
Check docs here
- Needs Plex claim code unless you are migrating an existing instance
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
- Change device in
Just run docker-compose up -d
to bring up Home Assistant and all other services.