mirror of
https://github.com/Dvorinka/Containr.git
synced 2026-06-03 20:12:58 +00:00
5.6 KiB
5.6 KiB
Home Assistant Template
Overview
Home Assistant is an open source home automation that puts local control and privacy first.
Quick Start
# Create docker-compose.yml with the content below
docker-compose up -d
Docker Compose
version: '3.8'
services:
homeassistant:
image: ghcr.io/home-assistant/home-assistant:stable
container_name: homeassistant
restart: unless-stopped
environment:
- TZ=America/New_York
volumes:
- ./config:/config
- /etc/localtime:/etc/localtime:ro
ports:
- "8123:8123"
privileged: true
network_mode: host
depends_on:
- mqtt
- postgres
networks:
- homeassistant-network
mqtt:
image: eclipse-mosquitto:2.0
container_name: homeassistant-mqtt
restart: unless-stopped
volumes:
- ./mqtt/config:/mosquitto/config
- ./mqtt/data:/mosquitto/data
- ./mqtt/log:/mosquitto/log
ports:
- "1883:1883"
- "9001:9001"
networks:
- homeassistant-network
postgres:
image: postgres:15-alpine
container_name: homeassistant-postgres
restart: unless-stopped
environment:
- POSTGRES_DB=homeassistant
- POSTGRES_USER=homeassistant
- POSTGRES_PASSWORD=homeassistant
volumes:
- homeassistant-db:/var/lib/postgresql/data
networks:
- homeassistant-network
zigbee2mqtt:
image: koenkk/zigbee2mqtt:latest
container_name: zigbee2mqtt
restart: unless-stopped
environment:
- TZ=America/New_York
volumes:
- ./zigbee2mqtt/data:/app/data
- /run/udev:/run/udev:ro
ports:
- "8080:8080"
devices:
- /dev/ttyUSB0:/dev/ttyUSB0
networks:
- homeassistant-network
volumes:
homeassistant-db:
networks:
homeassistant-network:
driver: bridge
Environment Variables
TZ: Timezone (find yours: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
Setup Guide
-
Create Directories:
mkdir -p config mqtt/{config,data,log} zigbee2mqtt/data -
Configure MQTT (
mqtt/config/mosquitto.conf):listener 1883 allow_anonymous false password_file /mosquitto/config/passwd listener 9001 protocol websockets -
Create MQTT Password:
docker exec homeassistant-mqtt mosquitto_passwd -c /mosquitto/config/passwd homeassistant -
Configure Zigbee2MQTT (
zigbee2mqtt/data/configuration.yaml):homeassistant: true permit_join: false mqtt: base_topic: zigbee2mqtt server: mqtt://homeassistant-mqtt:1883 user: homeassistant password: your-mqtt-password serial: port: /dev/ttyUSB0 -
Deploy:
docker-compose up -d -
Access: Open http://localhost:8123
-
Initial Setup:
- Create Home Assistant user account
- Detect devices and integrations
- Configure automations
Configuration Files
Home Assistant (config/configuration.yaml)
homeassistant:
name: Home
latitude: 40.7128
longitude: -74.0060
elevation: 10
unit_system: metric
time_zone: America/New_York
country: US
default_config:
http:
server_port: 8123
mqtt:
broker: homeassistant-mqtt
port: 1883
username: homeassistant
password: your-mqtt-password
recorder:
db_url: postgresql://homeassistant:homeassistant@homeassistant-postgres/homeassistant
logger:
default: info
Device Integration
- Zigbee Devices: Via Zigbee2MQTT
- WiFi Devices: Direct integration
- Z-Wave: Add Z-Wave integration
- Cameras: RTSP/ONVIF support
- Sensors: MQTT/HTTP/USB sensors
Reverse Proxy (Traefik)
# Note: Home Assistant works best with host networking
# If using bridge mode, add these labels:
labels:
- "traefik.enable=true"
- "traefik.http.routers.homeassistant.rule=Host(`home.yourdomain.com`)"
- "traefik.http.routers.homeassistant.tls=true"
- "traefik.http.routers.homeassistant.tls.certresolver=letsencrypt"
- "traefik.http.services.homeassistant.loadbalancer.server.port=8123"
Backup Strategy
# Backup Home Assistant config
tar czf homeassistant-backup.tar.gz config/
# Backup database
docker exec homeassistant-postgres pg_dump -U homeassistant homeassistant > ha-db-backup.sql
# Restore database
docker exec -i homeassistant-postgres psql -U homeassistant homeassistant < ha-db-backup.sql
Performance Optimization
# For systems with limited resources
environment:
- WEBSERVER_THREAD_POOL_SIZE=5
- WEBSERVER_WORKER_TIMEOUT=30
# Resource limits
deploy:
resources:
limits:
memory: 1G
cpus: '1.0'
reservations:
memory: 512M
cpus: '0.5'
Security
- Change default MQTT password
- Use HTTPS in production
- Network access control
- Regular updates
- Monitor access logs
Monitoring
- Logs:
docker-compose logs -f homeassistant - Performance: System monitor integration
- Devices: Device status dashboard
- Automations: Automation execution history
Troubleshooting
- Device discovery: Check network connectivity
- MQTT issues: Verify broker configuration
- Zigbee problems: Check USB device permissions
- Performance: Monitor CPU/memory usage
- Database errors: Check PostgreSQL logs
Hardware Requirements
- CPU: 2 cores minimum, 4 recommended
- RAM: 2GB minimum, 4GB recommended
- Storage: 32GB minimum (SSD recommended)
- Network: Gigabit recommended for multiple devices
Add-ons
- HACS: Home Assistant Community Store
- Configurator: Browser-based configuration editor
- Terminal: SSH terminal in HA
- Samba: File sharing
- VS Code Server: Code editor