Add homeassistant.yaml

This commit is contained in:
2026-07-01 18:57:06 -05:00
parent c852b778a3
commit d4c0483538
+176
View File
@@ -0,0 +1,176 @@
services:
# **************
# homeassistant
# **************
homeassistant:
container_name: homeassistant
image: ghcr.io/home-assistant/home-assistant:stable
restart: unless-stopped
# Use Host network mode - allows access to local network devices and services directly; no ports or networks in host mode
# Home Assistant relies heavily on network discovery protocols (mDNS, SSDP, Bluetooth, Zigbee over IP, etc.) that don't work reliably through Docker's NAT bridge
# Without host networking, devices on your LAN may fail to be discovered automatically
network_mode: host
privileged: false
# Bluetooth, USB and any other devices must be mapped as volumes or devices for the host hardware
# Directly map any devices this container needs access to (zigbee, etc)
devices:
- /dev/ttyUSB0:/dev/ttyUSB0
# NOTE: Home Assistant requires root inside the container and doesn't support running as an arbitrary non-root user
cap_drop:
- ALL # Drop all Linux capabilities...
cap_add: # ...add back only what's needed
- NET_BIND_SERVICE # Bind to ports below 1024
- NET_RAW # Needed for ping/presence detection
- NET_ADMIN # Needed for Bluetooth
security_opt:
- apparmor=unconfined # Needed for Bluetooth
volumes:
- /srv/docker/home/homeassistant:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro # Needed for bluetooth functionality
environment:
TZ: America/Chicago
labels:
- homepage.group=Home
- homepage.name=Homeassistant
- homepage.icon=homeassistant.png
- homepage.href=${HA_URL}
- homepage.description=Local git server
- homepage.widget.type=homeassistant
- homepage.widget.url=${HA_URL}
- homepage.widget.key=${HA_TOKEN}
- homepage.widget.fields=["people_home", "lights_on", "switches_on"]
- dockhand.url=${HA_URL}
- rackpeek.tags=homeassistant
# **************
# ha-mcp
# ***************
# https://github.com/homeassistant-ai/ha-mcp/blob/master/docker-compose.yml
# Connect your MCP client to the ha-mcp container
ha-mcp:
image: ghcr.io/homeassistant-ai/ha-mcp:latest
container_name: ha-mcp-server
restart: unless-stopped
#network_mode: host
command: ha-mcp-web
ports:
- "8076:8086"
env_file:
- stack.env
networks:
- ollama-net
environment:
- HOMEASSISTANT_URL=${HA_IP}
- HOMEASSISTANT_TOKEN=${HA_TOKEN}
- BACKUP_HINT=normal # Optional: Configure backup hint behavior
- HAMCP_ENABLE_FILESYSTEM_TOOLS=true
- ENABLE_YAML_CONFIG_EDITING=true
- HAMCP_ENABLE_CUSTOM_COMPONENT_INTEGRATION=true
read_only: true
tmpfs:
- /tmp
cap_drop:
- ALL
security_opt:
- no-new-privileges:true
deploy:
resources:
limits:
memory: 256M
labels:
# homepage labels used by rackpeek
- homepage.group=AI
- homepage.name=HA-MCP
- homepage.icon=mcp.png
- homepage.href=${HA_IP}/mcp
- homepage.description=MCP Server for Homeassistant
- dockhand.url=${HA_IP}/mcp
- rackpeek.tags=ai
# ***********************
# music-assistant
# ***********************
music-assistant:
container_name: music-assistant
image: ghcr.io/music-assistant/server:latest
restart: unless-stopped
network_mode: host
volumes:
- /srv/docker/home/ha-addons/music-assistant:/data
environment:
- TZ=America/Chicago
privileged: false
cap_add:
- SYS_ADMIN
- DAC_READ_SEARCH
labels:
# homepage labels used by rackpeek
- homepage.group=Entertainment
- homepage.name=Music Assistant
- homepage.icon=music-assistant-light.png
- homepage.href=${MA_URL}
- homepage.description=Music Assistant for Homeassistant
- dockhand.url=${MA_URL}
- rackpeek.tags=entertainment
# ***********************
# code-server
# ***********************
code-server:
container_name: code-server
image: lscr.io/linuxserver/code-server:latest
restart: unless-stopped
network_mode: host
env_file:
- stack.env
environment:
- TZ=America/Chicago
- PUID=1001 # docker user
- PGID=1001 # docker group
- PASSWORD=${CODESERVER_PWD} # or use HASHED_PASSWORD
- DEFAULT_WORKSPACE=/config
volumes:
- /srv/docker/home/ha-addons/code-server:/config
- /srv/docker/home/homeassistant:/config/workspace/homeassistant
#connect any other volumes you wish to be able to access i.e. esphome, nodered, etc
privileged: false
labels:
# homepage labels used by rackpeek
- homepage.group=Development
- homepage.name=Code Server
- homepage.icon=code-server.png
- homepage.href=${CODESERVER_URL}
- homepage.description=Code Server for Homeassistant
- dockhand.url=${CODESERVER_URL}
- rackpeek.tags=development
# ***********************
# ESPHOME
# ***********************
esphome:
container_name: esphome
image: ghcr.io/esphome/esphome:latest
restart: unless-stopped
network_mode: host
environment:
- TZ=America/Chicago
privileged: false
cap_add:
- NET_ADMIN
- NET_RAW
volumes:
- /srv/docker/home/ha-addons/esphome:/config
- /etc/localtime:/etc/localtime:ro
labels:
# homepage labels used by rackpeek
- homepage.group=Development
- homepage.name=ESPHome
- homepage.icon=esphome.png
- homepage.href=${ESPHOME_URL}
- homepage.description=Create custom sensors for Homeassistant
- dockhand.url=${ESPHOME_URL}
- rackpeek.tags=development
networks:
ollama-net:
external: true