I’m not great with Docker or networking, so when I picked up an n100 mini pc for self hosting I installed Ubuntu and Tipi to get started.
I used Tipi to install Immich and forwarded my ports, then setup cloudflare tunneling to expose it to the internet. Currently I’m migrating from Google Photos.
But since I’m new to this I’m worried about exposing Immich to the internet without really knowing what I’m doing. Any suggestions on ways to monitor my setup to make sure nothing goes wrong or gets hacked? Ideally any application suggestions would come from the Tipi app store but I’m willing to learn if there’s no other option. Thanks!
Ayy, nice work getting started down the selfhosting route! Start by remembering that security is a maturity process. To find out if you’re doing the right things at the right time, ask yourself:
- Do I know it needs to be done
- Have I done enough (this day, week, etc)
- Do I have it to give
If you’re just one person and it’s a self-hosted home setup, remember you can’t patch all the things all at once. Asking yourself regularly if you maturing your environment over time is essential. Do a little work each week and you’ll make good progress.
When I think of security, I think of a few things
Authentication & Access - each system should have just enough accounts with just enough permissions to get work done. Change default passwords. Make them long and unique. Use MFA whenever possible (often impractical for self-hosted; cut yourself slack when this is the case!). A note on logging - if you can, while you’re doing this homework, check how long it saves logs. Shoot for keeping logs longer if possible; I like 30 days, but you might want more. Also make sure you have a time server, or at least that you’re getting accurate time stamps. If something weird happens and you’re investigating, having timestamps on logs that line up and make sense helps you recreate what happened, so you can decide if you need to wipe something and reload it.
Patching - automated scanning of your stuff for vulns would be fantastic if you’re interested in going that route, but a Saturday morning checklist to run updates on everything works too.
Attack Surface Management - if you’re not sure you’re exposed, scanning externally can be a big help. I have a Racknerd server ($40/yr, it’s amazing) in San Diego and I periodically run scans of my home network to see what’s forwarded. This is using nmap, although I could also use a free version of Nessus Essentials on there. This gives me an idea of what I look like from outside my network.
Inventory - do you know what you have, and what’s it doing? Even a pencil drawing of your network, IP addresses, and services they have can come in super handy. While big orgs have an index of critical data and where it’s stored, just knowing what containers are running on which VM or physical box can help if stuff goes sideways. I redraw mine periodically, yes it’s hand drawn because it’s fast and does the job lol. Do what works for you, though, to keep an inventory of your stuff. You need to know what you have, what it does, and where it’s supposed to be going.