frigate/conf/docker-compose.yaml

164 lines
4.0 KiB
YAML

# docker-compose.yaml
services:
frigate:
container_name: frigate
image: ghcr.io/blakeblackshear/frigate:0.12.0
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
wyze-bridge:
container_name: frigate-wyze-bridge
image: mrlt8/wyze-bridge:2.4.0
restart: unless-stopped
environment:
NET_MODE: LAN
FILTER_NAMES: Back Yard Cam
WYZE_EMAIL: ${WYZE_EMAIL}
WYZE_PASSWORD: ${WYZE_PASSWORD}
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