Do you have any advice or suggestions about it?
- Hardware (what should be enough for a local PC, or VPS…)
- Software (OS [Debian, Yunohost, other…], “containerization” (Docker, virtual machines?), dashboard, management, backups, VPN tunneling…)
- “Utilities” to host (Lemmy, Peertube, Matrix, Mastodon, Actual Budget, Jellyfin, Forgejo, Invidious/Piped, local Pi-Hole, email, dedicated videogame servers like for Minecraft, SearXNG, personal file storage like Drive, AI [in the future, when I can afford a rig that can run a local model decently]…)
I’m aware it’s a lot of stuff to take on, so, do you have any advice on where to start? (how to find a cheap PC to experiment with, if not get a VPS, what to test on it, what “utilities” to try self-hosting first…)
Hardware is too wide to tell anything useful out of the blue, depends on what you can get your hands on (as in what’s available locally) and what you actually want to run. Used corporate desktop might be fine, raspberry pi might be good too, mini-pcs are popular and so on. All have their pros and cons.
For the OS proxmox is a solid choise. It has both containers and ‘full’ virtual machines as an option. Debian is good too.
And for the utilities, build something you actually want to use. Pihole is pretty nice. Gaming severs are good to practise with if you’re into that stuff. But if you just build stuff for the sake of it you’ll of course learn on the way but it leaves very little to actually enjoy on what you’ve built.
I really like my immich and nextcloud servers and they’re well worth my time to keep up and running. But with those there’s additional challenge to keep them backed up. Losing pihole server wouldn’t be that bad, it’s easy enough to rebuild, but losing a terabyte of photos is a bit another thing.
I run Bitwarden and Forgejo on an old Raspberry Pi 3 B+. On my PC I run Fedora Kinoite and the following services (podman quadlets):
- *arr stack
- Jellyfin
- Seerr
- qBittorrent
- Shelfmark
- Grimmory
I use my PC for everything, including gaming, and the services running in the background aren’t even noticeable in terms of performance degradation (unless you’re for example transcoding 4k files on Jellyfin). You don’t necessarily need to buy new hardware, use what you have. When it comes to Lemmy, Mastodon, etc., I’d probably get a VPS. I recommend Anubis when you expose stuff to the internet, especially Forgejo.
My first advice is: it’s always too small. You always realize that you need more, as you can get bigger. As an example from me. I started with 3TB of storage for data hoarding. I quickly upgraded to 21TB and it’s still not enough. You may start with something small, but there is so much. Technically you could go up to AI selfhosting. Especially when you go the route with image and video generation, this takes up resources. I heard the Mac Mini is getting used for local AI.
As for what to host, you should ask yourself what do you need. Lemmy and Peertube I count towards not useful for private usage. A cloud storage like Nextcloud is something very useful. Jellyfin is useful. I would start with cutting out 3rd party cloud services from your personal usage. Instead using dropbox/google drive/iCloud and so on, use Nextcloud. Same for images. Make your local media like movies, music, audio books, books and so on accessible to all devices, with the neat features we love from other services like Netflix, Audible, Kindle and so on. You could also just starting hosting your own game servers, than renting or making it only available when you also play.
But be aware of the risks. Something like a Minecraft Server can be made accessible via VPN. If its open to the internet, the damage is rather small, if you don’t value your minecraft world that high. I rather have my Minecraft World deleted, than my personal pictures stolen. When you can open your service only to LAN, you have a lower risk to get it compromised (the risk isn’t zero! It’s never zero. Air gaped systems make it near zero, but not zero.)
When you do open your stuff to the internet, you need to update your software well and configure it well. Stuff like email is a pain to configure. I looked long for a managing software package, which made it easier for me but to leave me freedom. Next important thing is updates. YOU NEED TO UPDATE YOUR STUFF! I do prefer everything with auto updates. I use watchtower for my docker containers, even though it’s not recommended with some containers. What’s currently a big deal breaker for me is PostgreSQL. I threw out containers and avoided containers requiring it, as it needs manual interaction. For work I actually need to migrate from MariaDB to PostgreSQL for our chat system. At least they do use the LTS version, so you aren’t constantly needing to manually update.
As for the hardware, it highly depends on what do you need. A rented server (a VPS or a dedicated Server) does have the advantage to be easily in the internet and on the same note, this is a disadvantage. For email and websites this is good but you need to be very careful. You can start with a Raspberry Pi. Home Assistant does run on it and they do offer some apps, like AdGuard Home, Bookstack and Vaultwarden. You can also start with a NAS. I run my stuff on my Synology NAS, a DS920+. It has Docker. But you may want to look into a different company, as Synology did some bad stuff, that makes me them not recommending it anymore. I did heard Ugreen should be good. Obviously you could always go bigger and build your own NAS and using truenas or something else. You can also start with a MiniPC and use Proxmox.
For the operating system, I think the best thing is what floats your boat. I do use Ubuntu. Why? Because I like it. Using Containers is a big recommendation from me. With Proxmox you have VMs and LXC containers, which allows you to experiment within a container and separate stuff. You can throw it away easier, without disturbing other stuff, that is working.
I really would recommend to start small and keeping an eye on risk. Start in your local network and with stuff that isn’t big risk. If you stark taking more risks, don’t go full in in the beginning. If for example you hosts your own file cloud or email, don’t abandon your previous provider and start small, with unimportant stuff.
Now to myself: I have running a rented server, a Pi, a Synology NAS and a mini PC.
I did start with a VPS. Very hard and I made quite a few mistakes. the authorities twice called me out for stupid mistakes. It was the fun days, where I actually thought running a Windows Server in the Internet was a smart idea. I did run a webserver and email from them for quite some time. I even had a Skype Music Bot running without issues. What the authorities didn’t like where my attempts with the DNS Server and my MSSQL Server. Now my rented server is running my mail and webserver (with Nextcloud) and if I feel fancy, a game server. I don’t utilize it as I could and in the near future, I do want to switch things up but I need to keep my mail running.
My Synology NAS is the big stuff. It has my data on it and runs most my docker stuff. There I run audiobookshelf, calibre-web, gitea, jellyfin and paperless-ngx for my main stuff.
My Raspberry Pi 5 is running HomeAssistant to control my smart home stuff and a new addition is Music Assistant.
My mini PC is running Proxmox with Frigate. Frigate is a NVR for your cctv. Not that I have a big cctv system.
Technically I did start earlier with a Minecraft Server and a Teamspeak server, running from my own PC but that has the big downside, that you need to keep your PC running.
Hardware (what should be enough for a local PC, or VPS…)
One of my “servers” I picked up for $15, saving from electronics “recycling”. Unless you’re transcoding video or hosting something with a hefty database that eats ram, whatever you can scrounge is generally good enough.
Software (OS [Debian, Yunohost, other…], “containerization” (Docker, virtual machines?), dashboard, management, backups, VPN tunneling…)
Debian and proxmox is pretty much my host for everything. I run a bunch of containers, usually lxc though a few docker containers here and there.
“Utilities” to host (Lemmy, Peertube, Matrix, Mastodon, Actual Budget, Jellyfin, Forgejo, Invidious/Piped, local Pi-Hole, email, dedicated videogame servers like for Minecraft, SearXNG, personal file storage like Drive, AI [in the future, when I can afford a rig that can run a local model decently]…)
Jellyfin doesn’t have much in the way of requirements if you’re not transcoding, and if you’ve got a relatively modern iGPU on intel, you’ve got plenty of power to transcode as well. Pi-hole is also pretty lightweight.
In terms of where to find something, I’d start with checking if there are local computer recycling companies, they will resell, and I’ve found they go cheap if you go direct. Otherwise, it depends on where you are. Craigslist occasionally has worthwhile stuff, sometimes ebay, sometimes (and I hate that its become so popular) facebook market. Or maybe just see when a business is getting rid of their off lease stuff and see if you can take something home.
At this point I’m almost exclusively tiny/mini/micro. When one dies (which happened recently), I gut the useful bits and move it somewhere else, or add it to the replacement - which is how my most recent addition, a nuc, has 32gb ram rather than 8gb, and a 500gb m2 rather than a 128gb m2.
Have fun!
Setup:
You’ll need a domain and you’ll need to point the root domain at your public IP with an A record. Then you can set up subdomains for each service with a CNAME record to point to your root domain (use “@“ as the host name).
From your router, give your server a DHCP reservation to make sure it’s IP address doesn’t change, then forward ports 80 and 443 to your server.
Software:
I prefer Kubuntu LTS, cause it’s super stable.
Docker and Docker Compose for sure.
NGINX Proxy Manager. Set up your SSL certificates with this, using the DNS option. Use “host” network mode, so it can talk to your services.
Now you can set up some docker compose stacks with your services. Choose a port range for your services, like 8201, 8202, 8203, etc. Don’t forward ports to your DB. Machines in the same stack can talk to each other without having ports forwarded. Use regular directories for your shares, not Docker volumes.
Set up the subdomain for each service to point to its port in NPM. The address is just “127.0.0.1”, and the port is whatever you set it up as in the Docker Compose stack.
Start with Nextcloud using the “Nextcloud” docker hub image. It says it’s for advanced users, but I’ve been using it for years. It’s super easy.
All of the stuff from linuxserver.io is great, except Nextcloud, cause you can’t run Nextcloud Office with the built in server.
Next, try Immich. It’s awesome.
Then Jellyfin, Nephele WebDAV, Wordpress, Home Assistant.
Oh and RustDesk to access it remotely. You might need to get an HDMI dummy plug to make it work without a monitor. They’re super cheap.
Oooorrr, you can access it with SSH, but that’s a little more dangerous if you don’t set it up correctly.
Don’t try Podman, it’s very difficult to get working, and simply won’t work with NPM. Use the official Docker installation method, where you set up their repositories in Kubuntu.
Every one in a while, go through your docker stacks and update them. Usually that’s just a “docker compose pull” and “docker compose up -d”, but sometimes it needs manual intervention, like with Nextcloud’s upgrade script, “occ”. For that you’ll use “docker compose exec -it”.
Every once in a while, run “docker system prune -a --volumes” to clean up old stuff.
Hardware: either
- use whatever you have lying around, e.g. an old laptop, or
- get a used thin client like e.g. a Dell Wyse. (passive cooling = no noise)
A Raspberry Pi is needlessly expensive for self-hosting, since it comes with GPIO pins etc. for controlling custom electronics.
What are you trying to do?
In the business world, this would be your business requirements. Once you have those then you can spec the technical requirements.
Without having a target, you’ll just be all over the place.
Start with one thing, get that setup, get management for it in place, backup processes, etc.
Then do the next thing.
Iceberg made a great rec - start with Jellyfin. It’s pretty easy, but touches on all sorts of stuff like storage, backups (which media is worth backing up?), etc. Plus it has a high reward - watching what you want, when you want, from almost any device.
Depends if you’re hosting something public, or something private.
For public, a webserver is a simple start. Can be anything you want it to be, but as complexity increases, so does the potential amount of attack vectors, so keep that in mind of you’re considering adding things like WordPress and the like.
For private, a NAS and/or a simple game server is a simple and useful start.
As for how, there’s a million ways to do it, and I’m an old stubborn BOFH that still cling to the old ways of doing it (as in, no VMs, no containers), so I’ll defer to others for that.
While purpose built server hardware is always nice since it comes with some useful additions, the truth is that “any” machine will do. Old discarded PC will do just fine.
One of my first self hosting projects was a jellyfin server. Double check, but I think the main hardware requirements are just 4GB of RAM and enough harddrive space for your videos/files!
I really like immich too. It’s like Google photos, but self hosted. It’s super fast for uploading and backing up your photos over your local network. Immich also needs at least 4GB of RAM I think
immich is not a backup solution. you need to use a backup solutiin forfir the stuff in immich.:)
Immich has a built-in backup solution, iirc. Still, I would use a different one, so it can easily be used over non-Immich related stuff.
Yeah I was curious about that. Like I can poke around in the immich directory, but the actual pictures are stored in a weird structure. Do you have any recommendations?
I use backrest. It’s incredibly powerful, but has a steep learning curve. A way simpler (not as powerful) alternative is Timeshift. Your distro/DE also probably has a backup app.
Pinhole could be something good to start with, its pretty simple to setup, doesnt depend on other services, doesnt require hefty hardware, and has a meaningful impact.
I have a garbage dell wyze thin client with tiny11 and hyper-v running Homeassistant OS. I did this because the solar inverters and batteries have windows only software tools plus an android app in WSA. Also runs jellyfin with a few shows. I plan to migrate but can’t decide on what OS. I found out USB and serial passthrough will work, so I can use a Windows VM.
The networking is garbage because it’s actually got two wifi NICs, I haven’t pulled Ethernet. One dedicated to HAOS. Tailscale works great.
To be clear, my point is that you should just start doing stuff. It’s a journey. Don’t spend much on hardware or electricity
Quite a few recommendations echo the same sentiment: get a whatever computer, start by installing xyz Linux, and go from there. Instead of direct recommendations I’ll present some alternative paths you may find useful to balance your self-hosting style against.
Path 1: Get a cheap VPS and host something like File Browser to transfer some low-stakes files between friends&family. Add services and beef up the server as you need. Doesn’t matter too much if it gets hacked, it’s separate from everything else and you’ll learn to harden it over time when you learn to consider an exposed server insecure by default. Also your financial stake is really low, sub 5€/month and you can quit at any time when there’s no unique data on the VPS. Grow your stake slowly along with your confidence in how well you can secure the thing.
Path 2: Get 3 identical 1-4TB drives and an SSD boot disk on some random computer, and install TrueNAS for home use. It has a large self-hosting community and nicely abstracts away the Linux side of things. No worries about exposing ports, just host anything you’re okay using just at home. Think: Jellyfin, Paperless, Home Assistant. You might find this useful if you never intend to really learn Linux in the first place and just want to solve some of your digital problems locally with some money invested. Later, add a mesh VPN like Tailscale or Netbird to safely access it from outside your home.
Path 3: Get heavily into networking and start by getting complete control and understanding over what happens in your network. OPNsense, adguard, OpenVPN/wireguard, pihole, ddns, ids/ips, VLANs. Do this if you’re a control freak and are willing to commit to updating your stuff and keeping track on potential attack vectors.
I started out with path 3, but have moved more or less towards a mix of 1 and 2 and no longer expose ports on my home router. If I’ll end up getting more than one device, I’ll probably install TrueNAS on one and make the rest a baremetal Talos cluster. Now my stuff runs on one device so it makes most sense to be Proxmox, this is however not advice, I work in tech and full well realise this is not an easy system to run.
I have one question. Are you using an of the shelf router or something like OpnSense?
If the answer is no then you have found a good place to get started. As you begin to self host you will need to look at securing your new toys.

