# 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} FRIGATE_OFFICE_RTSP_USERNAME: frigate FRIGATE_OFFICE_RTSP_PASSWORD: ${FRIGATE_OFFICE_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