What I Self-Host

279 points178 comments6 hours ago
eleventen

> Sonarr, Lidarr, Radarr, etc. Every time I read about setting it up, it just sounds like a resource-intensive mess that’s fundamentally prone to frequent breakage. That’s the opposite of what I’m looking for when choosing self-hosted services.

I just checked on my *arr stack. Sonarr and Radarr idle at 157MB and 159MB of memory and approximately no CPU. Jellyfin currently idles at 330MB. I'm not sure where you got this impression from. I grant these tools are complicated and have somewhat clumsy UX, but they aren't especially heavy to run and are not fragile.

OP, point your :robot: at https://github.com/subdavis/selfhosted/blob/main/docker-comp... and ask for an explanation. It's a single compose file that illustrates how the *arrs, transmission, and jellyfin all work together. I'm sure you can set it up :)

show comments
sigbottle

Is putting your reverse proxy in a VM not secure enough? What can break out of a sandboxed VMM?

I suppose there was a KVM exploit on twitter a while back...

eventuallyok

I have gone down the self-hosted rabbit hole, like many it all started with setting up a pihole on a raspberry pi.

I have since gone down the jellyfin + arr stack route. Resource wise the entire stack uses very little. I have Sonarr, Radarr, Prowlarr, Bazarr, FlareSolverr, Jellyseerr, SABnzbd, qBittorrent, Gluetun, qui, Decluttarr, Recyclarr, arr-dashboard all running on my dell optiplex (previously on the raspberry pi).

All up this uses about 2GB of RAM and 0.5% CPU.

I found it extremely fiddly to set up, understand what each component does and have everything integrated well across all my devices.

Without the help of an AI assistant I just wouldn't have had the time to debug every little issue. It took me a good 12 months of tinkering around work hours to have everything stable. However now it runs along fine with very little intervention and I'm able to share it with friends and family.

So the resource argument I don't think is valid. However the fiddly mess I do agree with. Although personally I found it fun and rewarding when things finally worked. But I can understand why people would not want do spend all that time on it.

pseudosavant

Shameless plug for my web video player that is especially designed for self-hosting situations. Drop a single html file in your web server folder with your videos and you get thumbnails, library, search, subtitle support, etc.

No required third-party dependencies (just the optional Google Drive and OneDrive features). Highly customizable (colors, site logo, default features) with a JSON file the player can produce. Responsively scales for any web browser: laptop, mobile, smart TVs, game consoles, even built-in in-car tablet browsers.

https://github.com/pseudosavant/player.html/

show comments
Lucasoato

> I prefer running services natively when possible, but will containerize complex services or those with many dependencies. Love: a service that’s a single Go binary. A service that only comes as a Docker compose file and wants to run MySQL, Redis, and three other containers? I’m already looking for an alternative.

Ok, I respect your opinion, but remember that there are poor souls like me out there that actually love the opposite.

show comments
mikeocool

I am generally not onboard with the “all you need is SQLite” articles that pop up on HN regularly.

But I recently looked into self hosting and several things each wanted their own Postgres container. Immich wants a Postgres and a redis instance.

If you’re building apps targeted at self hosters, SQLite is really all you need.

show comments
harry8

Alternative for music:

owntone + shairport-sync

Owntone holds your collection on the sever and can stream to airport, airport2, dlna.

Shairport-sync turns a raspberry pi zero 2w, or orange pi zero 2w into an airport {1,2} speaker. Or use a (super cheap) esp32 airport 2 from aliexpress.

Can sync every room in the house with owntone OR "I want my phone or laptop's sound to come out of the speakers in this room"

Owntone has access to your paid spotify account if you want that. Can stream to your phone with http (remotely with wireguard vpn). Also has mpd controls if you want those and can use apple remote app on your phone if you like that.

Owntone, pihole and wireguard is reason enough alone to put an old laptop into service as a home server.

ebrahimh

Good article. I have many of the same services in my setup.

Self-hosting email fully is tedious/unnecessary, but what you can do is mirror your various inboxes (Gmail, iCloud, proton, non-corporate outlook) with mbsync and use roundcube or some other frontend to view emails and compose.

I use this to easily access mail from different services, and I can also send from any of them.

I also have a seperate service that watches the mail directory and sends a ntfy.sh notification for new emails.

It’s a bit complicated cause theres so many services but here are the quadlets: https://github.com/ebrahim37/infra-template/tree/main/homela...

I implemented this about a month ago because the iphone Mail app was increasingly buggy.

show comments
diebillionaires

