-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose-for-heavymetal-frigate.yml
159 lines (155 loc) · 6.67 KB
/
docker-compose-for-heavymetal-frigate.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
version: "3.9"
name: frigate
networks:
networks_vlan_80:
external: true
networks_traefik_proxy:
external: true
services:
frigate:
container_name: frigate
# privileged: true # this may not be necessary for all setups
restart: unless-stopped
image: ghcr.io/blakeblackshear/frigate:${FRIGATE_IMAGE_TAG:-stable}
# image: ghcr.io/harakas/frigate:latest-rocm
# privileged: true
shm_size: "256mb" # update for your cameras based on calculation above
deploy:
resources:
limits:
memory: 4G
reservations:
memory: 3G
# user: ${UID}:${GID}
group_add:
- "${RENDER_GROUP_ID}" # Change this to match your "render" host group id (getent group render)
- "${VIDEO_GROUP_ID}" # Change this to match your "video" host group id (getent group video)
devices:
# - /dev/bus/usb:/dev/bus/usb # passes the USB Coral, needs to be modified for other versions
# - /dev/apex_0:/dev/apex_0 # passes a PCIe Coral, follow driver instructions here https://coral.ai/docs/m2/get-started/#2a-on-linux
- /dev/dri # direct rendering interface (DRI) devices for each GPU. <node> is a number for each card in the system starting from 128.
- /dev/kfd # the main compute interface shared by all GPUs.
security_opt:
- seccomp:unconfined
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ${APPDATA}/frigate:/config
- ${CAMERA_STORAGE}/frigate:/media/frigate
- type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
target: /tmp/cache
tmpfs:
size: 536870912
networks:
networks_vlan_80:
ipv4_address: ${FRIGATE_METAL_IP_ADDRESS}
networks_traefik_proxy:
dns:
- ${METAL_DNS_IP_ADDRESS}
# ports:
# - "5000:5000"
# - "8554:8554" # RTSP feeds
# - "8555:8555/tcp" # WebRTC over tcp
# - "8555:8555/udp" # WebRTC over udp
environment:
FRIGATE_RTSP_PASSWORD: ${CAMERA_RTSP_PASSWORD}
FRIGATE_RTSP_USER: ${CAMERA_RTSP_USER}
FRIGATE_MQTT_USER: ${FRIGATE_MQTT_USER}
FRIGATE_MQTT_PASSWORD: ${FRIGATE_MQTT_PASSWORD}
TZ: ${TZ}
NVIDIA_VISIBLE_DEVICES: void
LIBVA_DRIVER_NAME: radeonsi
HSA_OVERRIDE_GFX_VERSION: ${HSA_OVERRIDE_GFX_VERSION}
DOWNLOAD_YOLOV8: ${DOWNLOAD_YOLOV8}
I_PROMISE_I_WONT_MAKE_AN_ISSUE_ON_GITHUB: somevalue
HSA_ENABLE_SDMA: 0
labels:
# - traefik.http.routers.frigate.middlewares=quantum_things-ipallowlist
traefik.enable: true
traefik.http.routers.frigate.rule: Host(`recorder.${DOMAIN}`)
traefik.http.routers.frigate.tls.certresolver: certificato
traefik.http.routers.frigate.entrypoints: web,web-secure
traefik.http.services.frigate.loadbalancer.server.port: 5000
traefik.http.routers.frigate.service: frigate
traefik.tcp.routers.frigate-tcp.rule: HostSNI(`*`)
traefik.tcp.routers.frigate-tcp.entrypoints: rtsp
traefik.tcp.routers.frigate-tcp.service: frigate-tcp
traefik.tcp.services.frigate-tcp.loadbalancer.server.port: 8554
traefik.tcp.routers.frigate-webrtc.rule: HostSNI(`*`)
traefik.tcp.routers.frigate-webrtc.entrypoints: webrtc
traefik.tcp.routers.frigate-webrtc.service: frigate-webrtc
traefik.tcp.services.frigate-webrtc.loadbalancer.server.port: 8555
traefik.http.routers.frigate-go2rtc.rule: Host(`go2rtc.${DOMAIN}`)
traefik.http.routers.frigate-go2rtc.tls.certresolver: certificato
traefik.http.routers.frigate-go2rtc.entrypoints: web,web-secure
traefik.http.routers.frigate-go2rtc.service: frigate-go2rtc
traefik.http.services.frigate-go2rtc.loadbalancer.server.port: 1984
homepage.group: HeavyMetal
homepage.name: Frigate
homepage.weight: 1999
homepage.icon: frigate.png
homepage.href: https://recorder.${DOMAIN}/
homepage.description: Frigate
homepage.widget.type: frigate
homepage.widget.url: https://recorder.${DOMAIN}
# homepage.widget.enableRecentEvents: false
# healthcheck:
# test: curl -sSf 'http://localhost:5000/api/health' | grep '"success":true' || exit 1
# interval: 10s
# timeout: 5s
# retries: 10
# frigate-public:
# container_name: frigate-public
# # privileged: true # this may not be necessary for all setups
# restart: unless-stopped
# image: ghcr.io/blakeblackshear/frigate:${FRIGATE_IMAGE_TAG:-stable}
# shm_size: "256mb" # update for your cameras based on calculation above
# deploy:
# resources:
# limits:
# memory: 2G
# reservations:
# memory: 1G
# # user: ${UID}:${GID}
# group_add:
# - "${RENDER_GROUP_ID}" # Change this to match your "render" host group id (getent group render)
# - "${VIDEO_GROUP_ID}" # Change this to match your "video" host group id (getent group video)
# devices:
# # - /dev/bus/usb:/dev/bus/usb # passes the USB Coral, needs to be modified for other versions
# # - /dev/apex_0:/dev/apex_0 # passes a PCIe Coral, follow driver instructions here https://coral.ai/docs/m2/get-started/#2a-on-linux
# - /dev/dri # direct rendering interface (DRI) devices for each GPU. <node> is a number for each card in the system starting from 128.
# - /dev/kfd # the main compute interface shared by all GPUs.
# security_opt:
# - seccomp:unconfined
# volumes:
# - /etc/localtime:/etc/localtime:ro
# - /etc/timezone:/etc/timezone:ro
# - ${APPDATA}/frigate-public:/config
# # - ${CAMERA_STORAGE}/frigate:/media/frigate
# - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
# target: /tmp/cache
# tmpfs:
# size: 536870912
# networks:
# networks_traefik_proxy:
# networks_vlan_20:
# dns:
# - ${THINGS_DNS_IP_ADDRESS}
# environment:
# FRIGATE_RTSP_PASSWORD: ${CAMERA_RTSP_PASSWORD}
# FRIGATE_RTSP_USER: ${CAMERA_RTSP_USER}
# TZ: ${TZ}
# NVIDIA_VISIBLE_DEVICES: void
# LIBVA_DRIVER_NAME: radeonsi
# HSA_OVERRIDE_GFX_VERSION: ${HSA_OVERRIDE_GFX_VERSION}
# DOWNLOAD_YOLOV8: ${DOWNLOAD_YOLOV8}
# I_PROMISE_I_WONT_MAKE_AN_ISSUE_ON_GITHUB: somevalue
# HSA_ENABLE_SDMA: 0
# labels:
# - traefik.enable=true
# - traefik.http.routers.frigate-public.rule=Host(`publiccam.${DOMAIN}`)
# - traefik.http.routers.frigate-public.tls.certresolver=certificato
# - traefik.http.routers.frigate-public.entrypoints=web,web-secure
# - traefik.http.routers.frigate-public.middlewares=quantum_things-ipallowlist
# - traefik.http.services.frigate-public.loadbalancer.server.port=5000
# - traefik.docker.network=networks_traefik_proxy