this post was submitted on 14 May 2026
5 points (100.0% liked)

Selfhosted

50711 readers
902 users here now

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:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

  7. No low-effort posts. This is subjective and will largely be determined by the community member reports.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

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...)

top 16 comments
sorted by: hot top controversial new old
[–] HeyMrDeadMan@lemmy.world 2 points 4 hours ago

Sonarr. Radarr. Whisparr if you're a sicko.

[–] Jakeroxs@sh.itjust.works 5 points 5 hours ago

Surprised no one has mentioned proxmox (at least not the top 10 threads I saw first)

Basically debian with a webui specifically for spinning up VMs and LXCs and managing storage and such, then install whatever distro in an LXC and run docker in that.

[–] thecoffeehobbit@sopuli.xyz 3 points 11 hours ago (1 children)

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.

[–] thecoffeehobbit@sopuli.xyz 1 points 11 hours ago

I'll have to add that if going for path 1, be sensible and make sure you know if you have been hacked, to not expose your friends to malware by accident. You might even want to host a honeypot for learning this part.

[–] __hetz@sh.itjust.works 1 points 18 hours ago

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.

[–] Danitos@reddthat.com 2 points 1 day ago

I would suggest you start to play around with whatever machine you have in hand. Later on you can migrante to a more serious solution. If you want to first play on a VPS, Hertzner's are like 4€/month

As for utilities, you could start with (in suggested order over my perceived usefulnes/coolnes/difficulty) Immich, videogame server, Jellyfin, Wireguard, Jupyter server (if you code Python), backrest.

When you want to scale up and migrate into a more "serious" setup, it depends on that you want and your budget. Still, I recommend a multi-disk bay PC (NAS), and go for a dedicated Linux distro (I'm using TrueNAS; not perfect, but overall a very good experience).

[–] jjlinux@lemmy.zip 0 points 19 hours ago (1 children)

Everything, self-host everything, even toilet paper. Wait, hold on, don't self-host email, that's a fucking pain.

[–] TotallyWorthLife@lemmy.world 1 points 19 hours ago* (last edited 19 hours ago) (1 children)

Sooo... do I just do with known email providers (proton, tuta, the webmail my domain provider allows me to have)?

Seems like email is the biggest issue to self host lol

[–] talentedkiwi@sh.itjust.works 1 points 17 hours ago

Proton will so smtp if you're on one of the paying plans. You can get your own domain setup to use with it. This is what I do. I just had to contact them to get it setup, they ask a few questions about usage, which I just said was self hosting stuff and sending occasional emails.

[–] Decronym@lemmy.decronym.xyz 1 points 1 day ago* (last edited 4 hours ago)

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
CGNAT Carrier-Grade NAT
DHCP Dynamic Host Configuration Protocol, automates assignment of IPs when connecting to a network
DNS Domain Name Service/System
HTTP Hypertext Transfer Protocol, the Web
IP Internet Protocol
LTS Long Term Support software version
LXC Linux Containers
NAS Network-Attached Storage
NAT Network Address Translation
NVR Network Video Recorder (generally for CCTV)
PoE Power over Ethernet
RAID Redundant Array of Independent Disks for mass storage
RPi Raspberry Pi brand of SBC
SBC Single-Board Computer
SMB Server Message Block protocol for file and printer sharing; Windows-native
SSD Solid State Drive mass storage
SSH Secure Shell for remote terminal access
SSL Secure Sockets Layer, for transparent encryption
TLS Transport Layer Security, supersedes SSL
VPN Virtual Private Network
VPS Virtual Private Server (opposed to shared hosting)
nginx Popular HTTP server

[Thread #288 for this comm, first seen 14th May 2026, 21:10] [FAQ] [Full list] [Contact] [Source code]

[–] iceberg314@slrpnk.net 1 points 1 day ago (1 children)

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

[–] kurikai@lemmy.world 0 points 1 day ago (1 children)

immich is not a backup solution. you need to use a backup solutiin forfir the stuff in immich.:)

[–] Danitos@reddthat.com -1 points 1 day ago

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.

[–] hperrin@lemmy.ca 0 points 1 day ago* (last edited 1 day ago)

Hardware

Anything with an x86 processor and some form of graphics (iGPU is totally fine). You can use a raspberry pi, but it will give you headaches. The more RAM the better, but 8gb is good enough for a few services. You definitely want an SSD.

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). So like “example.com” points to “123.123.123.123” with an A record, and “nextcloud.example.com” points to “@“ (“example.com”) with a CNAME record.