As someone that loves docker compose and doesn't mind services with the benefits of software better than sqlite, I guess I'm the minority here. I wish more apps were based on postgres. I also have never had a problem with my publicly exposed applications. Not once in 8 years.

show comments
turtlebits

Running all these services without a declarative/standard way of deployment, ie docker compose or k3s/k8s is a bit mind boggling to me.

I self host on a bunch of different hardware, OSes, providers. I want the least fiddling as possible.

show comments
ww520

Just a note on OP's hardware choice. I used to have a Beelink with the N100 CPU. That thing overheated and reboot intermittently after couple months of usage. I suspected they overclocked the CPU to look good in benchmarks. I tried to underclock in the BIOS. The temperatures dropped but the setting was reverted after the next power down. Nothing in the BIOS stuck. Their support was worse than useless. The machine ended up as spare parts.

You are better off getting the used business mini-PC from HP/Dell/Leveno/Asus. They have better specs and run great.

show comments
jofzar

> . I do have a 4k TV, but it’s not extremely large, and while I can tell the difference in resolution between SD and HD, for almost everything, 720p seems to be good enough for me.

I am actually jealous of you, I can tell the difference between 4k low bitrate and 4k high bitrate, 1080p and 720p are like mud to my eyes.

show comments
turtlebits

Self hosting is great. The access part is hard.

Pangolin was the missing piece I needed, to not expose my servers to the internet and easily have my services publicly accessible with built in auth.

Tailscale kind of worked, but it was a hassle needing the client on mobile device and it being a VPN.

With vibe coding, I have more of my own apps running than pre-built.

show comments
jamesstidard

Heya, nice read. I’m wondering how you managed to get LetsEncrypt certs minted when your caddy isn’t exposed to the public internet. Doesn’t LetsEncrypt need to make a request back as part of the handshake to mint/refresh the certificate?

Would love to know as I wanted to do the same in the past and ended up self signing certs.

show comments
Havoc

To each their own but running that much stuff without proxmox would drive me insane. Especially the native stuff straight on the machine.

show comments
seplox

I'm puzzled that OP seems stumped on syncing keepass when they're already using syncthing. I've been using keepass+syncthing for years, and I've never had any issues.

scottydelta

With the recent change in Bitwarden's license, not sure for how long they will continue to be self hosting friendly.

I am also using Vikunja instead of trello.

Tbh in general I am fine if the self hosted app uses postgres or a container Db instead of sqlite only.

jwrallie

For people interested in a minimalist setup, Tailscale + Samba can go very far. I personally use Foobar2000 and VLC on the client side.

It’s not pretty nor great with bad connections, but there is basically no maintenance.

anotherevan

I'd be interested in a list of services he uses that he could self-host but chooses not to. I think the only one he listed was email.

bahmboo

Just FYI you can get a M1 Macbook Air with a broken or cracked screen for about $250 on eBay. It's a headless device at that point but it has a keyboard and touchpad.

I use it for my Home Assistant setup and more. It still has headroom. No fan, very low power consumption. Not true Linux container stuff but pretty much everything works on it in this area.

show comments
aanet

/Aside/

Realizing (not just now, btw) that some folks have such a complex setup in their home networks... Make me go :wide_eyed.gif:

I dont even know half (most?!) of the apps/services listed there, let alone know why one would use, or even self-host, them..

/Aside

disposition2

Great write up, thanks for sharing. I run some of the services mentioned, but got some good ideas from the article and the comments.

One suggestion in place of MPD is lyron (https://lyrion.org/). I’ve used MPD for years but recently switched to lyrion and for me, it’s a lot easier and suitable when you have many clients. It’s nice to have a single (nice) UX/UI for my music and all the “speakers” on the local network.

peterdemin

How do people use let’s encrypt on a host that is not accessible from public Internet? Do they manually renew every three months through DNS challenge?

show comments
ioneer

Maybe I skimmed your blog too fast, but I'm surprised I didn't see a dns ad blocker. Thats the first thing I'm seting up when I have a more permanent.

show comments
jbs789

> I need to think about realistic ways to handle potential server failure without compromising the functionality of my home

Sounds like his family is in a pickle if he’s out of town and the server goes down.

XCSme

I've been building and self-hosting my own analytics platform[0] for 13+ years and never had any major issues with it.

The advantage is that if I do want a specific feature, I can just add it, and I am never worried about subscription limits or surprise charged, because I host it on a fixed-cost VPS.

Things don't really need maintenance and don't really break by themselves, the only time when they can sometimes break is when changing things.

You do need to have a proper setup though, for stuff like disk space alerts, knowing the common gotchas of disabling settings that can cause issues, etc.

[0]: https://uxwizz.com

uzairhaq

The best thing to self host (if you have some international family/friends you trust) is a VPN. Get each household a raspberry pi joined into one vpn. It means you actually get local tv to work (unlike Nord vpn etc). Each pi sits on a guest network so traffic passing through can't touch anything in the house

trevithick

I forgot all about MPD. MPD is great, I used it long ago, just exposed to the public internet. Nothing bad ever happened.

GalaxyNova

I don't know why so many people host personal forgejo / gitea instances. You only really ever need a server with ssh access (and cgit if you really want a web interface).

diebillionaires

to each their own i guess. i love docker and exposing my services publicly. and fortunately i bought 64gb 3 years ago :)

