I initially got into the home lab rabbit hole because of my Network-Attached Storage rig, but I’ve since moved on to dedicated virtualization platforms for server experiments. However, my NAS is still an important part of the setup, as it takes care of all my backup, data archival, and file-sharing needs. I also self-host a handful of services inside the NAS, including apps that help manage my smart home devices.

For example, I’ve ditched the third-party companion apps of security cameras and switched to Frigate as my Network Video Recorder tool. Like other self-hosted services, there are plenty of ways to deploy Frigate, and I could easily go down the ol' Docker container route. However, I refuse to host it on anything besides my NAS rig.

Frigate makes NVR management easy

I don't have to invest in a dedicated NVR hub, either

Starting with Frigate itself, my surveillance setup is a mixed bag of IP cameras that I’ve bought during sales over the years. In addition to their clunky and restrictive companion apps, managing my security cameras from different interfaces would be a test of patience. Leaving aside the fact that they’re from different brands, I’d still have to invest in a dedicated NVR device to access centralized management, object detection, motion tracking, and other security features.

But since I already have a custom-built storage server, I can just deploy Frigate on it and save my wallet from the extra costs. Compared to the likes of ZoneMinder, Frigate is light enough to run on mere SBCs, so it works well on my NAS. Frigate also has a pretty sleek UI and includes powerful machine-learning NVR features that can use the GTX 1080 I’ve installed in the NAS.

No more share permissions to deal with

Few things are as aggravating as creating NFS permissions

If you’re wondering why I keep highlighting my NAS as the hosting machine for Frigate, it’s because NVR tools can generate a lot of video footage in a few weeks. Had I tried running it on, say, my Proxmox node (I’ve tried to do this with ZoneMinder in the past), I’d have to slot an extra hard drive just to hoard the footage from all the cameras. And no, I refuse to configure NFS shares to connect the Frigate instance with NFS-based shares may deliver solid performance, but their permissions are a complete nightmare to manage – and I say that as someone who has spent many weekends pulling my hair out trying to troubleshoot authentication errors. SMB shares are much better in that regard, but I often work with unprivileged containers. Sure, it’s possible to mount network volumes to these secure containers using a handful of workarounds.

But considering that the Frigate container will end up saving all the footage to my NAS if I went down the network share route, it’s a lot easier to just deploy the NVR on the storage server and call it a day. Rather than dealing with the scourge of NFS permissions, all I had to do was select a dataset within my preferred storage pool before pairing my Frigate instance with my security cameras.

My Frigate server runs 24/7

Especially since I keep risky experiments away from my NAS

Home labs are experimental by their very nature, and trial-and-error is a normal aspect of tinkering with server projects. Between regular backups and excessive documentation, I have enough ways to recover my home lab if things go wrong. But even if I can restore the main server node after a botched experiment, I’d still have to spend some time waiting for the virtual guests to come back to life. That’s a problem for a security-oriented service like Frigate, which not only helps me manage my self-hosted app stack, but also scans the camera feed for suspicious activity.

Since I’ve got backups scheduled round the clock for server nodes, daily drivers, and family devices, my NAS remains operational all day. I’ve also spared it from wacky experiments, as I don’t want my precious data to become irrecoverable. This makes my NAS the perfect host machine for Frigate, and I don’t have to worry about the surveillance system going offline due to my tinkering shenanigans.

Deploying Frigate is a cakewalk on TrueNAS

I love TrueNAS for multiple reasons, and its solid app store is one of them. Rather than deploying Frigate as a Docker container inside a VM, I’ve used the NVR tool’s app on TrueNAS to deploy it. Better yet, the Frigate image on TrueNAS can be configured using a variety of menu-based settings and toggles instead of long YAML scripts. Combine the lack of reliance on network shares with the simple setup procedure on TrueNAS’ app store, and you can get Frigate up and running even if you don’t have any prior experience with Docker containers.