- Add home-assistant.yml stack (port 8123, privileged mode for USB) - External access via https://housekeeping.schweitz.net - Health check using /manifest.json endpoint - Update CONTAINERS.md with service profile - Update stacks/README.md with port allocation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
80 lines
2.0 KiB
YAML
80 lines
2.0 KiB
YAML
version: '3.8'
|
|
|
|
# Home Assistant - Smart Home Automation Platform
|
|
# Port: 8123 (Home Assistant default)
|
|
# GPU: No
|
|
# Storage: SSD (config and database)
|
|
|
|
services:
|
|
home-assistant:
|
|
image: ghcr.io/home-assistant/home-assistant:stable
|
|
container_name: home-assistant
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8123:8123"
|
|
volumes:
|
|
# Config on SSD (includes database, automations, scripts)
|
|
- /home/jpmschweitzer/docker-data/home-assistant/config:/config
|
|
environment:
|
|
- TZ=Europe/Amsterdam
|
|
# Privileged mode for USB device access (Z-Wave, Zigbee dongles)
|
|
privileged: true
|
|
networks:
|
|
- docker-dataplane
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -fSs http://localhost:8123/manifest.json || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 120s
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 1G
|
|
|
|
networks:
|
|
docker-dataplane:
|
|
external: true
|
|
name: docker-dataplane
|
|
|
|
# Setup Instructions:
|
|
# 1. Create config directory:
|
|
# mkdir -p /home/jpmschweitzer/docker-data/home-assistant/config
|
|
#
|
|
# 2. Deploy this stack via Portainer or:
|
|
# docker compose -f home-assistant.yml up -d
|
|
#
|
|
# 3. Wait for initial setup (1-2 minutes)
|
|
#
|
|
# 4. Access web interface: http://localhost:8123
|
|
# or external: https://housekeeping.schweitz.net
|
|
#
|
|
# 5. Complete the onboarding wizard:
|
|
# - Create admin account
|
|
# - Set home location
|
|
# - Configure integrations
|
|
#
|
|
# USB Device Access:
|
|
# Privileged mode is enabled for Z-Wave, Zigbee, or other USB devices.
|
|
# For specific device mapping instead, replace privileged: true with:
|
|
# devices:
|
|
# - /dev/ttyUSB0:/dev/ttyUSB0
|
|
# - /dev/ttyACM0:/dev/ttyACM0
|
|
#
|
|
# NPM Configuration:
|
|
# Domain: housekeeping.schweitz.net
|
|
# Scheme: http
|
|
# Forward Hostname/IP: home-assistant
|
|
# Forward Port: 8123
|
|
# Websockets Support: ENABLED (required for HA)
|
|
# SSL: Let's Encrypt
|
|
#
|
|
# After NPM setup, add to configuration.yaml:
|
|
#
|
|
# http:
|
|
# use_x_forwarded_for: true
|
|
# trusted_proxies:
|
|
# - 172.16.0.0/12
|
|
# - 192.168.0.0/16
|
|
# - 10.0.0.0/8
|