Thanks to this community I’ve learned and I’m feeling inspired. I’ve loved having an NAS for the last few years, but it’s woefully under powered for what I’m using it for these days.
So I’ve ordered some basic PC parts, gonna build a basic setup using an old CPU I got lying about and try the NAS OS I saw talked about on here recently.
TrueNAS looks like a good option with only slight fears it’ll go down the well known path to the dark side like so many free options before.
In any event, I’m looking forward to adding Nextcloud and Jellyfin, to trying out Docker and generally having more control over things.
Thanks again to you all for informing and inspiring.
I’ll be back if I get questions!
Use tailscale for host nodes, use tailscale docker container in a compose stack with an app that you sidecar to. That way that app is on your tailnet as if it is its own computer. Use tailscale serve for reverse proxying support of the apps. Then, setup a vps node (I use linodes $5 node) with tailscale and configure that to be your DMZ into your tailnet.
For DMZ, use Caddy, UFW, and fail2ban. Also take advantage of ACLs in the Tailscale admin console to only have the VPS able to route traffic to specific apps you want to expose. My current project is to work in Authelia into this setup so a user logs into one exposed app and is able to traverse to other exposed apps through header / token authentication.
Oh also, segment the tailnet using different authentication keys. Each host node should have its own key, all the apps on a host node should have a shared key, and all public facing clients should have a common shared key. That way in case of compromise you can revoke the affected keys without bringing down your network.