169 lines
4.1 KiB
YAML
169 lines
4.1 KiB
YAML
# docker-compose.yaml
|
|
|
|
services:
|
|
frigate:
|
|
container_name: frigate
|
|
image: ghcr.io/blakeblackshear/frigate:0.14.1
|
|
labels:
|
|
autoheal: 'true'
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- mqtt
|
|
- wyze-bridge
|
|
healthcheck:
|
|
test: ls /media/frigate && curl -s -f http://localhost:5000 -o /dev/null
|
|
interval: 60s
|
|
retries: 1
|
|
start_period: 30s
|
|
timeout: 30s
|
|
environment:
|
|
FRIGATE_GARAGE_RTSP_USERNAME: motion
|
|
FRIGATE_GARAGE_RTSP_PASSWORD: ${FRIGATE_GARAGE_RTSP_PASSWORD}
|
|
FRIGATE_FRONT_DOOR_RTSP_USERNAME: motion
|
|
FRIGATE_FRONT_DOOR_RTSP_PASSWORD: ${FRIGATE_FRONT_DOOR_RTSP_PASSWORD}
|
|
FRIGATE_DOORBELL_RTSP_USERNAME: admin
|
|
FRIGATE_DOORBELL_RTSP_PASSWORD: ${FRIGATE_DOORBELL_RTSP_PASSWORD}
|
|
FRIGATE_DRIVEWAY_RTSP_USERNAME: admin
|
|
FRIGATE_DRIVEWAY_RTSP_PASSWORD: ${FRIGATE_DRIVEWAY_RTSP_PASSWORD}
|
|
FRIGATE_BACK_DOOR_RTSP_USERNAME: frigate
|
|
FRIGATE_BACK_DOOR_RTSP_PASSWORD: ${FRIGATE_BACK_DOOR_RTSP_PASSWORD}
|
|
FRIGATE_FAMILY_ROOM_RTSP_USERNAME: frigate
|
|
FRIGATE_FAMILY_ROOM_RTSP_PASSWORD: ${FRIGATE_FAMILY_ROOM_RTSP_PASSWORD}
|
|
shm_size: '150mb'
|
|
devices:
|
|
- /dev/dri:/dev/dri
|
|
volumes:
|
|
- type: volume
|
|
source: config
|
|
target: /config
|
|
- type: volume
|
|
source: media
|
|
target: /media/frigate
|
|
- type: tmpfs
|
|
target: /tmp/cache
|
|
tmpfs:
|
|
size: 1000000000
|
|
- type: bind
|
|
source: /etc/localtime
|
|
target: /etc/localtime
|
|
read_only: true
|
|
networks:
|
|
- frigate
|
|
ports:
|
|
- 127.0.0.1:10000:5000
|
|
- 554:8554
|
|
wyze-bridge:
|
|
container_name: frigate-wyze-bridge
|
|
image: mrlt8/wyze-bridge:2.9.7
|
|
restart: unless-stopped
|
|
environment:
|
|
NET_MODE: LAN
|
|
FILTER_NAMES: Back Yard Cam
|
|
WB_AUTH: 'false'
|
|
WYZE_EMAIL: ${WYZE_EMAIL}
|
|
WYZE_PASSWORD: ${WYZE_PASSWORD}
|
|
API_ID: ${WYZE_API_ID}
|
|
API_KEY: ${WYZE_API_KEY}
|
|
ENABLE_AUDIO: 'true'
|
|
volumes:
|
|
- type: bind
|
|
source: /etc/localtime
|
|
target: /etc/localtime
|
|
read_only: true
|
|
networks:
|
|
- frigate
|
|
notify:
|
|
container_name: frigate-notify
|
|
image: frigate-notify:latest
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- frigate
|
|
- mqtt
|
|
environment:
|
|
REQUESTS_CA_BUNDLE: /etc/ssl/certs/ca-certificates.crt
|
|
volumes:
|
|
- type: bind
|
|
source: /data/certs/homelab_ca.crt
|
|
target: /usr/local/share/ca-certificates/homelab_ca.crt
|
|
read_only: true
|
|
- type: bind
|
|
source: /etc/localtime
|
|
target: /etc/localtime
|
|
read_only: true
|
|
networks:
|
|
- frigate
|
|
webcontrol:
|
|
container_name: frigate-webcontrol
|
|
image: frigate-webcontrol:latest
|
|
labels:
|
|
autoheal: 'true'
|
|
restart: unless-stopped
|
|
depends_on:
|
|
frigate:
|
|
condition: service_healthy
|
|
mqtt:
|
|
condition: service_started
|
|
healthcheck:
|
|
test: curl -s -f http://localhost -o /dev/null
|
|
interval: 60s
|
|
retries: 1
|
|
start_period: 30s
|
|
timeout: 30s
|
|
environment:
|
|
IPGEOLOCATION_API_KEY: ${IPGEOLOCATION_API_KEY}
|
|
FRIGATE_CONFIG_FILE: /frigate_config/config.yaml
|
|
volumes:
|
|
- type: volume
|
|
source: config
|
|
target: /frigate_config
|
|
read_only: true
|
|
- type: bind
|
|
source: /etc/localtime
|
|
target: /etc/localtime
|
|
read_only: true
|
|
networks:
|
|
- frigate
|
|
ports:
|
|
- 127.0.0.1:10001:80
|
|
uptime:
|
|
container_name: frigate-uptime
|
|
image: frigate-uptime:latest
|
|
restart: unless-stopped
|
|
depends_on:
|
|
frigate:
|
|
condition: service_healthy
|
|
volumes:
|
|
- type: bind
|
|
source: /etc/localtime
|
|
target: /etc/localtime
|
|
read_only: true
|
|
networks:
|
|
- frigate
|
|
mqtt:
|
|
container_name: frigate-mqtt
|
|
image: eclipse-mosquitto:2.0.18
|
|
command:
|
|
- mosquitto
|
|
- -c
|
|
- /mosquitto-no-auth.conf
|
|
restart: unless-stopped
|
|
volumes:
|
|
- type: bind
|
|
source: /etc/localtime
|
|
target: /etc/localtime
|
|
read_only: true
|
|
networks:
|
|
- frigate
|
|
|
|
networks:
|
|
frigate:
|
|
name: frigate
|
|
|
|
volumes:
|
|
config:
|
|
name: frigate-config
|
|
external: true
|
|
media:
|
|
name: frigate-media
|
|
external: true
|