mirror of
https://github.com/Dvorinka/Containr.git
synced 2026-06-04 20:42:58 +00:00
small fix, don't worry about it
This commit is contained in:
@@ -0,0 +1,247 @@
|
||||
# Home Assistant Template
|
||||
|
||||
## Overview
|
||||
Home Assistant is an open source home automation that puts local control and privacy first.
|
||||
|
||||
## Quick Start
|
||||
```bash
|
||||
# Create docker-compose.yml with the content below
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
## Docker Compose
|
||||
```yaml
|
||||
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
|
||||
1. **Create Directories**:
|
||||
```bash
|
||||
mkdir -p config mqtt/{config,data,log} zigbee2mqtt/data
|
||||
```
|
||||
|
||||
2. **Configure MQTT** (`mqtt/config/mosquitto.conf`):
|
||||
```conf
|
||||
listener 1883
|
||||
allow_anonymous false
|
||||
password_file /mosquitto/config/passwd
|
||||
|
||||
listener 9001
|
||||
protocol websockets
|
||||
```
|
||||
|
||||
3. **Create MQTT Password**:
|
||||
```bash
|
||||
docker exec homeassistant-mqtt mosquitto_passwd -c /mosquitto/config/passwd homeassistant
|
||||
```
|
||||
|
||||
4. **Configure Zigbee2MQTT** (`zigbee2mqtt/data/configuration.yaml`):
|
||||
```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
|
||||
```
|
||||
|
||||
5. **Deploy**:
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
6. **Access**: Open http://localhost:8123
|
||||
|
||||
7. **Initial Setup**:
|
||||
- Create Home Assistant user account
|
||||
- Detect devices and integrations
|
||||
- Configure automations
|
||||
|
||||
## Configuration Files
|
||||
|
||||
### Home Assistant (`config/configuration.yaml`)
|
||||
```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)
|
||||
```yaml
|
||||
# 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
|
||||
```bash
|
||||
# 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
|
||||
```yaml
|
||||
# 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
|
||||
Reference in New Issue
Block a user