Files
casa/README.md
Márcio Fernandes 5d92427fb1 modified: README.md
renamed:    rclone.docker-plugin.playbook.yml -> rclone.docker-plugin.playbook.yaml
2025-05-04 04:09:33 +01:00

6.5 KiB

casa

Welcome to my home server repository, where Home Assistant and other services are hosted.
This repository is dedicated to documenting and maintaining the server configuration and workflows.

The primary goal is to establish a Docker-based server capable of isolating services and communications related to home automation at the network level.
The server operates within its own VLAN (homesrv) but requires controlled communication with other VLANs, such as:

  • IOT

Table of Contents

Services

myInfra stack

docker, promtail and telegraf configuration maintained on myInfra repo.

docker

rclone plugin

https://rclone.org/docker/

# execute on server
sudo apt-get -y install fuse
docker plugin install rclone/docker-volume-rclone:amd64 args="-v" --alias rclone --grant-all-permissions
docker plugin list

ansible role for plugin configuration

nginx

Docker Compose

All sites configurations set during docker build.

Home Assistant

Git Repo

Lyrion Music Server (LMS)

For instructions on setting up the Lyrion Music Server Docker container, refer to the LMS Git Repository.

For information on integrating Lyrion Music Server with Home Assistant, visit the Home Assistant Git Repository.

Using Docker Rclone plugin for accessing the bucket where music is stored. Configuration is managed via Ansible playbook.

#configure access to s3 bucket
ansible-playbook ./rclone.docker-plugin.playbook.yml

Mosquitto

Git Repo

Wyoming

A peer-to-peer protocol for voice assistants (basically JSONL + PCM audio)

{ "type": "...", "data": { ... }, "data_length": ..., "payload_length": ... }
<data_length bytes (optional)>
<payload_length bytes (optional)>

Used in Rhasspy and Home Assistant for communication with voice services.

This is an open standard of the Open Home Foundation.

For more information about home assistant integration check home assistant repo.

docker compose file.

Links:

Zigbee2mqtt

Zigbee to MQTT bridge, get rid of your proprietary Zigbee bridges

SONOFF Universal Zigbee 3.0 USB Dongle Plus attached on proxmox host.

Patch security on proxmox host. (usb passthrough to lxc container)

#on proxmox hosting server
chown 100000:100020 /dev/ttyUSB0
chown 100000:100020 /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_c0e8eeb4b38ded118e7c06f6b86ce6f8-if00-port0

docker compose

Links

Host

Proxmox - container

Currently hosted on a proxmox ubuntu container.

#   cat /etc/pve/lxc/105.conf
arch: amd64
cmode: shell
cores: 2
features: fuse=1,keyctl=1,nesting=1
hostname: homesrv01
memory: 1500
net0: name=eth0,bridge=vmbr0,firewall=1,ip6=dhcp,...,type=veth
onboot: 1
ostype: ubuntu
protection: 1
rootfs: local-lvm:vm-105-disk-0,size=32G
swap: 1500
unprivileged: 1
lxc.cgroup2.devices.allow: c 189:* rwm
lxc.mount.entry: usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_c0e8eeb4b38ded118e7c06f6b86ce6f8-if00-port0 dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_c0e8eeb4b38ded118e7c06f6b86ce6f8-if00-port0 none bind,optional,create=file
lxc.cgroup2.devices.allow: c 188:* rwm
lxc.mount.entry: /dev/ttyUSB0 dev/ttyUSB0 none bind,optional,create=file

lxc.cgroup2.devices.allow and lxc.mount.entry identification

# identify usb pen
lsusb 

# example 
# Bus 001 Device 008: ID 10c4:ea60 Silicon Labs CP210x UART Bridge


#replace with bus and device id
ls -l /dev/bus/usb/001/008

#example result
# crw-rw-r-- 1 root root 189, 7 May 17 15:56 /dev/bus/usb/001/008

# so

#lxc.cgroup2.devices.allow: c 189:* rwm
#lxc.mount.entry: usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_c0e8eeb4b38ded118e7c06f6b86ce6f8-if00-port0 dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_c0e8eeb4b38ded118e7c06f6b86ce6f8-if00-port0 none bind,optional,create=file

ls -l /dev/serial/by-id/
# example result
#lrwxrwxrwx 1 root root 13 May 17 15:56 usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_c0e8eeb4b38ded118e7c06f6b86ce6f8-if00-port0 -> ../../ttyUSB0

ls -l /dev/ttyUSB0
#example result
#crw-rw---- 1 root dialout 188, 0 May 17 15:56 /dev/ttyUSB0

#so

#lxc.cgroup2.devices.allow: c 188:* rwm
#lxc.mount.entry: /dev/ttyUSB0 dev/ttyUSB0 none bind,optional,create=file

OS

# lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 24.04 LTS
Release:        24.04
Codename:       noble

# uname -r
6.8.4-3-pve

logs

# check auto update scripts logs
journalctl -r -t auto-update

Development, Maintenance and Deployment

Using visual studio code, docker, ansible and gitea actions.

Docker context

# create context to homesrv01 docker on development devices
docker context create homesrv01 --docker host=ssh://admin@homesrv01.dev.lan