Add homeassistant.yaml
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user