For your domains, I recommend Cloudflare. They’re relatively easy to set up, but more importantly, they don’t charge a markup on domains.

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. When you’re installing, tell it to log you in automatically. Then once installed, in the power settings, turn off automatic sleep. You can leave on automatic lock, but it doesn’t really matter, since if someone has physical access to the machine, you’ve already lost.

Docker and Docker Compose for sure. When you set up a docker compose stack, put it in its own directory, to make life easier. So, you can have a directory “nextcloud”, with the docker-compose.yml for the Nextcloud stack (Nextcloud itself, Nextcloud again but running in cron mode, and MySQL/MariaDB).

NGINX Proxy Manager should be your first docker compose stack. Use “host” network mode, so it can talk to your services. Set up your SSL certificates with this, using the DNS option. Your certificate should have two domain entries, one wildcard and one for the root. So your entries would be like “*.example.com” and “example.com”. You can do that on the same cert. You’ll need an API key from your registrar that has access to your domain’s zone to get it working. On Cloudflare you can set that up in your profile. Just give it access to all zones, then jot down the secret key somewhere safe like a password manager. That key is what you’ll enter into NPM when setting up your cert.

Now you can set up some docker compose stacks with your services. Choose a port range for your services, like 8201, 8202, 8203, etc. Each service usually only needs one port mapped, the HTTP port. So use a port you haven’t used and forward it to the HTTP port (“8201:80”). Don’t forward any ports to your DB. Containers in the same stack can talk to each other without having ports forwarded. Use regular directories for your volume mounts, not Docker volumes (so like “./nextcloud:/path/to/nextcloud/data”).

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.

Remote Access

Install Flatpak and Flathub, then the RustDesk flatpak to access your server remotely. Set it up as a startup program in KDE settings so it launches on boot. Install Flatseal to give RustDesk full permission so it doesn’t always need to ask the local user to approve the screen share. 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.

Notes

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 once in a while (at least monthly), 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. (This is one reason why you don’t want to use docker volumes for your data, they would get scrubbed too unless they were running.)

You’ll probably want to set up some backup solution. Just note that a lot of the files you want to back up are owned by root, so userland backup tools probably won’t work.

Don’t try to host your own email. You can probably do it, but it’s astoundingly complicated and difficult to maintain. I know because I run an email service, https://port87.com/. Most ISPs make you jump through hoops to open up outbound traffic on port 25, the email port.

Most Importantly

Have fun!

[–] krashmo@lemmy.world 0 points 1 day ago (1 children)

Copy/paste from another comment I made a while back:

Look into docker containers in general. If I was going to start from scratch in your position this is what I'd do:

Install a Linux distribution on the computer you plan to use for self hosting. This can be anything from a raspberry pi up to a custom build but I would recommend starting with something you have physical possession of. I found Debian with the KDE plasma desktop environment to be pretty familiar coming from Windows. You could technically do most of this on Windows but imo self hosting is pretty much the only thing that a casual user would find better supported through Linux than Windows. The tools are made for people who want to do things themselves and those kinds of people tend to use Linux.

Once you have a Linux distribution installed, get docker set up. Once docker is set up, install portainer as your first docker container. The steps above require some command line work, which may or may not be intimidating for you, but once you have portainer functional you will have a GUI for docker that is easier to use than CLI for most people.

From this point you can find the docker installation instructions for any service you want to run. Docker containers have all the required dependencies of a given service packaged together nicely so deploying new services is super easy once you get the hang of it. You basically just have to define where the container should store it's data and what web port you want to access the service on. The rest is preconfigured for you by the people who created the container.

There's certainly more to be said on this topic, some of which you would likely want to look into before you deploy something your whole family will be using (storage setup and backup capability, virtual machines to segregate services, remote accessibility, security, etc). However, the above is really all you need to get to the point where you can deploy pretty much anything you'd like on your local network. The rest is more about best practices and saving yourself headaches when something breaks than it is about functionality.

+1 for docker. So much easier than managing dependencies for a ton of services