Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil.
-
No spam.
-
Posts are to be related to self-hosting.
-
Don't duplicate the full text of your blog or readme if you're providing a link.
-
Submission headline should match the article title.
-
No trolling.
-
Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.
-
AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
view the rest of the comments
Authentik (and other auth systems) are super heavy for single/low-user systems. They're geared for more MSO use than SOHO. For auth, I'd really recommend something lighter, like Pocket-ID (as long as you don't mind passkeys instead of passwords - Seerr and BookOrbit support WebAuthn so you can use it directly, and Jellyfin supports it with an extension for the web interface + you can set password for a Jellyfin account for clients that need direct auth). For any service that doesn't support it, Pocket-ID has an auth gateway/wrapper you can use with your reverse proxy (I use Caddy, config is fairly straightforward).
For security, I'd recommend some automated IDP systems. You could run Suricata on your router (if it can host heavier apps), which is what Ubiquiti uses. It can talk to your firewall and set up rules on the fly to block intrusions, specific users etc.
Beyond that I'd also recommend crowdsec. One half is the detection (you hook it up as part of your reverse proxy, so it can inspect packets and full flows), and the other is the actioning (you hook it up with your router/gateway/firewall to apply blocking rules). Big benefit is that their open database (the free to access one) has all the 0-day fingerprints and CVE-specific behaviour is detected and blocked.
Here's a quick preview of what it's been doing today on my setup:
Since most indirect attackers (people randomly probing your homelab instead of directly targeting you and your services) will come from various data centers (routed through a VPS or directly relying on the infrastructure), a 4h block is generally enough to not interrupt other services while blocking attackers from probing once they hit a limit.
And of course you also need proper container network setups. For example, every single container I can, I run in rootless, read-only mode. This means the container itself can't be edited - only a handful of paths (left as volume mount points) are RW: the config folder, media folders only if the container needs write access to them, and caches. Each path is mounted noexec so even if a backdoor is found into the container, the attacker can't do much as they can't execute anything they'd deliver as payload (can't write to paths that are executable, can't execute from writeable paths), and since the container is rootless, there aren't many tools to run: no ash/bash/zsh/fish, no interactive shell at all, no operating system beyond a barebones Linux kernel and the bare minimum tooling needed for the specific software.
Docker networking is also hardened, with routing strictly limited, and containers only seeing other containers they need access to.
I'd also recommend using LLMs to expand on your security. No I'm not talking about giving Claude access to your entire network and homelab... But you can ask for general hardening guidance, and most frontier models will gladly walk through your stack using basic reporting (you run a command on the homelab nodes, it returns a report, you give that report to the model), and give recommendations on making it more secure.
I installed CrowdSec yesterday and I’m curious as to where that screenshot can be found so I can determine if things are working properly. Where can I find that? I have only a single alert from last night which I think is good, but I am wanting to make sure I have things set up correctly before I can breathe easily.
That screenshot is from ntfy - I hooked up the alerting from crowdsec (and a bunch of other things incl full logs from my servers, docker containers, APs and other network devices) into a tool I call Overseer. It is not yet public, so you can't really get a screenshot like mine.
However, CrowdSec does offer a dashboard of your instance, incl prevented attacks list etc.
Thanks! I use a different app called Overseerr, but I think it’s pretty different than yours. 😂
Appreciate the info. I really want to make sure I didn’t only get half working and need to do more but looking at the crowdsec dashboard I think I’m good? I’ll have to do some more digging. Thanks again.
Great advice all throughout but especially on using LLMs to harden your security. The config it helped me complete for Crowdsec in days would have taken me months otherwise.