jordand

I recently bought a Lenovo Mini PC (01Q8X10) for under £300 that has a Snapdragon X1 CPU (and 32GB LPDDR5 RAM!) and it's turning out to be perfect for self-hosting running the newly released WSL Containers on Windows 11 with WSL 3 (it doesn't fully support Linux yet). Podman had some issues with WSL 3 that they're still releasing fixes for, but it's all working with that too.

bix6

For the self hosters: docker containers or not?

They are so easy / portable but perhaps systemd is a better option as the author suggests.

show comments
moecables

I am surprised author said *arr stack is a mess, it's probably one of the few things I haven't touched much since setting it up and it saves me a ton of time managing new media.

spatterl1ght

I highly recommend https://github.com/mother-of-all-self-hosting/mash-playbook for those interested in secure containerized self hosting.

A tremendous number of services are supported

non-root user execution, read-only, and cap-drop where possible

privybox_dev

i used to setup a NAS. it was closed few years ago. plan to buy a new one. you are a legend.

thi2

I always love reading other peoples self hosted stacks. I never heared of SnapCast but it sounds interesting! Will check it out.

flaunf221

> Jellyfin

I wanted to self-host Jellyfin, but hit the problem. It's bad at the main thing that player should offer - media playback.

If you open https://jellyfin.org/docs/general/clients/codec-support/ you can see that this doesn't support HDR and that doesn't support H265. There is Jellyfin Desktop and it breaks when display scaling is over 100% (what year is it?). Some clients have atrocious subtitle support. And then none of them apparently can't properly pace frames so I still see judder as if I'm on 60 Hz screen (24->60 can't be even translation). But my screen can do up to 165 Hz, so that should never be the issue.

In then I just went back to playing media files from Samba share with MPC + madVR. No automation or catalogization or anything, but it is supreme at actually displaying things, and that's what it's important to me.

show comments
austin-cheney

People twist themselves into a knot talking about AI as the future. Its more of a bubble waiting to pop. Self hosting is the real disruptive future.

The hardware to accomplish most things that we rely on from cloud vendors is absolutely trivial. My own home server is a used super cheap and tiny machine. The hard disks don't even fit in the box and yet it has plenty of CPU and memory to spare.

The software is getting easier to configure year after year eventually creeping to the point where elderly people too lost to use a remote will be running this stuff. The real challenge will be solving for easy access to private networks from public spaces across the internet. Right now everybody seems to be centering on vendor solutions like TailScale for this.

show comments
lifeisloving

Seems like dealing with this is a part time job. I commend it though.

ThrowawayTestr

After Google Assistant died I immediately installed Home Assistant on my old PC. Not as good, but at least it doesn't take 5 seconds to turn on a light like Gemini

VCFundedGenYer

I stared self hosting in 2020 when Raspberry Pis were super cheap (not anymore :( ) and lots of things started becoming available in Docker. Haven't ever considered going back to the cloud. I love taking back full control.

show comments
mrkaye97

Out of curiosity, do you have any concerns about backups (especially for e.g. VaultWarden and Immich)? I've been pondering running them, but figure that I'd need to back up to The Cloud for me to feel less concerned about losing everything, at which point: what's the point? Curious what you're doing on that front!

show comments
Hikikomori

About to retire the NUC I used for 10 years running arr stack, jellyfin, home assistant, pi hole and a few more containers. Bought a new bee link mini pc, new Intel CPU, 500gb SSD and 16gb ram for less than $500.

scottydelta

I have been self hosting for over a decade and recently have seen more people in my circle doing that and I have been helping them.

At first it was hard but then i made it into a product. I am working on Tarvis.io which makes self hosting accessible to non technical users as well. It comes with installation assistant, ssl domains and backups inbuilt into it.

You can install open source apps from a catalog or drop any github repo and it installs and run it for you.

With Tarvis, I have been self hosting more since I am able to install and delete apps with one click, it makes it easy to try things.