Home Assistant på NUC med docker

UPPDATERING November 2018. Jag la till en ny guide där jag även lägger till Letsencrypt vilket kanske borde varit med i denna med. Kika här för mer info. Följ gärna denna guide nedan först och gå vidare till denna ovan sen.

Jag har länge kört hass.io på min raspberry 3 vilket fungerat hyfsat bra. Efter hand har jag lagt på fler add-ons som Node Red, Grafana och Influx. Det blir tillslut ganska segt och jag var tvungen att få lite fart på detta. Jag är ingen expert på detta alls men har hittat något som fungerar bra för mig.

Vill du använda en NUC kan man installera på lite olika sätt. För att få en bra setup och kunna nyttja datorn till flera saker har jag valt att använda detta som bas.

  • Ubuntu server 18.04
  • Docker
  • Docker compose

Containers jag använder sen är

  • Grafana
  • Influxdb
  • Docker compose
  • Node Red
  • Portainer
  • Syncthing
  • Home Assistant

Jag startade med att installera hassio från docker explore. Den heter qemux86-64-homeassistant tror jag. Du hittar denna här. Jag ville helst köra hassio då jag var van vid detta sedan innan. Det finns ju en del fördelar med plug-ins. Det som kommer hända då är att du ser de plug-ins du lagt till i hassio i portainer som nedan. Dvs det blir docker containers. Vill du tex köra Grafana skulle jag istället lagt denna separat utanför hassio. Det blir enklare att administrera. Så det slutade med att jag kör vanliga Home Assistant.

Nedanser ni hur det kommer se ut i portainer. Men vi startar från början

Börja med att installera Ubuntu server. Installera sedan docker ce. Bäst är att följa den officiella dokumentationen så det blir rätt. När detta är gjort installera docker compose. Compose gör att det blir sjukt enkelt att starta upp allt.

När detta är på plats så är det dags att skapa filen docker-compose.yaml. Bifogar min nedan. Jag har tagit bort portarna så var noga med att skriva in dessa rätt. Vill du har med fler saker är det bara att lägga till. Var noga med tex usb raden för att docker skall komma åt en z wave sticka om man använder det.Det finns lite problem med Grafana som jag återkommer till senare.

När detta är gjort kommer alla dina configfiler sparas i mappen /srv/docker/. Vi kommer ta backup på denna sen med syncthing

 

version: '3'
services:
  portainer:
    container_name: portainer
    image: portainer/portainer
    volumes:
      - /srv/docker/portainer:/data
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - "xxxx:xxxx"


  syncthing:
    container_name: hass-sync
    restart: unless-stopped
    image: linuxserver/syncthing
    volumes:
      - /srv/docker/syncthing:/config
      - /srv/docker/hass-config:/sync
      - /etc/localtime:/etc/localtime:ro
    network_mode: host
    environment:
      - PGID=0
      - PUID=0

  influxdb:
    container_name: influxdb
    restart: unless-stopped
    image: influxdb:latest
    volumes:
#      - /srv/docker/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf:ro
      - /srv/docker/influxdb/db:/var/lib/influxdb
    environment:
      - INFLUX_GRAPHITE_ENABLED='true'
    ports:
      - "XXXX:XXXX"

  grafana:
    container_name: grafana
    restart: unless-stopped
    image: grafana/grafana
    depends_on:
      - "influxdb"
    volumes:
      - /srv/docker/grafana:/var/lib/grafana
    ports:
      - "XXXX:XXXX"
#    user: "104"

  homeassistant:
    container_name: home-assistant
    restart: unless-stopped
    image: homeassistant/home-assistant
    depends_on:
      - "influxdb"
    devices:
      - /dev/ttyACM0:/dev/ttyACM0
    volumes:
      - /srv/docker/hass-config:/config
      - /etc/localtime:/etc/localtime:ro
      - /srv/docker/hass_media:/media
    network_mode: host
    privileged: true

  nodered:
    container_name: node-red
    restart: unless-stopped
    image: nodered/node-red-docker:v8
    depends_on:
      - "homeassistant"
    user: root
    volumes:
      - /srv/docker/node-red/user:/data
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "XXXX:XXXX"

Nu är det dags att skapa alla containers. Kör:

sudo docker compose up -d

Det kommer ta ett litet tag att ladda ner och skapa alla containers. Nu kan du ansluta till dinip:9000. Guit är ganska enkelt och du kan här starta om, ta bort, uppdatera (recreate) eller bara se info. En bra funktion är konsolknappen där du kan ansluta direkt in med en prompt i containern. Bra då jag aldrig minns kommandot.

Nu är det bara att ansluta till de andra tjänsterna med. Skall fungera out of the box. Vill du kopiera din gamla Home Assistant konfiguration ta bara hela mappen och flytta.Jag körde innan https och dessa pem filer kan man lägga i sin srv/config/home assistant mapp med om man vill. Se på din konfiguration vad de finns idag.

Just Grafana har lite problem med rättigheterna. Anslut till konsolen via Portainer. Kör sen rättighetsändringarna enligt deras dokumentation. (Modifying permissions)

 

Vill du stoppa alla containers gör du det med:

sudo docker compose down.

Det sista jag gjort är att synka mina konfigfiler till min NAS. Skulle allt krasha så behöver du bara composefilen och din backup för att komma igång igen. Jag kommer att gå igenom detta i detalj vid ett senare tillfälle.