What I Self-Host

(viceconsole.fyi)

157 points | by BrunoBernardino 2 hours ago

21 comments

  • moecables 0 minutes ago
    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.
  • eleventen 1 hour ago
    > 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 :)

    • Cyph0n 59 minutes ago
      Indeed. The other thing to point out is that, once you have set them up, they will chug along fine for years with near zero input.

      Here is the stack I recommend:

      * Radarr (movies) with optional second instance for 4K versions

      * Sonarr (shows) with optional second instance for 4K versions

      * Sonarr (anime), separate instance to have control over quality settings

      * Prowlarr (tracker/indexer management)

      * SABnzbd (Usenet)

      * qBittorrent (torrents)

      I would also recommend consulting the TRaSH guide to tune your setup and ensure you’re grabbing quality releases. From there, the next logical step is Profilarr :)

      • QGQBGdeZREunxLe 9 minutes ago
        Prowlarr replaces Jackett?

        https://github.com/Jackett/Jackett

        • kristofferR 4 minutes ago
          Yeah, it interfaces way better with Radarr/Sonarr. I still run Jackett though, good for manual searches.
      • arcastroe 36 minutes ago
        sabnzbd can be replaced with nzbdav or similar tools (infinidysk, altmount) if you want to free up storage and stream directly from usenet.

        Or, even better, the entire arr stack can be replaced with stremio to just keep everything on-demand instead of curating a library at all.

        • Cyph0n 16 minutes ago
          “Even better” is relative. Some people like having media stored locally instead of relying on torrent streaming availability.

          Usenet streaming sounds cool, but with releases being DMCAd so frequently, I don’t see how it would be practical for anything but the most recent content.

          Also, I imagine that Stremio without Debrid (or equivalent) is kind of a terrible experience most of the time.

    • figassis 21 minutes ago
      I build my own version, single binary that does every thing. While I built it, I learned I cannot make it open source or distribute, bc it might be illegal to do so, so I assume many people have built that, but you're always locked into the narrowly scoped lego pieces. So I enjoy my media now, without hassles, all the features I need, none I don't. I hope one day I get to share.
      • j1elo 16 minutes ago
        Solution is easy, in fact there are 2 solutions:

        1. Clear that "might", it either is or isn't. An AI can get you 90% there, maybe the definitive confirmation would be good from a lawyer.

        2. None of this matters if you share it from a foreign code forge and an anonymous pseudonym.

    • BorisMelnik 30 minutes ago
      I've been running my instances for over 5 years, I update the Dockers every few months and that's it. I have about five users in different households that rely on it it has never missed a beat.
    • weedfroglozenge 17 minutes ago
      The bigger reason is Sonarr and Radarr opens you up to a plethora of attack vectors and realistically at this point you're probably already compromised.
    • benoau 52 minutes ago
      There's been two major disruptions in my experience.

      First was Lidarr went for months last year (was it this year?) unable to search/add musicians due to complications with how they were relaying those searches. It took them a long time to refactor that part of the software and make it usable again.

      Second was the retirement of Readarr, the ebook-version of this software, which was an absolute shame.

      But aside from that this is pretty much set-and-forget software. Although the setting is harder than it should be, should be much easier to favour smallest x265 rips at <resolution>, lossless audio, season rips with subtitles.

    • ChadNauseam 51 minutes ago
      Another good option is nixflix: https://github.com/kiriwalawren/nixflix (a nixos equivalent)
    • birdsongs 1 hour ago
      I think it just sounds intimidating if one hasn't tried, but they are really well designed pieces of software, that are relatively simple to set up (just have to go through the motions and connect everything with API keys).

      Highly recommend them to OP. My stack went down once in the past 4 years and it was my fault.

  • uzairhaq 3 minutes ago
    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
  • Lucasoato 2 hours ago
    > 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.

    • mtlynch 1 hour ago
      > Ok, I respect your opinion, but remember that there are poor souls like me out there that actually love the opposite.

      All things being equal, why prefer Docker Compose? From my perspective, a single binary strictly dominates any Docker Compose solution.

      • asciimov 1 hour ago
        Isolation from the main system, other services, and other dependencies.

        Easy to migrate to new system.

        Easy to upgrade and downgrade. When a new version causes an issue just restart it with an older version.

        One directory to backup and restore that contains all the services and their settings.

        • bigstrat2003 14 minutes ago
          A single binary accomplishes most of those things just fine. Only thing it doesn't get you is isolation, but you can isolate things if you want even then (for example, FreeBSD jails are dead easy to set up).
      • jmbwell 15 minutes ago
        I’ve been a die hard native package or static binary proponent for a long time. I still hold that there are real advantages.

        As podman has improved and compose stacks have improved, I’ve conceded that containers simplify deployment and updates and isolation, and at this point I find for me the benefits more than outweigh the hassles.

        Instead of crafting a set of ansible plays that do all the manual native installation steps, I have a relatively lightweight ansible rig that reads containers and relationships desired from a manifest in inventory, then builds or modifies compose files, then just deploys. Much less futzing. And I’m more likely to keep things up to date regularly as a result

        Or, increasingly, dispatch codex to handle it for me

        In this way I update home assistant across multiple instances now like magic. I don’t even dread it a little anymore

      • wilted-iris 1 hour ago
        It’s the unified interface for me. Updates, logs, service management, network routing, config and storage mapping are all uniform and I don’t have to wrangle many slightly different implementations of each. Isolation from installed packages is a nice bonus.
      • dmtroyer 1 hour ago
        for long-running services, I've never taken the time to learn something reliable like systemd. with Compose, I can see everything I need to know in one yml file and the commands to go with it. I also don't have to really understand any dependencies or their own configuration and can cleanly remove everything associated with that service with a few commands.
      • zzyzxd 1 hour ago
        I don't use Docker but I love reading the compose file when a project has it. It is the quickest way for me to get a high level idea of this project's architecture. It's the best documentation :)
        • Lucasoato 17 minutes ago
          This. Docker compose is so great that you don’t even need to use it, for it to be useful. It can describe so well the dependencies your system needs (alongside proper documentation).
      • turtlebits 1 hour ago
        Its a single config that lets you run multiple services (and can keep them running), upgrades are just editing an image tag.

        Don't have to look at cli docs to figure out how to run it.

        Doesn't have access to my file system, logs are easy.

      • unshavedyak 1 hour ago
        Some isolation is nice. I say some because I’m told it’s security is not to be trusted, but I still like that even a non nefarious binary has ootb boundaries on what state will persist.
        • Gigachad 1 hour ago
          Docker isolation is likely good enough if you keep your kernel up to date and aren't allowing 3rd parties to run code. If you are running a CI service or something you need micro VMs. But to host your nextcloud server, docker is good enough, it's unlikely someone will both exploit nextcloud and the kernel if you are keeping them up to date.
    • tacker2000 34 minutes ago
      Same here, just give me a compose file and lets go!
    • sergiotapia 1 hour ago
      A big reason I chose Rust and Sqlite for my project was that end users could just run the small binary and be done with it. https://github.com/sergiotapia/joyscroller

      I think you can go very very far with this kind of setup especially if it's just for you.

  • ebrahimh 1 hour ago
    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.

    • gerdesj 56 minutes ago
      "Self-hosting email fully is tedious/unnecessary"

      If you IT, why do you particularly consider self hosting email as tedious?

      • ebrahimh 32 minutes ago
        I've never tried to set it up even though I know it can easily be done with things like mailcow.

        The downside is never really knowing if your email reached your recipient (maybe it got blocked by Gmail because of your IP, maybe some other reason). If I use Gmail/proton etc, then I can be pretty sure that the other person got my email.

        • caymanjim 4 minutes ago
          You'll know from bounced email and logs, which you should have monitoring setup on.

          It's not trivial to run your own email stack, but it's not hard either. It's more tedious than anything. Once it's up and running, it's low-maintenance. And it's fairly trivial to avoid spam. I get vastly more spam in my Gmail than I do on my self-hosted domains.

          The biggest challenge with self-hosted email is getting an IP address that's not blocked or carrying low reputation. Most VPS IPs from e.g. Digital Ocean, Linode, Hetzner, AWS, etc. are going to get blocked from Google (the strictest) and Yahoo, Hotmail/Live/MS, etc. Cloud providers often block incoming and outgoing mail ports, too. I have a Digital Ocean VPS and my account is old enough to be grandfathered into the old policy, which means my email ports aren't blocked. I used to have no trouble sending email anywhere from my VPS, until I downsized it and got stuck with an IP in a bad reputation CIDR. Now I use smtp2go for relaying outbound mail, but still handle all inbound mail. 10/10 score on mail-tester.com, and I never have any problems or need to do any maintenance.

      • kristofferR 8 minutes ago
        Because it's not about setting it up, it's about not getting outgoing mail perceived as spam by someone. Borderline impossible without scale. Even doing everything correct is not enough.
    • birdsongs 1 hour ago
      You can do this with Proton?? How does it handle decryption/encryption, etc?

      Would absolutely love to do this, proton frontend annoys me at times.

      • ebrahimh 46 minutes ago
        I actually don't use protonmail but you should be able to access your mail with IMAP (both iCloud and Gmail support it so proton should as well).

        If by encryption you mean PGP etc, that's handled in roundcube I believe.

        mbsync mirrors your protonmail inbox to disk, dovecot shares that mail folder through IMAP, and roundcube or some other frontend connects to dovecot.

        For gmail/icloud IMAP, you can't use your regular account password, you have to create an "app password" and use that password for mbsync.

  • jamesstidard 1 hour ago
    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.

  • turtlebits 1 hour ago
    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.

    • threecheese 9 minutes ago
      Pets are OK sometimes! They do need care and feeding, though; some of us don't see that as chores, instead delightful hobbies. I can definitely see the perspective of "there are better things to do", especially if you don't like those things.
    • jauntywundrkind 1 hour ago
      Especially now when you can snap your fingers and get a semi responsible codified version. Heck just do what you want to them ask the LLM to port your work to something marginally better than a totally hand cobbled bucket of bits system.
      • qwerpy 42 minutes ago
        That’s what I’ve been doing. Managing this stuff by hand is awful and I’m not a sysadmin who is good at it. I just added single sign on to my home network for a wide variety of various services. Some of them didn’t even support SSO but a quick AI patch fixed that. There is no way I would even attempt that by hand let alone succeed.

        I saw statements to the effect of “this would be nice but it’s a lot of work” several times in the post. I don’t understand why that has to be a blocker anymore. All this tedium is gone.

  • Havoc 2 hours ago
    To each their own but running that much stuff without proxmox would drive me insane. Especially the native stuff straight on the machine.
    • c45y 1 hour ago
      With some small systemd configs each native app is essentially a container these days. The overhead of unique kernels per app would really restrict what could fit on a small box like this

      DynamicUser and ProtectSystem keep me sane.

      • birdsongs 1 hour ago
        Like the other person said, proxmox allows containers or full VMs, and the base OS takes less than 2 GB RAM.

        My jellyfin LXC idles at a few hundred megs of ram, shares the base debian kernel, and if anyone does ever break in, they don't get access to anything else, anywhere else on my server. (All media is also mounted read-only to the jellyfin LXC.)

        I really, really like it, just set it up recently. Everything in its right place.

      • Havoc 1 hour ago
        Much prefer LXC + IaC to rebuild them, but much of a sameness
  • turtlebits 1 hour ago
    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.

    • bubblemoth 49 minutes ago
      Wireguard is relatively simple. The VPN on my phone automatically connects when I disconnect from my home wifi, then it's like I'm at home.
      • spacephysics 8 minutes ago
        Why the downvotes? Genuinely curious, I do this and don’t know of a downside after setup (with help from {AGENT})
    • oscarteg 57 minutes ago
      What tools did you create yourself?
  • seplox 23 minutes ago
    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 1 hour ago
    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.

  • XCSme 1 hour ago
    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

  • thi2 39 minutes ago
    I always love reading other peoples self hosted stacks. I never heared of SnapCast but it sounds interesting! Will check it out.
  • bix6 1 hour ago
    For the self hosters: docker containers or not?

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

    • BLKNSLVR 0 minutes ago
      I prefer docker containers (on proxmox VMs), but that could just be the familiarity of a few years experience talking. It does add some distance from 'bare metal' but it also makes backup/restore, and therefore portability, quite simple. I backup both the VMs and the 'persistent' container data that I always create dedicated volumes for, so I have a couple of different avenues and granularity for restoring.
    • 1shooner 1 minute ago
      There are really easy to user docker app managers out there. The author says 'I already use systemd'. I mean, I guess I'm using systemd, but really I'm using e.g. runtipi with an app store, web-based config and logging, and a super easy app template. I can point claude at any project with a docker release and in a couple minutes have it show up in my app store to install, run, simple data backups, etc.
    • QGQBGdeZREunxLe 5 minutes ago
      Container manager on Synology. Don't have much choice. Some stuff can run native but it's easier to run containers.

      The big issue with Synology is the really crappy db logs driver they use. If a container has been running for a while it takes an age to see the logs via the Web UI.

      There is a solution though: https://github.com/telnetdoogie-labs/synology-docker

    • LaurensBER 1 hour ago
      Podman + systemd is how I run production workloads at work.

      For us it's the perfect balance between simplicity, observability (Beszel) and reliability. Not the right tool if you have dynamic workloads but definitely the right tool for boring and predictable workloads.

      At home I run K3S, it's awesome. It also breaks a lot and does add a whole bunch of complexity that I would only recommend if you enjoy tinkering and fixing things.

    • kombine 52 minutes ago
      My server is running on NixOS and I went with systemd containers - really happy with my setup. It was not at all difficult to set it up with Claude
      • ChadNauseam 48 minutes ago
        I have a stupid question: if I'm using nixos why do I need docker or systemd containers? Especially with systemd sandboxing
    • drdexebtjl 58 minutes ago
      I personally use NixOS and a mix of systemd services and Quadlet-Nix for the few containers that have too many dependencies and moving parts. Works well.
      • overtone1000 13 minutes ago
        I had not heard of quadlet-nix. How interesting and tidy!
    • Axsuul 23 minutes ago
      Yes, especially if you running a multi-node setup. I'm still running on HashiCorp Nomad.
    • Cyph0n 57 minutes ago
      Yes. NixOS running Podman containers is where I ended up after trying almost everything :)
    • rhymnz 1 hour ago
      Personally I use docker with portainer to handle the stacks/containers, have done for many years. I like it.
    • ticoombs 1 hour ago
      Docker containers are fine. I've moved between 5 NAS' over the years and docker has enabled it to be seemless.

      rsync data directories. docker compose up. Done.

      On the consumer or even prosumer nas products which have a semi-locked down system (ie Truenas/qnap/Synology). Technically you have root but as soon as you update the OS all/most of the changes end up being broken. Yes you could probably do something and deal with it. But personally I've spent too long babysitting it on the first and second nas that I no longer care.

    • Hikikomori 22 minutes ago
      Most of the time projects provide a ready to use compose file. I use dockge that provides a simple web interface for compose configs, so just paste in the compose file there and run it.
    • jp191919 1 hour ago
      For several years, Docker with portainer
    • overtone1000 1 hour ago
      Why not have your cake and eat it too with quadlets?
      • nozzlegear 1 hour ago
        Quadlets rule, I have tons of them configured for my professional and hobby/self-hosting services. Super convenient, I wish there was something equivalent for my Mac (launchd files just don't cut it).
  • jordand 1 hour ago
    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.
  • lifeisloving 1 hour ago
    Seems like dealing with this is a part time job. I commend it though.
  • Hikikomori 19 minutes ago
    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.
  • austin-cheney 2 hours ago
    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.

    • MostlyStable 1 hour ago
      I self host (I have a large overlap with the services in TFA), and love it. I will never go back and think that more people should self host (or at least...join small groups of people who designate one person to manage it for a small number of people).

      And believing that the current AI economy might have a period of rapid devaluation in the near future is pretty reasonable. But, much like the original .com bubble, the idea that AI as a technology will not survive and thrive through such a pop, and become an ever more important part of our future, is a belief that I can't comprehend. Anthropic and OpenAI very well may go belly up. AI as a technology isn't going anywhere.

      And as much as I'd like to believe that more people may self host more things in the future, self hosting will never, even if it was adopted by literally everyone, become as big a deal as AI, even if AI hit a wall tomorrow and didn't get any better than the current frontier models.

    • mtoner23 1 hour ago
      Self hosting has never been easier and I imagine the average person has never been further from trying it. No one will ever get anywhere close to hosting this much sruff
  • ThrowawayTestr 1 hour ago
    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 2 hours ago
    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.
  • scottydelta 1 hour ago
    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.