HA: Difference between revisions

6,137 bytes added ,  1 month ago
 
(42 intermediate revisions by the same user not shown)
Line 9:
Source: [https://www.home-assistant.io/installation/raspberrypi#platform-installation home-assistant.io]
 
* Install Docker [https://aman.awiki.org/wiki/Rpi_Softwares#Docker Docker]
 
* Installation:
Line 21:
--network=host \
ghcr.io/home-assistant/home-assistant:stable
 
== Install HACS ==
 
sudo docker exec -it homeassistant bash
wget -O - https://get.hacs.xyz | bash -
 
== Portainer ==
 
Installation:
sudo docker pull portainer/portainer-ce:latest
sudo docker run -d -p 9000:9000 --name=portainer --restart=always --privileged -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
 
Access:
http://192.168.1.2:9000
 
== Certificates ==
 
=== Manual ===
Source: [https://eff-certbot.readthedocs.io/en/latest/using.html#manual readthedocs.io][https://eff-certbot.readthedocs.io/en/latest/using.html#nginx readthedocs.io]
 
Install Certbot:
sudo apt install certbot
 
Request Certificate:
sudo certbot certonly -d haos.uk.to
 
 
Install Certitficate:
 
sudo nano configuration.yaml
 
http:
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem
 
=== Nginx Proxy Manager ===
 
Install Image:
sudo docker run -d --name=nginx-proxy-manager --restart=unless-stopped --privileged -e TZ=Europe/Dublin -p 80:80 -p 443:443 -p 81:81 -v /home/pi/letsencrypt:/etc/letsencrypt -v /home/pi/data:/data jc21/nginx-proxy-manager:latest
 
Access App:
http://192.168.1.2:81
 
Default Administrator User
Email: admin@example.com
Password: changeme
 
Getting Certificates:
SSL Certificates > Add SSL Certificate > Let's Encrypt > "Domain Name" > "Email ID" > "I Agree" > Save
 
Adding Proxy Config for HA:
Hosts > Proxy Hosts > Add Proxy Host > "Domain Name" > "http" > "Local IP Address:Port" > "Enable WebSockets" > "Publically Accesible" > SSL > Select Certificate > Save
 
Configuring HA:
 
http:
ip_ban_enabled: true
login_attempts_threshold: 5
use_x_forwarded_for: true
trusted_proxies:
- 172.17.0.3 # Nginx Proxy Manager - Docker Instance's IP Address
 
== Upgrade Docker Instance ==
Source: [https://community.home-assistant.io/t/upgrading-homeassistant-in-docker/645019/2 home-assistant.io]
 
* Backup Config
* Upgrade Instance:
 
If this returns Image is up-to-date, you can stop here:
docker pull ghcr.io/home-assistant/home-assistant:stable
 
docker stop home-assistant
docker rm home-assistant
Start the [https://aman.awiki.org/wiki/HA#HomeAssist_Docker_Install Container]
 
* Regenarate SSH Keys
 
* Install HACS
 
 
== Upgrade using Portainer ==
Source: [https://community.home-assistant.io/t/upgrading-homeassistant-in-docker/645019/15 home-assistant.io]
 
* Backup Config
* Upgrade Instance:
Containers > homeassistant > Container details > Recreate > Select Pull Image option > Recreate
 
* Regenarate [https://aman.awiki.org/wiki/HA#SSH_Based_Sensor SSH Keys]
 
= ESPHome =
 
Source: [https://community.home-assistant.io/t/setting-up-esphome-with-home-assistant-running-in-docker/510133/3 home-assistant.io][https://esphome.io/guides/getting_started_command_line.html esphome.io]
 
Download the Image:
sudo docker pull ghcr.io/esphome/esphome
 
Start the Container
sudo docker run -d --name=esphome --restart=unless-stopped --privileged --net=host -e TZ=Europe/Dublin -v /home/pi/esphome/config:/config esphome/esphome
 
= BitWarden =
Source [https://pimylifeup.com/raspberry-pi-bitwarden/#bitwardenportainer pimylifeup.com]
 
sudo docker pull vaultwarden/server:latest
sudo docker run -d --name bitwarden \
--restart=always \
-v /bw-data/:/data/ \
-p 127.0.0.1:8080:80 \
-p 127.0.0.1:3012:3012 \
vaultwarden/server:latest
 
Even though we have Bitwarden up and running now, it isn’t possible to use it until we set up HTTPS.
{{UC}}
 
= OPNSense =
Source: [https://opnsense.org/download/ opnsense.org]
{{UC}}
 
= Calibre Web =
Source [https://hub.docker.com/r/linuxserver/calibre-web hub.docker.com]
 
docker pull linuxserver/calibre-web
 
docker run -d \
--name=calibre-web \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-e DOCKER_MODS=linuxserver/mods:universal-calibre `#optional` \
-e OAUTHLIB_RELAX_TOKEN_SCOPE=1 `#optional` \
-p 8083:8083 \
-v /path/to/data:/config \
-v /path/to/calibre/library:/books \
--restart unless-stopped \
lscr.io/linuxserver/calibre-web:latest
 
= Plex =
Source: [https://www.addictedtotech.net/install-plex-on-raspberry-pi-4-using-portainer-docker/ addictedtotech.net]
 
Create Config Dir:
mkdir home/pi/plex/plexdocker/config
 
Get Claim Code:
https://plex.tv/claim
 
Goto Portainer > Stacks > Add Stack > Paste Below config > click “Deploy the stack“.
 
 
<pre>
---
services:
plex:
image: lscr.io/linuxserver/plex:latest
platform: "linux/arm64"
container_name: plex
network_mode: host
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Dublin
- VERSION=docker
- PLEX_CLAIM=claim-V6t1wfuh343ry94398is3rA
ports:
- 32401:32400
volumes:
- /home/pi/plex/plexdocker/config:/config
- /media/drive:/drive
- /media/folder:/folder
restart: unless-stopped
</pre>
 
Access the Portal:
http://192.168.1.2:32400/web
 
= JellyFin =
Source: [https://jellyfin.org/docs/general/installation/container/ jellyfin.org]
 
Pull Image:
docker pull jellyfin/jellyfin
 
Install:
docker run -d \
--name jellyfin \
--user uid:gid \
--net=host \
--volume /path/to/config:/config \ # Alternatively --volume jellyfin-config:/config
--volume /path/to/cache:/cache \ # Alternatively --volume jellyfin-cache:/cache
--mount type=bind,source=/path/to/media,target=/media \
--restart=unless-stopped \
jellyfin/jellyfin
 
 
* Unlock Account:
sqlite3 /var/lib/jellyfin/data/jellyfin.db
UPDATE Users SET InvalidLoginAttemptCount = 0 WHERE Username = 'jellyfin';
UPDATE Permissions SET Value = 0 WHERE Kind = 2 AND UserId IN (SELECT Id FROM Users WHERE Username = 'jellyfin');
.exit
 
= Notifications =
Line 66 ⟶ 264:
</pre>
 
 
 
 
== SSH Based Sensor ==
 
Goto Docker Container:
sudo docker exec -it homeassistant bash
 
Enable Keyless SSH Access:
ssh-keygen
ssh-copy-id -i ~/.ssh/id_ed25519.pub pi@192.168.1.2
 
Test SSH Keyless from container:
ssh pi@192.168.1.2
 
Sensor Config:
<pre>
command_line:
- sensor:
command: "ssh pi@192.168.1.2 '/usr/bin/python3 /home/pi/homeassist/pmm_time_taken.py'"
name: PMM Time Taken
unit_of_measurement: "s"
value_template: '{{ value }}'
scan_interval: 86400
</pre>
 
<br />