I tried a bunch, zoneminder, motioneye, frigate, etc., before finally settling in AgentDVR. It offers a fair bit of flexibility via MQTT and "just worked" with my PTZ camera.
You're not a "target" as much as you are "a thing that exists." These aren't targeted attacks.
That said, you can look into adding some additional measures to your webserver if you haven't already, like dropping connections if a client requests a location they shouldn't, like trying to access /admin, /../.., /.env, and so on.
On nginx, it could be something like:
location ^/\.|)/admin|/login {
return 444;
}
Of course, that should be modified to match whatever application you're actually using.
Self hosted from my homelab on an nginx server. I also self host my blog, which has some info on my whole set up. My blog uses some basic bloging software, though, rather than being hand-made.
The "side menu thingy" is achieved through HTML "frames". It's an element of HTML that's pretty much extinct nowadays, but was all the rage when I built my very first page back in the day.
Nice. I wrote mine "by hand", too. No CSS, just raw HTML. I think it's a more personal experience than just using whatever random template some all-in-one web hosting company offers.
A lot of how you set up your system is just going to depend on how you want to set it up.
I run podman (like an improved version of docker) in a single LXC container for applications that are primarily packaged as docker apps. I think I have 4 or 5 applications running on that LXC.
For things that are distributed via apt, git repo, etc, I'll either create a new LXC or use an existing LXC if it's related to other services I'm running. For example, crowdsec is run in the same machine as nginx since those two work together and I'll always want them both running at the same time, so there's no reason to separate them.
I have mariadb running in its own LXC so that it can follow a different (more frequent) backup schedule than the mostly static applications that interact with it.
Anything that needs to interact directly with hardware, like Home Assistant, or I want kernel separation for, will get a full fledge VM instead of a container.
I use podman almost exclusively at this point. I like having the rootless containers and secrets management. If you're on Debian, though, I strongly suggest pulling podman from Trixie. The version in Bookworm is very out of date and there's been a lot of fixes since then.
I use nginx as a reverse proxy with crowdsec. The backends are nginx and mariadb. Everything is running on Debian VMs or LXCs with apparmor profiles and it's all isolated to an "untrusted" VLAN.
It's obviously still "safer" to have someone else host your stuff, like a VPS or Github Pages, etc, but I enjoy selfhosting and I feel like I've mitigated most of the risk.
I'd imagine that if your job is making YouTube videos, portainer and other graphical abstraction layers probably make more visually interesting videos than just watching someone type out a bunch of commands.
I know I'm a bit late to the conversation, so I don't know if this is still helpful... But I have a camera with "AI Detection" built into it and it appears to send alerts via its ONVIF connection. I've disabled motion and other detectors on my NVR (AgentNVR) and instead configured it to just wait for an alert from the camera itself to start recording. It's been working quite well.
My initial plan was to use a coral TPU and frigate, but the Coral/Gasket drivers appear to be pretty old and I couldn't get them to work properly, myself.
Host? As in running services?
Wireguard and the Proxmox Backup Server software itself. Redundancy/failover comes from the server cluster itself, not my backup server.
As far as the backup content, it "hosts" backup images of my VMs and LXCs, plus
/homefrom my laptop in case it ever gets lost or damaged.