You will gain a ton over a consumer router. They are often just powerful enough to get the job done today. They rarely get updated and if the product is end of life you can only hope a project has picked it up or replace it with similar risks. Building your own you can shoot the specs to a point where you have room to run other features and last a long time. You can run something like CrowdSec, multiple vLan’s, time server, DNS servers with multiple upstream servers and ad blocking similar to piHole, Caddy, ACME client, captive portal for guest networks, Intrusion Detection, and a lot more.
Then you will not only have some understanding of the function and use while you expand your self hosting journey to all those fun services you will also have the flexibility to secure your network when you begin to integrate those things into your home and life.
I’m running my own router using OpnSense, server running TrueNAS, smart home with HomeAssistant and fairly complex network of devices. I have a 10Gbps fiber backbone and a 48 port switch for my 1Gbps ethernet. It can be addictive especially when you are rebuilding a house.
After that figure out what you need, want, and desire. But keep your router as a separate device from everything else. And remember that what you think you need will only work for today, software is only going to get more complex and need more horsepower to keep it going.
For hardware there are two schools of thought, newer lower power devices and older stuff. The choice is spend now or over time. My used X10SLL-F with a xeon E3-1226 v3 router, my X10DRH-C with a pair of E5-2683 v3’s and my desktop Ryzen 5800X which is currently also my Frigate NVR host along with other miscellaneous hardware draws along with the other devices in the house (fridge, deep freezer, smarthome stuff, and the like) draw about 1100 watts. So my baseload is about the same as any other us household.
Hardware: what you currently have on hand to play around with.
Software: start with something simple and well documented. Not quite the driver for the learning phase, in my personal opinion.
“Utilities” as you call them: What is useful to you? What do you want to play with or need to improve your personal use case?
I don’t mean to be flippant with my answers here. Do a little introspection and determine what is genuinely useful for you to self host. I personally run Technitium, Jellyfin, a portion of the "-arr"s, Immich, and Navidrome. My family uses all of these services/utilities on a daily basis, so they are useful for me to host. I have some of the services that need CPU and GPU processing power running on my gaming PC and others running on a Lenovo ThinkCenter that I got for free from the IT department at work. They have bins of PCs slated for recycling that work perfectly fine but are “outdated”.
What are your other hobbies/interests? What are some things you’re completely uninterested in but it’s annoying shit you would really like a better way of handling? Got some answers? Now check the awesome self hosted page to see if there are any existing solutions that look promising. If so, now you know at least some things to host.
How to go about it? When I started I was an idiot kid, on Windows ninety-something (or maybe ME), running Apache, MySQL and phpBB. Copy-pasting snippets in Notepad and not comprehending everything. I found desktop Linux later, learned about init systems, watched that go out the window with systemd, etc. I was installing Ubuntu on every beige clunker I could get my hands on back when the Beryl (Compiz) cube desktop video went semi-viral. Eventually moved on to Arch, learned more about CLI tools, editing configs, etc. If you have something that can host VMs, and you want to play with mock bare-metal setups where you create the users, directories, set permissions, blah blah blah - VMs aren’t a bad way to go. It’s good stuff to learn and know. Gives you an excuse to play with tmux’s synchronized input feature, maybe learn some Ansible, and whatever else. If you just have one dust collector sitting around, start trying distros on it. Mess with stuff til it breaks, boot into install/recovery media and try to unbreak it, repeat. As long as it’s fun (or tolerably annoying enough to reach some end goal).
I’ve personally gotten lazy and I’m nearly all-in on containers. A few things are manual but I’ve come to like Docker. I do still manage mine with compose files, even on my TrueNAS system with their “apps,” because compose files are easy to read, keep track of, and modify. My non-TrueNAS machines, I use Docker + Portainer. I should maybe look into podman and quadlets but haven’t bothered yet.
My recent hardware went from RPi4B to Thinkcentre mini PC to building out a 2U TrueNAS system. A PoE switch powers a Home Assistant Yellow and a few cameras. The RPi was repurposed to only host Homepage, NUT (server, watches my UPS and tells more power hungry machines to shut down during outages) and might eventually host Grafana if I ever get into learning it. Another 4B is my Pi-Hole. The Thinkcentre has an 8TB external plugged in and scheduled rsync tasks, on the TrueNAS machine, push back ups of my more important files to it. It also has a couple users set up strictly for running game servers (ioquake and teeworlds at the moment). Those aren’t containerized and things like rcon, config management, map rotation, mods, etc are all handled manually.
TrueNAS hosts everything else. If you need ideas based on what others are hosting, here’s some of what is on it:
- Jellyfin, for TA (see below) and my legally obtained DVD backups.
- TubeArchivist, (TA) for backing up YouTube videos, descriptions, comments. Has a Jellyfin plugin so your backup library is watchable in JF
- Homebox, for home inventory management. I use it to keep track of my tools mostly. You can have locations, sub locations, items… if I pull a rail of sockets, stick them in my toolbag, then carry it out to the shed - so long as I bothered to update their locations in Homebox I won’t waste time digging in the back of my truck, tool chest or other bags because I can’t remember where I last used my 1/2" drive 14mm deep impact. It’s a mildly inconvenient extra step to essentially “check in/out” my own tools, as if I’m working in an aircraft hangar or I’m doing IT asset management, but I find it worth it.
- LubeLogger, for keeping track of vehicle service. Early this year I put a lot of money into fixing my truck. A lot of tools, fluids, and parts to handle a broken water pump and do some preventative maintenance. Still a quarter of what a shop might’ve charged. Since I’m becoming my own mechanic, I wanted something to properly record what I do and how much I spend on it. LubeLogger fits the bill.
- Factorio, for the factory must grow.
- Dawarich, self hosted GPS logs. Seems decent but I might shop around still. I just wanted an alternative to Google Maps for tracking my travel history.
- Audiobookshelf, for some audiobooks but mainly for archiving a small handful of podcasts.
- Romm, because I’m compelled to hoard old games and occasionally even play them.
- Immich, because I’m not paying Google to store my photos.
- FreshRSS, because there’s still a dwindling number of sites that don’t force you to visit them to read an article in its entirety. Mainly for Hack A Day, a couple devlogs from game makers, the latest CVEs, some global news sites, NASA’s “Astronomy Picture of the Day” (APOD), etc.
- Samba, for some SMB shares that family can dump files into
- ClamAV, because family is dumping files into their SMB shares
I’m looking at hosting lemon-manuals (successor to charm.li). It’s basically a massive collection of service procedures, bulletins, fluid/torque/etc specs, and so on for decades worth of automobiles. Stuff the industry would like to force you into paying AllData, Identifix, or whoever for. I just haven’t had a chance to review their provided “server.” It’s also over 1TB. It’s overkill when I’m only working on three vehicles (mine and my folks’) but I’d like to have it all in case an auto industry lawyer tries to shut them down or i inevitably get a new set of wheels.
I’ve also got intentions of implementing some sort of documentation system but I haven’t settled on one yet. It’s not really for me. I can read my configs and go off plain text. Mainly it needs to be simple enough for my family to work with. My homelab has a bus factor of Me. Whoever has to deal with it when I’m gone needs to know enough to retrieve my encrypted password database so they can get into my emails/bank account to cancel/pay for things or whatever, back up any media of mine they want to keep, back up their own stuff, probably some instructions on how to burn their shows/movies/music back to discs, and shut everything down. Because one day things will break, servers they don’t understand will have failures, they’ll sell the hardware or give it away to designated friends/family members who can hopefully use it… all that unhappy stuff most of us don’t think about until it happens. In fact some sort of contingency plan should probably have been the first thing I recommended, but with some luck you’ve read this far and will put your own into place.
Anyway, hopefully something in the above rambling helps you on your way.






