blog entry
The holes in my Self-Hosting setup
Permalink for The holes in my Self-Hosting setupThe things I wish my homeserver did
For a few years now, I've been self-hosting a number of applications. This accelerated a lot in recent years as the quality of the corporate-owned and operated alternatives to self hosted services became more and more enshittified. Now, it feels like some self-hosted applications are best-in-class solutions as alternatives become more riddled with ads, are constantly spying on you, and are voluntarily bloating themselves with the toxin known as "Generative AI." My set of self-hosted services is fairly comprehensive, but there's still problems, gaps, and things I would love to add that either already exist and I just haven't added them yet, or exist in a flawed way that prevents me from adding them. Here's a comparison between the stuff I use and like and the gaps that I would like to fill in the future.
Files, Storage, and Basic Computing Permalink to this heading
I use a number of things that used to be the realm of corporate interest in my life. Every corporate OS producer in the consumer space has a cloud storage solution that they are pushing hard on their users. OneDrive is installed by default on Windows and will constantly try to turn itself on. iCloud storage is baked into iOS/iPadOS and macOS devices and Apple actively encourages users to bundle all their apple subscriptions including storage they may not need. Google Drive is bundled with Android and ChromeOS and is basically the default way to interact with files on those operating systems at this point. The cloud storage from Microsoft and Google also comes with ways to interact with those files easily. Office suites are built into the web now and the default file types for these web versions of office programs are natively online. Not only do users end up filling up storage they don't need to be filling up, but they need to use these online editors to access everything. Files, documents, and spreadsheets are the bedrock of computing and they now live online so that companies can lease them back to you in exchange for as much data as possible. Here's what I've done so far to alleviate this issue.
- Use local office programs wherever possible. LibreOffice is open source and free. Other good alternatives also exist.
- Host my cloud storage myself via CopyParty. With the correct setup, it is secure and available anywhere I have internet, but is not the default file management interface anywhere, even though the WebDAV server is easily integrated into other file management systems to show as a networked drive or local filesystem.
- Use local-first file management wherever possible. My choice for this is Mixplorer on Android and Dolphin on my Linux desktop. There are still gaps in the setup though. I'm hopeful they can be closed. This is one I think is certainly possible with some work in my current setup. These just aren't 100% perfect solutions.
- Integrated web-based editing of files is nice. It's really convenient to not have to download a file to edit, then re-upload it after.
- Nextcloud solves this by integrating everything, but it runs SO SLOW on my setup. It feels like throwing more hardware at it might help, but have you seen those RAM prices?
- There's also Etherpad and Collabora, but I don't think they'll integrate very well into my existing file storage solution. They're not a part of the TrueNAS apps catalogue, which is fine. It just means deploying them takes about three times the amount of time.
- Automatic sync between local storage and "the cloud" isn't really a thing. It's not a big deal most of the time because as long as the server is available I have direct access, and in my home I don't even need internet to access the server files, but having some sort of offline caching would be nice.
- This may be possible using some sort of WebDAV client, but it sounds complex and prone to failure.
Media Storage, Distribution, and Playback Permalink to this heading
The classic number-one reason for a home server and the thing that got me interested in building mine in the first place. Before my homeserver, I needed to leave my desktop on at all times just to make Plex available. Beyond movies and TV, though, it's nice to support musical artists directly and not have to deal with ads, availability issues, or mixing of online and offline libraries. Similarly, not having to deal with Amazon's holding of ebooks or audiobooks hostage within their services is a godsend. Here's what I've got running right now.
- Plex is no doubt one of the most mature and feature rich media library experiences. I don't like their direction especially in the last few years, but I do have a lifetime Plex Pass and my wife is used to their UI and uses it more than I do, so I'm probably going to run it a while longer.
- Jellyfin is what I'd like to move toward eventually for movies and TV. Its support for downloading subtitles is kind of rough at best, but if you don't need that functionality, it's a very solid and good experience, even if the UI is a little rough.
- Navidrome is an OpenSubsonic-compatible music streaming service that runs on my home server. It can stream media to various endpoints and works off of a local library of files. As endpoints for Navidrome, I use Symfonium on Android which is a very premium feeling music app. On desktop, I use Psysonic which uses the OpenSusbsonic protocol, but connects to Navidrome just fine and looks good doing it.
Even with these, I do have a couple major holes in my media library setup. There's ways around it, but it's not really cut and dry.
- I don't have a solution I love for ebooks or audiobooks. AudioBookShelf is the obvious choice here, but it has been relatively buggy for me. For eBooks, specifically, Calibre and Calibre-web leave a lot to be desired in the interface and Calibre-web Automated only minorly improves it, but it broke on my system too. This might just be something I have to do some troubleshooting on when I have time.
- Plex is not noncommercial and there's some serious anti-features in it, but Jellyfin just isn't quite ready to fully take the reins yet and I don't know if or when it will be because its development is relatively slow.
- Youtube/social video is something I still value, but don't have a good solution for. Ideally, this would be a server app and client that would offer ad-free video playback without needing to pay Google's blood price for Youtube Premium or subscribe to a large service to get content from only one or two people I like to watch while being unable to get content from anyone else. I also don't want to use a solution that would deprive the creators I like of support. With the additional limitation that I cannot subscribe to every patreon out there. Right now I just don't use YouTube at all on my phone, and only use the website with DeArrow, SponsorBlock, and a paid YouTube Premium subscritption. There are alternative self-hosted youtube frontends, which I may look into, but so far there's not a fantastic way to get around Google's subscription fee here yet.
Written Content on the Web Permalink to this heading
The reason for the season, baby. You're reading an indie web site here. Thanks, by the way. I love reading indie/small web stuff a lot. Here's my current setup.
- FreshRSS is my feed aggregator and synchronization server. I add my subscriptions to it directly, then use its GReader API to send those posts to my reading app of choice.
- I use FluentRSS on both Android and Linux for reading posts via RSS. It's a dead simple interface, but I like the way it looks a lot, plus if I feel something is missing, I can easily flip over to the web view to get the full experience.
This setup is solid, but there's a few things I'm looking to change or fix about it.
- I don't currently have a "read later" solution I like. I have Wallabag on the to-deploy list, but it isn't in the TrueNAS app catalogue, so I'll have to use Docker Compose to roll it myself.
- If a site's RSS feed is hidden, or nonexistent, I don't currently have a way to get to it. I used to have RSSHub self-hosted, and might do so again, but I've been seeing bits and pieces about additional similar solutions, so I'm excited to look more into it.
- I'm currently on the hunt for a good Search option. I currently use Startpage and Google (since Startpage doesn't work on my workplace's wifi.) I have looked at Kagi a bit, but I feel like $5/mo is pretty steep for just Search. Plus they are using AI too. I would like to roll my own Search, but SearXNG doesn't support locking up the site behind a login, so my instance would be just available to the whole web. It also doesn't perform super well on my gear. Maybe it's something I can look at again if I ever get the chance to upgrade my home server.
Email and Communication Permalink to this heading
Maybe a little out of the scope of the article, but communication is definitely one of the things that I feel is most important to fully own yourself. The issue so often lies in only being able to move to open standards or self host these services if others use the same services. This is also the only part of my setup I fully do not host myself at all.
- For email, I use PurelyMail. This is a very cheap service that only provides mail. Nothing else. The downside is no extra features like file storage or whatnot that you'd get with ProtonMail or FastMail, but as stated before, I do not want or need cloud storage or document editing or anything else that these companies stuff into e-mail to try to pump the value of the service.
Communication is absolutely a swamp. There's a lot of movement in the area, but getting people over to a new service is nigh impossible. The solution here from a technical, and somewhat heatless, perspective is to say goodbye to the communities I like to be in and only maintain membership if a community is willing to adhere to my specific criteria for platform and protocol. Naturally, I don't really see this as a viable option. Some things I am interested in considering, though.
- LoRa communication is a thing that has been gaining steam as civil unrest and natural disasters loom large in society. I am absolutely interested in messing with the technology and integrating it somehow. It would be an absolute boon should Colorado's seasonal wildfires take out power and communications again, which seems very likely this summer.
- Discord is not a friendly place to be from a corporate standpoint. In their move towards IPO, the service has been making moves for profitability, not community health. I would be interested in jumping ship, if a comparable service feature-wise, with significantly more community control was adopted by the communities I'm a part of. However, this is the one area where the community move is most important and moving people to a new platform is just asking for a fractured space. I don't want that, so I'm stuck.
- I currently don't visit forums or maintain ties with other like-minded communities outside of consumption and writing these posts into the void, so to speak, so I'm interested in perhaps looking at 32-bit cafe or other indie web communities to maintain friendly relationships with and maybe even expand the reach of my own humble site. I haven't made such moves yet, though. Joining a new community with its own norms is kind of scary.
Wrapping Up Permalink to this heading
I feel pretty knowledgeable about the space and I genuinely like exploring and building out more services. It's easy to make it sound like this life is significantly better than existing on the corporate net in every way, but in truth it's not easy and it's not perfect. It's a lot of long troubleshooting sessions and maintenance. Sometimes things break pretty severely. Like Immich did recently when they deprecated the Postgres 15 database option without a way for existing installs on the latest version to upgrade the DB without changing some files via the shell in TrueNAS. Still, I built this setup brick by brick and I wouldn't get rid of it for the world.