Running Home Assistant with Docker (docker-compose)
Home Assistant on Docker is easier than running it with HASSIO IMO. :rocket:
Here is a high-altitude overview of how I run Home Assistant -and- then I’ll dig into the details of my setup.
- Setup Raspbian with Docker and Docker-Compose
 - Plugin my Aeon Z-wave script; make sure it’s on /dev/ttyACM0
 - Setup scripts for Docker-Compose
 - Setup scripts so it runs on startup
 - Create a backup process
 
Okay, details… here is how I run Home Assistant on Docker on a Raspberry Pi 4.
- Install Raspbian on the Raspberry Pi 4.
 - Install Docker and Docker-Compose.
 - Create 
/root/docker-compose.ymlconsisting of the following (NOTE: I use the Aeon z-wave stick at /dev/ttyACM0): 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
version: '3.7'
services:
  homeassistant:
    container_name: homeassistant
    image: homeassistant/raspberrypi4-homeassistant:latest
    network_mode: "host"
    ports:
      - "8123:8123"
    volumes:
      - /opt/homeassistant:/config
      - /etc/localtime:/etc/localtime:ro
      - /etc/letsencrypt:/etc/letsencrypt:ro
    devices:
      - /dev/ttyACM0:/dev/ttyACM0:rwm
    restart: always
    healthcheck:
      test: ["CMD", "curl", "-f", "http://127.0.0.1:8123"]
      interval: 30s
      timeout: 10s
      retries: 6
- Create the following file for automating the service on startup 
/etc/systemd/system/home-assistant.service 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# /etc/systemd/system/home-assistant.service
[Unit]
Description=Home Assistant Service
Requires=docker.service
After=docker.service
[Service]
WorkingDirectory=/root
ExecStart=/usr/local/bin/docker-compose up
ExecStop=/usr/local/bin/docker-compose down
TimeoutStartSec=0
Restart=on-failure
StartLimitIntervalSec=60
StartLimitBurst=3
[Install]
WantedBy=multi-user.target
- Run this 
systemctl enable home-assistant.service - Run this 
systemctl enable docker 
 This post is licensed under  CC BY 4.0  by the author.