From e315e0b17e662aabb7225926c5b69f0f7ce4d896 Mon Sep 17 00:00:00 2001 From: "CanbiZ (MickLesk)" <47820557+MickLesk@users.noreply.github.com> Date: Mon, 23 Feb 2026 12:14:17 +0100 Subject: [PATCH] Frigate v16.4 (#11887) * Update frigate.sh * Add Frigate metadata and overhaul installer Add frontend metadata for Frigate (frontend/public/json/frigate.json), remove the old .bak metadata file, and perform a major refactor of install/frigate-install.sh. The installer now targets Debian 12 (Bookworm), converts APT sources to deb822, installs and builds required dependencies (Python wheels, libusb, OpenVINO, Tempio, Nginx, sqlite extensions), configures hardware acceleration and GPU access, fetches and deploys Frigate and go2rtc releases, and prepares inference/audio models. Systemd service units were improved (dependencies, env file usage, safer log file handling, create_directories service) and services are enabled/started with cleanup steps added. Also updated copyright/authorship and various runtime environment exports and default Frigate config changes (ffmpeg hwaccel, detector selection, disabled auth/detect in default config). * Update frigate.json * frigate: update metadata and installer Update frontend metadata (config path, interface port, and expanded description) and modernize the install script: switch apt-get to apt, streamline dependency list (remove wget/jq/unzip), replace inline hardware-acceleration/GPU group tweaks with setup_hwaccel, pin Frigate release to v0.16.4 for reproducible installs, and fetch/libusb build now uses fetch_and_deploy_gh_release with adjusted paths. Also clean up removed temporary files. * add std --- ct/frigate.sh | 24 +- frontend/public/json/frigate.json | 44 ++++ frontend/public/json/frigate.json.bak | 44 ---- install/frigate-install.sh | 364 +++++++++++++++++--------- 4 files changed, 295 insertions(+), 181 deletions(-) create mode 100644 frontend/public/json/frigate.json delete mode 100644 frontend/public/json/frigate.json.bak diff --git a/ct/frigate.sh b/ct/frigate.sh index 923cf3e3b..fac3a6517 100644 --- a/ct/frigate.sh +++ b/ct/frigate.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 tteck -# Authors: tteck (tteckster) +source <(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVE/raw/branch/main/misc/build.func) +# Copyright (c) 2021-2026 community-scripts ORG +# Authors: MickLesk (CanbiZ) | Co-Author: remz1337 # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # Source: https://frigate.video/ @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-4}" var_ram="${var_ram:-4096}" var_disk="${var_disk:-20}" var_os="${var_os:-debian}" -var_version="${var_version:-11}" +var_version="${var_version:-12}" var_unprivileged="${var_unprivileged:-0}" var_gpu="${var_gpu:-yes}" @@ -21,15 +21,15 @@ color catch_errors function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -f /etc/systemd/system/frigate.service ]]; then - msg_error "No ${APP} Installation Found!" + header_info + check_container_storage + check_container_resources + if [[ ! -f /etc/systemd/system/frigate.service ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + msg_error "To update Frigate, create a new container and transfer your configuration." exit - fi - msg_error "To update Frigate, create a new container and transfer your configuration." - exit } start diff --git a/frontend/public/json/frigate.json b/frontend/public/json/frigate.json new file mode 100644 index 000000000..959072629 --- /dev/null +++ b/frontend/public/json/frigate.json @@ -0,0 +1,44 @@ +{ + "name": "Frigate", + "slug": "frigate", + "categories": [ + 15 + ], + "date_created": "2026-02-13", + "type": "ct", + "updateable": false, + "privileged": false, + "config_path": "/config/config.yml", + "interface_port": 5000, + "documentation": "https://frigate.io/", + "website": "https://frigate.io/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/frigate-light.webp", + "description": "Frigate is a complete and local NVR (Network Video Recorder) with realtime AI object detection for CCTV cameras.", + "install_methods": [ + { + "type": "default", + "script": "ct/frigate.sh", + "resources": { + "cpu": 4, + "ram": 4096, + "hdd": 20, + "os": "Debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "SemanticSearch is not pre-installed due to high resource requirements (8+ cores, 16-24GB RAM, GPU recommended). Manual configuration required if needed.", + "type": "info" + }, + { + "text": "OpenVino detector may fail on older CPUs (pre-Haswell/AVX2). If you encounter 'Illegal instruction' errors, consider using alternative detectors.", + "type": "warning" + } + ] +} diff --git a/frontend/public/json/frigate.json.bak b/frontend/public/json/frigate.json.bak deleted file mode 100644 index 005f25ad7..000000000 --- a/frontend/public/json/frigate.json.bak +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "Frigate", - "slug": "frigate", - "categories": [ - 15 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": true, - "interface_port": 5000, - "documentation": "https://docs.frigate.video/", - "website": "https://frigate.video/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/frigate.webp", - "config_path": "", - "description": "Frigate is an open source NVR built around real-time AI object detection. All processing is performed locally on your own hardware, and your camera feeds never leave your home.", - "install_methods": [ - { - "type": "default", - "script": "ct/frigate.sh", - "resources": { - "cpu": 4, - "ram": 4096, - "hdd": 20, - "os": "debian", - "version": "11" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Discussions (explore more advanced methods): `https://github.com/tteck/Proxmox/discussions/2711`", - "type": "info" - }, - { - "text": "go2rtc Interface port:`1984`", - "type": "info" - } - ] -} diff --git a/install/frigate-install.sh b/install/frigate-install.sh index 8755ad939..c405dd882 100644 --- a/install/frigate-install.sh +++ b/install/frigate-install.sh @@ -1,8 +1,8 @@ #!/usr/bin/env bash -# Copyright (c) 2021-2026 tteck -# Author: tteck (tteckster) -# Co-Author: remz1337 +# Copyright (c) 2021-2026 community-scripts ORG +# Authors: MickLesk (CanbiZ) +# Co-Authors: remz1337 # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # Source: https://frigate.video/ @@ -14,60 +14,221 @@ setting_up_container network_check update_os -msg_info "Installing Dependencies (Patience)" -$STD apt-get install -y {git,ca-certificates,automake,build-essential,xz-utils,libtool,ccache,pkg-config,libgtk-3-dev,libavcodec-dev,libavformat-dev,libswscale-dev,libv4l-dev,libxvidcore-dev,libx264-dev,libjpeg-dev,libpng-dev,libtiff-dev,gfortran,openexr,libatlas-base-dev,libssl-dev,libtbb2,libtbb-dev,libdc1394-22-dev,libopenexr-dev,libgstreamer-plugins-base1.0-dev,libgstreamer1.0-dev,gcc,gfortran,libopenblas-dev,liblapack-dev,libusb-1.0-0-dev,jq,moreutils} +source /etc/os-release +if [[ "$VERSION_ID" != "12" ]]; then + msg_error "Frigate requires Debian 12 (Bookworm) due to Python 3.11 dependencies" + exit 1 +fi + +msg_info "Converting APT sources to DEB822 format" +if [ -f /etc/apt/sources.list ]; then + cat >/etc/apt/sources.list.d/debian.sources <<'EOF' +Types: deb +URIs: http://deb.debian.org/debian +Suites: bookworm +Components: main contrib +Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg + +Types: deb +URIs: http://deb.debian.org/debian +Suites: bookworm-updates +Components: main contrib +Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg + +Types: deb +URIs: http://security.debian.org +Suites: bookworm-security +Components: main contrib +Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg +EOF + mv /etc/apt/sources.list /etc/apt/sources.list.bak + $STD apt update +fi +msg_ok "Converted APT sources" + +msg_info "Installing Dependencies" +$STD apt install -y \ + xz-utils \ + python3 \ + python3-dev \ + python3-pip \ + gcc \ + pkg-config \ + libhdf5-dev \ + build-essential \ + automake \ + libtool \ + ccache \ + libusb-1.0-0-dev \ + apt-transport-https \ + cmake \ + git \ + libgtk-3-dev \ + libavcodec-dev \ + libavformat-dev \ + libswscale-dev \ + libv4l-dev \ + libxvidcore-dev \ + libx264-dev \ + libjpeg-dev \ + libpng-dev \ + libtiff-dev \ + gfortran \ + openexr \ + libssl-dev \ + libtbbmalloc2 \ + libtbb-dev \ + libdc1394-dev \ + libopenexr-dev \ + libgstreamer-plugins-base1.0-dev \ + libgstreamer1.0-dev \ + tclsh \ + libopenblas-dev \ + liblapack-dev \ + make \ + moreutils msg_ok "Installed Dependencies" -msg_info "Setup Python3" -$STD apt-get install -y {python3,python3-dev,python3-setuptools,python3-distutils,python3-pip} -$STD pip install --upgrade pip -msg_ok "Setup Python3" - -NODE_VERSION="22" setup_nodejs - -msg_info "Installing go2rtc" -mkdir -p /usr/local/go2rtc/bin -cd /usr/local/go2rtc/bin -curl -fsSL "https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64" -o "go2rtc" -chmod +x go2rtc -$STD ln -svf /usr/local/go2rtc/bin/go2rtc /usr/local/bin/go2rtc -msg_ok "Installed go2rtc" - setup_hwaccel -msg_info "Installing Frigate v0.14.1 (Perseverance)" -cd ~ -mkdir -p /opt/frigate/models -curl -fsSL "https://github.com/blakeblackshear/frigate/archive/refs/tags/v0.14.1.tar.gz" -o "frigate.tar.gz" -tar -xzf frigate.tar.gz -C /opt/frigate --strip-components 1 -rm -rf frigate.tar.gz -cd /opt/frigate -$STD pip3 wheel --wheel-dir=/wheels -r /opt/frigate/docker/main/requirements-wheels.txt -cp -a /opt/frigate/docker/main/rootfs/. / export TARGETARCH="amd64" -echo 'libc6 libraries/restart-without-asking boolean true' | debconf-set-selections -$STD /opt/frigate/docker/main/install_deps.sh -$STD apt update -$STD ln -svf /usr/lib/btbn-ffmpeg/bin/ffmpeg /usr/local/bin/ffmpeg -$STD ln -svf /usr/lib/btbn-ffmpeg/bin/ffprobe /usr/local/bin/ffprobe +export CCACHE_DIR=/root/.ccache +export CCACHE_MAXSIZE=2G +export APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn +export PIP_BREAK_SYSTEM_PACKAGES=1 +export NVIDIA_VISIBLE_DEVICES=all +export NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" +export TOKENIZERS_PARALLELISM=true +export TRANSFORMERS_NO_ADVISORY_WARNINGS=1 +export OPENCV_FFMPEG_LOGLEVEL=8 +export HAILORT_LOGGER_PATH=NONE + +fetch_and_deploy_gh_release "frigate" "blakeblackshear/frigate" "tarball" "v0.16.4" "/opt/frigate" + +msg_info "Building Nginx" +$STD bash /opt/frigate/docker/main/build_nginx.sh +sed -e '/s6-notifyoncheck/ s/^#*/#/' -i /opt/frigate/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/run +ln -sf /usr/local/nginx/sbin/nginx /usr/local/bin/nginx +msg_ok "Built Nginx" + +msg_info "Building SQLite Extensions" +$STD bash /opt/frigate/docker/main/build_sqlite_vec.sh +msg_ok "Built SQLite Extensions" + +fetch_and_deploy_gh_release "go2rtc" "AlexxIT/go2rtc" "singlefile" "latest" "/usr/local/go2rtc/bin" "go2rtc_linux_amd64" + +msg_info "Installing Tempio" +sed -i 's|/rootfs/usr/local|/usr/local|g' /opt/frigate/docker/main/install_tempio.sh +$STD bash /opt/frigate/docker/main/install_tempio.sh +ln -sf /usr/local/tempio/bin/tempio /usr/local/bin/tempio +msg_ok "Installed Tempio" + +msg_info "Building libUSB" +fetch_and_deploy_gh_release "libusb" "libusb/libusb" "tarball" "v1.0.26" "/opt/libusb" +cd /opt/libusb +$STD ./bootstrap.sh +$STD ./configure CC='ccache gcc' CCX='ccache g++' --disable-udev --enable-shared +$STD make -j "$(nproc)" +cd /opt/libusb/libusb +mkdir -p /usr/local/lib /usr/local/include/libusb-1.0 /usr/local/lib/pkgconfig +$STD bash ../libtool --mode=install /usr/bin/install -c libusb-1.0.la /usr/local/lib +install -c -m 644 libusb.h /usr/local/include/libusb-1.0 +cd /opt/libusb/ +install -c -m 644 libusb-1.0.pc /usr/local/lib/pkgconfig +ldconfig +msg_ok "Built libUSB" + +msg_info "Installing Python Dependencies" +$STD pip3 install -r /opt/frigate/docker/main/requirements.txt +msg_ok "Installed Python Dependencies" + +msg_info "Building Python Wheels (Patience)" +mkdir -p /wheels +sed -i 's|^SQLITE3_VERSION=.*|SQLITE3_VERSION="version-3.46.0"|g' /opt/frigate/docker/main/build_pysqlite3.sh +$STD bash /opt/frigate/docker/main/build_pysqlite3.sh +for i in {1..3}; do + $STD pip3 wheel --wheel-dir=/wheels -r /opt/frigate/docker/main/requirements-wheels.txt --default-timeout=300 --retries=3 && break + [[ $i -lt 3 ]] && sleep 10 +done +msg_ok "Built Python Wheels" + +NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs + +msg_info "Downloading Inference Models" +mkdir -p /models /openvino-model +wget -q -O /edgetpu_model.tflite https://github.com/google-coral/test_data/raw/release-frogfish/ssdlite_mobiledet_coco_qat_postprocess_edgetpu.tflite +wget -q -O /models/cpu_model.tflite https://github.com/google-coral/test_data/raw/release-frogfish/ssdlite_mobiledet_coco_qat_postprocess.tflite +cp /opt/frigate/labelmap.txt /labelmap.txt +msg_ok "Downloaded Inference Models" + +msg_info "Downloading Audio Model" +wget -q -O /tmp/yamnet.tar.gz https://www.kaggle.com/api/v1/models/google/yamnet/tfLite/classification-tflite/1/download +$STD tar xzf /tmp/yamnet.tar.gz -C / +mv /1.tflite /cpu_audio_model.tflite +cp /opt/frigate/audio-labelmap.txt /audio-labelmap.txt +rm -f /tmp/yamnet.tar.gz +msg_ok "Downloaded Audio Model" + +msg_info "Installing HailoRT Runtime" +$STD bash /opt/frigate/docker/main/install_hailort.sh +cp -a /opt/frigate/docker/main/rootfs/. / +sed -i '/^.*unset DEBIAN_FRONTEND.*$/d' /opt/frigate/docker/main/install_deps.sh +echo "libedgetpu1-max libedgetpu/accepted-eula boolean true" | debconf-set-selections +echo "libedgetpu1-max libedgetpu/install-confirm-max boolean true" | debconf-set-selections +$STD bash /opt/frigate/docker/main/install_deps.sh $STD pip3 install -U /wheels/*.whl ldconfig +msg_ok "Installed HailoRT Runtime" + +msg_info "Installing OpenVino" +$STD pip3 install -r /opt/frigate/docker/main/requirements-ov.txt +msg_ok "Installed OpenVino" + +msg_info "Building OpenVino Model" +cd /models +wget -q http://download.tensorflow.org/models/object_detection/ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz +$STD tar -zxf ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz --no-same-owner +if $STD python3 /opt/frigate/docker/main/build_ov_model.py; then + cp /models/ssdlite_mobilenet_v2.xml /openvino-model/ + cp /models/ssdlite_mobilenet_v2.bin /openvino-model/ + wget -q https://github.com/openvinotoolkit/open_model_zoo/raw/master/data/dataset_classes/coco_91cl_bkgr.txt -O /openvino-model/coco_91cl_bkgr.txt + sed -i 's/truck/car/g' /openvino-model/coco_91cl_bkgr.txt + msg_ok "Built OpenVino Model" +else + msg_warn "OpenVino build failed (CPU may not support required instructions). Frigate will use CPU model." +fi + +msg_info "Building Frigate Application (Patience)" +cd /opt/frigate $STD pip3 install -r /opt/frigate/docker/main/requirements-dev.txt -$STD /opt/frigate/.devcontainer/initialize.sh +$STD bash /opt/frigate/.devcontainer/initialize.sh $STD make version cd /opt/frigate/web $STD npm install $STD npm run build cp -r /opt/frigate/web/dist/* /opt/frigate/web/ -cp -r /opt/frigate/config/. /config sed -i '/^s6-svc -O \.$/s/^/#/' /opt/frigate/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/run +msg_ok "Built Frigate Application" + +msg_info "Configuring Frigate" +mkdir -p /config /media/frigate +cp -r /opt/frigate/config/. /config + +curl -fsSL "https://github.com/intel-iot-devkit/sample-videos/raw/master/person-bicycle-car-detection.mp4" -o "/media/frigate/person-bicycle-car-detection.mp4" + +echo "tmpfs /tmp/cache tmpfs defaults 0 0" >>/etc/fstab + +cat </etc/frigate.env +DEFAULT_FFMPEG_VERSION="7.0" +INCLUDED_FFMPEG_VERSIONS="7.0:5.0" +EOF + cat </config/config.yml mqtt: enabled: false cameras: test: ffmpeg: - #hwaccel_args: preset-vaapi inputs: - path: /media/frigate/person-bicycle-car-detection.mp4 input_args: -re -stream_loop -1 -fflags +genpts @@ -78,96 +239,42 @@ cameras: height: 1080 width: 1920 fps: 5 +auth: + enabled: false +detect: + enabled: false EOF -ln -sf /config/config.yml /opt/frigate/config/config.yml -if [[ "$CTTYPE" == "0" ]]; then - sed -i -e 's/^kvm:x:104:$/render:x:104:root,frigate/' -e 's/^render:x:105:root$/kvm:x:105:/' /etc/group -else - sed -i -e 's/^kvm:x:104:$/render:x:104:frigate/' -e 's/^render:x:105:$/kvm:x:105:/' /etc/group -fi -echo "tmpfs /tmp/cache tmpfs defaults 0 0" >>/etc/fstab -msg_ok "Installed Frigate" -if grep -q -o -m1 -E 'avx[^ ]*' /proc/cpuinfo; then - msg_ok "AVX Support Detected" - msg_info "Installing Openvino Object Detection Model (Resilience)" - $STD pip install -r /opt/frigate/docker/main/requirements-ov.txt - cd /opt/frigate/models - export ENABLE_ANALYTICS=NO - $STD /usr/local/bin/omz_downloader --name ssdlite_mobilenet_v2 --num_attempts 2 - $STD /usr/local/bin/omz_converter --name ssdlite_mobilenet_v2 --precision FP16 --mo /usr/local/bin/mo - cd / - cp -r /opt/frigate/models/public/ssdlite_mobilenet_v2 openvino-model - curl -fsSL "https://github.com/openvinotoolkit/open_model_zoo/raw/master/data/dataset_classes/coco_91cl_bkgr.txt" -o "openvino-model/coco_91cl_bkgr.txt" - sed -i 's/truck/car/g' openvino-model/coco_91cl_bkgr.txt +if grep -q -o -m1 -E 'avx[^ ]*|sse4_2' /proc/cpuinfo; then cat <>/config/config.yml +ffmpeg: + hwaccel_args: auto detectors: - ov: + detector01: type: openvino - device: CPU - model: - path: /openvino-model/FP16/ssdlite_mobilenet_v2.xml model: width: 300 height: 300 input_tensor: nhwc input_pixel_format: bgr + path: /openvino-model/ssdlite_mobilenet_v2.xml labelmap_path: /openvino-model/coco_91cl_bkgr.txt EOF - msg_ok "Installed Openvino Object Detection Model" else cat <>/config/config.yml +ffmpeg: + hwaccel_args: auto model: path: /cpu_model.tflite EOF fi - -msg_info "Installing Coral Object Detection Model (Patience)" -cd /opt/frigate -export CCACHE_DIR=/root/.ccache -export CCACHE_MAXSIZE=2G -curl -fsSL "https://github.com/libusb/libusb/archive/v1.0.26.zip" -o "v1.0.26.zip" -$STD unzip v1.0.26.zip -rm v1.0.26.zip -cd libusb-1.0.26 -$STD ./bootstrap.sh -$STD ./configure --disable-udev --enable-shared -$STD make -j $(nproc --all) -cd /opt/frigate/libusb-1.0.26/libusb -mkdir -p /usr/local/lib -$STD /bin/bash ../libtool --mode=install /usr/bin/install -c libusb-1.0.la '/usr/local/lib' -mkdir -p /usr/local/include/libusb-1.0 -$STD /usr/bin/install -c -m 644 libusb.h '/usr/local/include/libusb-1.0' -ldconfig -cd / -curl -fsSL "https://github.com/google-coral/test_data/raw/release-frogfish/ssdlite_mobiledet_coco_qat_postprocess_edgetpu.tflite" -o "edgetpu_model.tflite" -curl -fsSL "https://github.com/google-coral/test_data/raw/release-frogfish/ssdlite_mobiledet_coco_qat_postprocess.tflite" -o "cpu_model.tflite" -cp /opt/frigate/labelmap.txt /labelmap.txt -curl -fsSL "https://www.kaggle.com/api/v1/models/google/yamnet/tfLite/classification-tflite/1/download" -o "yamnet-tflite-classification-tflite-v1.tar.gz" -tar xzf yamnet-tflite-classification-tflite-v1.tar.gz -rm -rf yamnet-tflite-classification-tflite-v1.tar.gz -mv 1.tflite cpu_audio_model.tflite -cp /opt/frigate/audio-labelmap.txt /audio-labelmap.txt -mkdir -p /media/frigate -curl -fsSL "https://github.com/intel-iot-devkit/sample-videos/raw/master/person-bicycle-car-detection.mp4" -o "/media/frigate/person-bicycle-car-detection.mp4" -msg_ok "Installed Coral Object Detection Model" - -msg_info "Building Nginx with Custom Modules" -$STD /opt/frigate/docker/main/build_nginx.sh -sed -e '/s6-notifyoncheck/ s/^#*/#/' -i /opt/frigate/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/run -ln -sf /usr/local/nginx/sbin/nginx /usr/local/bin/nginx -msg_ok "Built Nginx" - -msg_info "Installing Tempio" -sed -i 's|/rootfs/usr/local|/usr/local|g' /opt/frigate/docker/main/install_tempio.sh -$STD /opt/frigate/docker/main/install_tempio.sh -ln -sf /usr/local/tempio/bin/tempio /usr/local/bin/tempio -msg_ok "Installed Tempio" +msg_ok "Configured Frigate" msg_info "Creating Services" cat </etc/systemd/system/create_directories.service [Unit] -Description=Create necessary directories for logs +Description=Create necessary directories for Frigate logs +Before=frigate.service go2rtc.service nginx.service [Service] Type=oneshot @@ -176,13 +283,11 @@ ExecStart=/bin/bash -c '/bin/mkdir -p /dev/shm/logs/{frigate,go2rtc,nginx} && /b [Install] WantedBy=multi-user.target EOF -systemctl enable -q --now create_directories -sleep 3 + cat </etc/systemd/system/go2rtc.service [Unit] -Description=go2rtc service -After=network.target -After=create_directories.service +Description=go2rtc streaming service +After=network.target create_directories.service StartLimitIntervalSec=0 [Service] @@ -190,7 +295,8 @@ Type=simple Restart=always RestartSec=1 User=root -ExecStartPre=+rm /dev/shm/logs/go2rtc/current +EnvironmentFile=/etc/frigate.env +ExecStartPre=+rm -f /dev/shm/logs/go2rtc/current ExecStart=/bin/bash -c "bash /opt/frigate/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/run 2> >(/usr/bin/ts '%%Y-%%m-%%d %%H:%%M:%%.S ' >&2) | /usr/bin/ts '%%Y-%%m-%%d %%H:%%M:%%.S '" StandardOutput=file:/dev/shm/logs/go2rtc/current StandardError=file:/dev/shm/logs/go2rtc/current @@ -198,13 +304,11 @@ StandardError=file:/dev/shm/logs/go2rtc/current [Install] WantedBy=multi-user.target EOF -systemctl enable -q --now go2rtc -sleep 3 + cat </etc/systemd/system/frigate.service [Unit] -Description=Frigate service -After=go2rtc.service -After=create_directories.service +Description=Frigate NVR service +After=go2rtc.service create_directories.service StartLimitIntervalSec=0 [Service] @@ -212,8 +316,8 @@ Type=simple Restart=always RestartSec=1 User=root -# Environment=PLUS_API_KEY= -ExecStartPre=+rm /dev/shm/logs/frigate/current +EnvironmentFile=/etc/frigate.env +ExecStartPre=+rm -f /dev/shm/logs/frigate/current ExecStart=/bin/bash -c "bash /opt/frigate/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/run 2> >(/usr/bin/ts '%%Y-%%m-%%d %%H:%%M:%%.S ' >&2) | /usr/bin/ts '%%Y-%%m-%%d %%H:%%M:%%.S '" StandardOutput=file:/dev/shm/logs/frigate/current StandardError=file:/dev/shm/logs/frigate/current @@ -221,13 +325,11 @@ StandardError=file:/dev/shm/logs/frigate/current [Install] WantedBy=multi-user.target EOF -systemctl enable -q --now frigate -sleep 3 + cat </etc/systemd/system/nginx.service [Unit] -Description=Nginx service -After=frigate.service -After=create_directories.service +Description=Nginx reverse proxy for Frigate +After=frigate.service create_directories.service StartLimitIntervalSec=0 [Service] @@ -235,7 +337,7 @@ Type=simple Restart=always RestartSec=1 User=root -ExecStartPre=+rm /dev/shm/logs/nginx/current +ExecStartPre=+rm -f /dev/shm/logs/nginx/current ExecStart=/bin/bash -c "bash /opt/frigate/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/run 2> >(/usr/bin/ts '%%Y-%%m-%%d %%H:%%M:%%.S ' >&2) | /usr/bin/ts '%%Y-%%m-%%d %%H:%%M:%%.S '" StandardOutput=file:/dev/shm/logs/nginx/current StandardError=file:/dev/shm/logs/nginx/current @@ -243,8 +345,20 @@ StandardError=file:/dev/shm/logs/nginx/current [Install] WantedBy=multi-user.target EOF + +systemctl daemon-reload +systemctl enable -q --now create_directories +sleep 2 +systemctl enable -q --now go2rtc +sleep 2 +systemctl enable -q --now frigate +sleep 2 systemctl enable -q --now nginx -msg_ok "Configured Services" +msg_ok "Created Services" + +msg_info "Cleaning Up" +rm -rf /opt/libusb /wheels /models/*.tar.gz +msg_ok "Cleaned Up" motd_ssh customize