Home servers for cctv, backup, home assist etc

Soldato
Joined
30 Jan 2007
Posts
15,480
Location
PA, USA (Orig UK)
So I will be moving into a new home soon, and I want to have a lowish power home server setup for offline surveillance/cctv of my property via POE. Finally have some for of backup solution for my homes devices. A start into using something like Home Assist. Also, possibly to have some web server for my VERY small business and finally after decades get my own domain name/email etc.

I am being a little geeky over using something like Lenovo mini PCs clustered, but I am not sure if these could meet all of these scenarios? Possibly need some clustered and some dedicated ?

I also am not sure which software/OS's to use yet.

I would prefer not having to rely on something like Docker that required a subscription, but would be OK with 'reasonable' one time costs if some some software was worthwhile over open source. (I am also happy to donate to open source projects, I just don't want ever increasing costs like Docker seems to be shafting people with lately.)
 
Last edited:
( I'll prefix this by saying I am by no means a sysadmin person - but I'll add some comments from my experiences )

I have a few PoE Reolink cameras at my house. Plug them in to the switch, quick couple of settings changes, and they've been very reliable. I've found the easiest way to view them remotely live is actually through the ReoLink app ... but thats live only doesn't have a function of reviewing previous footage. For saving the footage, in terms of free software, I've always seemed to fall back to Zoneminder. I've tried others, but ZM I just seem to get on with best. I have it to save all the footage from the cameras ( 4fps ), and timestamp where it detects movement. Its easy then to go back and sort the footage by movement amount, and check something if needed.

A common CCTV alternative put forward by others is Frigate ... which seems to heavily rely on a coral.ai add in card. Its not something I've tried personally.

That leads onto the system/OS thoughts. Ordinarily I would suggest Unraid as a great base to build a system around. Its very easy to use it to create and manage storage, cctv, webservers in quite a silo-ed way. ( i.e. messing around with a ZM docker install wouldn't mess around with a webserver, or storage pool etc etc ). My only hang up these days for someone starting from scratch would by the price of unraid. Whilst my purchase of a license as a one-off has been well worth it, I'm less sure about that now with the newer pricing teirs and an annual semi-subscription amount.

Over time, I've had:
  • Ubuntu server configured to run ZFS file shares to perform NAS duties, and ZM running directly on the server too.
    I liked this setup, which felt quite responsive, but I felt I was in the terminal a lot configuring it.

  • Unraid on the same machine to replace ubuntu, which then ran the fileshares as well as ZM in a docker.
    By far the easiest method of creating fileshares. CCTV via a docker took a bit of faffing. If anything I felt this wasn't quite as snappy ubuntu server.

  • Due to the server hardware failing, I ended up splitting roles. Now I have Unraid on one machine for file shares, and the CCTV running on a Lenovo Tiny which is running Ubuntu server.
    To be fair to the Lenovo Tiny, its been rock solid and ZM feels much snappier to use.

Before getting Unraid, I did strongly also consider TrueNAS as the OS to run my server on ... but I couldn't find much information on cctv running on TrueNAS where as I could for Unraid.


As for website / domain name ... personally, if I really wanted that, I would pay a monthly fee to have it on someone elses network. Hosting exposes the machine to the world, and unless you're on top of it all the time, the bots out there are ... I'd leave it to be someone elses problem personally ... or set aside a machine which not could afford to lose / go down so to speak.
 
A single mini PC with probably 32gb of RAM running Proxmox should do fine for most of your requirements. The beauty as well is that if you do need to deploy more VMs/containers you can just set up another Proxmox host and cluster them.

Most of the stuff you're hinting at deploying can be done with LXC so are fairly lightweight. Lots of good guides on deploying these sorts of stuff online.
 
I don't mind having separate dedicated boxes. I was just trying to plan for failed equipment, and better load sharing.

Backup: I don't need media services, only backup of files that want to be shared or long term saved safely. (Photos/videos/documents).

CCTV: I don't currently need AI, but would want a rolling few weeks of video to be saved, in case anything happens. Maybe add AI later to store key events. I used to live in a townhouse where movement was setting off our blink cameras all the time, but here it is almost 2 acres enclosed. I don't mind recording 24/7.

Firewall etc: should probably implement pfsense or similar. I do have a buddy to potentially help with that setup though.
 
Last edited:
I use Zoneminder. It was one of the free options when I first started looking and I’ve stuck with it.

it gets a bit of flack from people and there are definitely other options out there that offer more features … but for me once setup, I’ve found it reliable enough as a means to simply store the footage and review if necessary.
 
I use Zoneminder. It was one of the free options when I first started looking and I’ve stuck with it.

it gets a bit of flack from people and there are definitely other options out there that offer more features … but for me once setup, I’ve found it reliable enough as a means to simply store the footage and review if necessary.
I don't need complexity. I just want simple and reliable recording. I can always swap to something better later.
 
I would prefer not having to rely on something like Docker that required a subscription, but would be OK with 'reasonable' one time costs if some some software was worthwhile over open source. (I am also happy to donate to open source projects, I just don't want ever increasing costs like Docker seems to be shafting people with lately.)
What are you doing that you think you would need a Docker subscription for? The free versions of Docker desktop and associated access to the hub are absolutely fine for the kind of home-use scenarios that you are talking about. You'd only need a subscription if you are planning on doing more than 200 image pulls per 6 hours (800/day) - but even if you are there are ways to mitigate this (e.g. a registry mirror like Harbor).

There are also alternatives like Podman which are perfectly good Docker replacements and free.
 
What are you doing that you think you would need a Docker subscription for? The free versions of Docker desktop and associated access to the hub are absolutely fine for the kind of home-use scenarios that you are talking about. You'd only need a subscription if you are planning on doing more than 200 image pulls per 6 hours (800/day) - but even if you are there are ways to mitigate this (e.g. a registry mirror like Harbor).

There are also alternatives like Podman which are perfectly good Docker replacements and free.
I had assumed that I needed a subscription to use Docker. I was looking at Docker for clustering, really just for low power mini-PC's and being geeky about it all.

Also, good info, thank you for that :)
 
Last edited:
I had assumed that I needed a subscription to use Docker. I was looking at Docker for clustering, really just for low power mini-PC's and being geeky about it all.

Also, good info, thank you for that :)
Docker Swarm is the clustered version of standalone Docker and it's also free. It's pretty rubbish though. Kubernetes is the de facto standard for clustered containerised workloads but the learning curve can be pretty steep, albeit very rewarding when you get reasonably good at it.
 
Docker Swarm is the clustered version of standalone Docker and it's also free. It's pretty rubbish though. Kubernetes is the de facto standard for clustered containerised workloads but the learning curve can be pretty steep, albeit very rewarding when you get reasonably good at it.
we use kubernetes at work, but it's enterprise level, and I'm a dev, so don't do those installations of kubernetes itself.
 
A single mini PC with probably 32gb of RAM running Proxmox should do fine for most of your requirements. The beauty as well is that if you do need to deploy more VMs/containers you can just set up another Proxmox host and cluster them.

Most of the stuff you're hinting at deploying can be done with LXC so are fairly lightweight. Lots of good guides on deploying these sorts of stuff online.

This is exactly what I have, a Lenovo mini pc - pretty old one actually - with an i7 & 48GB RAM.

Running proxmox, with a mix of VMs and LXCs for Frigate (I've installed a mini pcie coral TPU), adguard, home assistant, Octoprint and a few Linux GSM game servers, along with Proxmox Backup Server saving to a USB SSD.

No issues with performance, low power, and takes up barely any space
 
This is exactly what I have, a Lenovo mini pc - pretty old one actually - with an i7 & 48GB RAM.

Running proxmox, with a mix of VMs and LXCs for Frigate (I've installed a mini pcie coral TPU), adguard, home assistant, Octoprint and a few Linux GSM game servers, along with Proxmox Backup Server saving to a USB SSD.

No issues with performance, low power, and takes up barely any space
Any chance of a slightly deeper dive on your setup? I’ve got a mini PC which is a 7th gen i5 + 32GB RAM that I’m going to set up as a Proxmox host over the weekend. I already have another mini PC running Debian and a variety of Docker containers including AdGuard Home, Paperless, Minecraft servers etc, plus a very old Pi running a single AdGuard Home container in Docker. I’d like to bin off the Pi and run the second AGH instance somewhere else but looking for inspiration of how I could set things up or what else I could run :D
 
Any chance of a slightly deeper dive on your setup? I’ve got a mini PC which is a 7th gen i5 + 32GB RAM that I’m going to set up as a Proxmox host over the weekend. I already have another mini PC running Debian and a variety of Docker containers including AdGuard Home, Paperless, Minecraft servers etc, plus a very old Pi running a single AdGuard Home container in Docker. I’d like to bin off the Pi and run the second AGH instance somewhere else but looking for inspiration of how I could set things up or what else I could run :D

Sure, it's been kind of cobbled together based on a very rudimentary understanding of Linux and following various online guides and walkthroughs, so probably not the most optimal setup, but it works for me :)

It's a Lenovo M910q:
  • i7-7700T (which I believe is the fastest low TDP socket 1151 chip)
  • 16gb + 32GB RAM sticks (came with the 16GB, managed to snag a cheap 32GB - still keeping an eye out for a second!)
  • 1TB Crucial P3 Plus NVMe as the main drive
  • 1TB Teamgroup GX2 SSD purely for Frigate recordings
  • 240GB SSD (the one which came with the PC) connected via a USB -> SATA adapter purely for backup storage
  • Coral Google Mini PCIe M.2 Accelerator A/E Development Kit (Part No. G650-04527-01) (~£20 from RS online)
I've got LXCs set up for:
  • Frigate (in Docker)
  • AdGuard
  • Valheim dedicated server (in LinuxGSM)
  • Satisfactory dedicated server (in LinuxGSM)
Plus a couple of templates created so I can quickly deploy LXCs for
I've also got VMs set up for
  • HAOS (Home Assistant)
  • Octoprint
  • PBS (Proxmox Backup Server)
======

Frigate runs really well - apparently it's not advised to run as an LXC, but my inference speed is 6.46ms, which (if my calculations are right!) gives me the capacity to run ~142fps, e.g. 10 cameras at 14fps, 5 at 30fps, etc. I'm only running 4 cameras, so plenty of headroom.

I do seem to remember the setup being a bit of a pain - in particular getting it to see the Coral TPU (needing to find the right config to pass it through both Proxmox and Docker). I do have some rough notes and links to various guides I can PM you if you want.

======

I have a daily backup task set to run in PBS which saves to the 240GB SSD - it backs up the LXCs/VMs/templates, but not Proxmox itself, or the Frigate recordings.

This isn't the the ideal way to set it up, as while restoring individual VMs/containers is easy enough, in the case of a total system/drive failure, I'd first have to re-install Proxmox, then create a new VM for PBS, before being able to access the backups, but there's nothing on there which is production/time critical, so the risk/delay isn't a huge issue. I have considered grabbing a RPi to install it on instead, but that's a project for another day :)

The 240GB drive doesn't sound big enough at first, but PBS is doing an excellent job of deduplication. I have a total of 847 backups across the 9 systems, and so far it's only taking ~94GB, with a deduplication factor of 111.38! Looking at the dashboard, it reckons I have another 130 days worth of space left (at which point it can safely start overwriting the oldest ones :))

=======

For AdGuard, I also have a backup running on a Pi Zero 2W - this is just on Wifi, so literally only the Pi, micro SD and power supply needed, and it can go anywhere with a power socket as long as it's in range of the wifi.

This is set up using KeepAlived - with the primary as the LXC, and the Pi as a failover.

It's obviously not going to be as fast as the main one, but I've had it failover before (managed to knock the network lead out of the server while moving some stuff around), and it was seamless - didn't even realise it was down until I noticed I couldn't control the lights through HA.

========

At the moment, it's all a nest of wires on the floor - in the process of redecorating at which point it's going to all be wall mounted and tucked out of the way!
 
Sure, it's been kind of cobbled together based on a very rudimentary understanding of Linux and following various online guides and walkthroughs, so probably not the most optimal setup, but it works for me :)

Thanks for this. I need to do a bit more reading to get my head around when I'd use LXC vs Docker in a VM, but this is a good inspiration!
 
Back
Top Bottom