6086ed3cc0
AI-powered video alert service that bridges Frigate NVR events to Matrix. Listens to MQTT, uses Claude Haiku vision to analyze snapshots, and posts annotated alerts to a Matrix room. - app/main.py: MQTT subscriber and event orchestration loop - app/vision.py: Claude Haiku vision analysis wrapper - app/matrix_client.py: Matrix HTTP client for sending messages/images - app/requirements.txt: Python dependencies - Dockerfile: container image build definition - docker-compose.yml: deployment configuration (host network, NAS mounts) - .env.example: required environment variable template (copy to .env)
31 lines
828 B
YAML
Executable File
31 lines
828 B
YAML
Executable File
services:
|
|
frigate-notify:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
container_name: frigate-notify
|
|
restart: unless-stopped
|
|
network_mode: host
|
|
environment:
|
|
- TZ=America/Chicago
|
|
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
|
|
- MATRIX_ACCESS_TOKEN=${MATRIX_ACCESS_TOKEN}
|
|
- MATRIX_ROOM_ID=${MATRIX_ROOM_ID}
|
|
- FRIGATE_URL=http://192.168.86.192:5000
|
|
- MQTT_HOST=192.168.86.192
|
|
- MQTT_PORT=1883
|
|
- MATRIX_HOMESERVER=http://192.168.86.192:8008
|
|
mem_limit: 256M
|
|
memswap_limit: 256M
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -sf http://localhost:5199/health || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "3"
|