<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Foss on danbat.es</title><link>https://danbat.es/categories/foss/</link><description>Recent content in Foss on danbat.es</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Wed, 14 Jan 2026 17:45:00 +0000</lastBuildDate><atom:link href="https://danbat.es/categories/foss/index.xml" rel="self" type="application/rss+xml"/><item><title>Getting into Self-Hosting: More apps</title><link>https://danbat.es/posts/more-self-hosting/</link><pubDate>Wed, 14 Jan 2026 17:45:00 +0000</pubDate><guid>https://danbat.es/posts/more-self-hosting/</guid><description>&lt;p>Now that my &lt;a href="https://danbat.es/posts/self-hosting-intro/">first apps&lt;/a> are &lt;a href="https://danbat.es/posts/self-hosting-infrastructure/">reliable and accessible&lt;/a>, what next?&lt;/p>
&lt;p>More apps!&lt;/p>
&lt;h1 id="file-server">File server&lt;/h1>
&lt;p>&lt;a href="https://nextcloud.com/">Nextcloud&lt;/a> has a bunch of integrated offerings, but I mainly care about the central one: a solid file server for my personal cloud. This broadly takes over from my OneDrive and Google Drive, and is a single port of call for any documents and data I want to back up that don&amp;rsquo;t fall into other applications.&lt;/p>
&lt;h1 id="knowledgebase--notes">Knowledgebase &amp;amp; Notes&lt;/h1>
&lt;p>There are a lot of options out there for notetaking and personal knowledgebases. I landed on &lt;a href="https://triliumnotes.org/">Trilium Notes&lt;/a> for its hierarchical structure, quick navigation with commands, easy to use WYSIWYG editor, wide range of note types, and template support. It is one user per instance, so you&amp;rsquo;ll have to spin up more if anyone wants a separate one.&lt;/p></description><content>&lt;p>Now that my &lt;a href="https://danbat.es/posts/self-hosting-intro/">first apps&lt;/a> are &lt;a href="https://danbat.es/posts/self-hosting-infrastructure/">reliable and accessible&lt;/a>, what next?&lt;/p>
&lt;p>More apps!&lt;/p>
&lt;h1 id="file-server">File server&lt;/h1>
&lt;p>&lt;a href="https://nextcloud.com/">Nextcloud&lt;/a> has a bunch of integrated offerings, but I mainly care about the central one: a solid file server for my personal cloud. This broadly takes over from my OneDrive and Google Drive, and is a single port of call for any documents and data I want to back up that don&amp;rsquo;t fall into other applications.&lt;/p>
&lt;h1 id="knowledgebase--notes">Knowledgebase &amp;amp; Notes&lt;/h1>
&lt;p>There are a lot of options out there for notetaking and personal knowledgebases. I landed on &lt;a href="https://triliumnotes.org/">Trilium Notes&lt;/a> for its hierarchical structure, quick navigation with commands, easy to use WYSIWYG editor, wide range of note types, and template support. It is one user per instance, so you&amp;rsquo;ll have to spin up more if anyone wants a separate one.&lt;/p>
&lt;h1 id="audiobook-server">Audiobook Server&lt;/h1>
&lt;p>&lt;a href="https://danbat.es/posts/self-hosting-intro/">Liberating my music&lt;/a> got me thinking about other audio streams I&amp;rsquo;m reliant on a large corporation for. For quite a while I had an Audible plan I&amp;rsquo;d pause for 3 months, get billed for a month on, then pause for another 3 months. I&amp;rsquo;ve never been a serial audiobook listener, but I have 30-odd titles on the platform&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>.&lt;/p>
&lt;p>It&amp;rsquo;d be great to have full control of the audiobooks I purchased, and luckily &lt;a href="https://getlibation.com/">Libation&lt;/a> does just that, downloading and decrypting my audible library.&lt;/p>
&lt;p>The definitive audiobook streaming app seems to be &lt;a href="https://www.audiobookshelf.org/">Audiobookshelf&lt;/a>, and for good reason. It&amp;rsquo;s a solid streamer with online metadata matching, and quite a strong beta mobile app (at least on Android).&lt;/p>
&lt;p>Another nice feature is that it doesn&amp;rsquo;t have its own system for storing media, so any directory of Audiobooks you point it to should work with it.&lt;/p>
&lt;h1 id="ebook-server">eBook Server&lt;/h1>
&lt;p>I was also in the Kindle ecosystem for a few years, so it would be great to move over my books from there into something I own and control.&lt;/p>
&lt;p>&lt;a href="https://grimmory.org/">Grimmory&lt;/a> is an e-book server with all the bells and whistles you can really ask for. My killer features are OPDS (open publication distribution system) support&lt;sup id="fnref:2">&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref">2&lt;/a>&lt;/sup>, and an easy way to mass-input new books that they call a &amp;lsquo;bookdrop&amp;rsquo; folder. KOReader progress sync, online metadata matching, organisation into distinct libraries and shelves, and a competent (and customisable) built-in reader are all excellent for user experience too. It&amp;rsquo;s an insanely feature-rich application in this niche.&lt;/p>
&lt;h1 id="further-apps">Further apps&lt;/h1>
&lt;p>This setup ticks most of my boxes, but there&amp;rsquo;s always more to be done. These are the applications I&amp;rsquo;m looking at next:&lt;/p>
&lt;ul>
&lt;li>Collabora for online editing and collaboration of documents on Nextcloud.&lt;/li>
&lt;li>Dashy for a centralised dashboard for all my self-hosted apps. I&amp;rsquo;m not 100% certain I need this, but it&amp;rsquo;ll be interesting to try out.&lt;/li>
&lt;li>A Radarr/Sonarr stack including Jackett, qBittorrent (and a VPN, likely AirVPN), with Radarr importing Letterboxd lists.&lt;/li>
&lt;li>Learning Wireguard to work toward replacing Tailscale&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>You&amp;rsquo;ve made it to the end, thanks for reading this all! Please hit me up if you&amp;rsquo;d like to discuss anything self-hosting =)&lt;/p>
&lt;hr>
&lt;p>&lt;em>Edit 27/03/2026:&lt;/em>
So it looks like booklore got nuked by its maintainer on their way out&amp;hellip; so I&amp;rsquo;ve switched to the young successor project/fork Grimmory, and updated this post accordingly.&lt;/p>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>It&amp;rsquo;s how I first got into the Foundation, Witcher, and Bobiverse series. The latter of which is sadly an audible exclusive.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:2">
&lt;p>Which makes it super easy to get books onto my KOReader-running devices.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></content></item><item><title>Getting into Self-Hosting: Infrastructure</title><link>https://danbat.es/posts/self-hosting-infrastructure/</link><pubDate>Tue, 13 Jan 2026 19:39:00 +0000</pubDate><guid>https://danbat.es/posts/self-hosting-infrastructure/</guid><description>&lt;p>&lt;a href="https://danbat.es/posts/self-hosting-intro/">So I&amp;rsquo;ve got my photos and music syncing and streaming&lt;/a>, but there are a holes to patch before I can actually rely on these services:&lt;/p>
&lt;ul>
&lt;li>How safe is my data now? Not very, it&amp;rsquo;ll be safer with &lt;strong>Regular Backups&lt;/strong>&lt;/li>
&lt;li>How do I access my services when I&amp;rsquo;m not on the local network? I don&amp;rsquo;t - &lt;strong>A VPN&lt;/strong> would help.&lt;/li>
&lt;li>The first time I know a service is down is when I need to use it and can&amp;rsquo;t. &lt;strong>Container &amp;amp; connectivity monitoring&lt;/strong>&lt;/li>
&lt;li>And how will I know if I&amp;rsquo;m over-extending my little N150? &lt;strong>Real-time system resource monitoring&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>It&amp;rsquo;s time for some Infra!&lt;/p></description><content>&lt;p>&lt;a href="https://danbat.es/posts/self-hosting-intro/">So I&amp;rsquo;ve got my photos and music syncing and streaming&lt;/a>, but there are a holes to patch before I can actually rely on these services:&lt;/p>
&lt;ul>
&lt;li>How safe is my data now? Not very, it&amp;rsquo;ll be safer with &lt;strong>Regular Backups&lt;/strong>&lt;/li>
&lt;li>How do I access my services when I&amp;rsquo;m not on the local network? I don&amp;rsquo;t - &lt;strong>A VPN&lt;/strong> would help.&lt;/li>
&lt;li>The first time I know a service is down is when I need to use it and can&amp;rsquo;t. &lt;strong>Container &amp;amp; connectivity monitoring&lt;/strong>&lt;/li>
&lt;li>And how will I know if I&amp;rsquo;m over-extending my little N150? &lt;strong>Real-time system resource monitoring&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>It&amp;rsquo;s time for some Infra!&lt;/p>
&lt;h1 id="backups">Backups&lt;/h1>
&lt;p>I&amp;rsquo;m running a daily backup of everything on my server that&amp;rsquo;s annoying, difficult or impossible to replace via &lt;a href="https://duplicati.com/">Duplicati&lt;/a> over SSH to a &lt;a href="https://www.hetzner.com/storage/storage-box/bx11/">1TB Hetzner Storage Box&lt;/a>&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>.&lt;/p>
&lt;p>With this I don&amp;rsquo;t have to think about manual backups, nor automated ones since I have duplicati &lt;a href="https://docs.duplicati.com/detailed-descriptions/sending-reports-via-email/sending-reports-with-email">alert me with an email for backup failures&lt;/a>. Everything I&amp;rsquo;ve added or modified in the day will be backed up overnight, and if it isn&amp;rsquo;t, I&amp;rsquo;ll get a report in my inbox.&lt;/p>
&lt;h1 id="vpn-access">VPN Access&lt;/h1>
&lt;p>It&amp;rsquo;s been pretty unanimously agreed that a VPN is the safest way to access self-hosted services out and about. This is where my FOSS philosophy falls apart a bit as &lt;a href="https://tailscale.com/">Tailscale&lt;/a> is just an insanely easy to use freemium option. Being free for up to 3 users and 100 devices, and plenty of client support, it&amp;rsquo;s a no-brainer, at least until I commit to rolling my own Wireguard.&lt;/p>
&lt;h2 id="tls-certificates">TLS Certificates&lt;/h2>
&lt;p>Tailscale makes it easy to connect to my services, but the experience of accessing them still feels a bit second-rate because they&amp;rsquo;re all on HTTP, requiring an exception to be set in the browser the first time they&amp;rsquo;re accessed; as well as being on forgettable port numbers. All in all, having to visit something like &lt;em>192.168.1.123:12345&lt;/em> isn&amp;rsquo;t a great user experience, especially when regularly met with &amp;ldquo;Your connection is insecure&amp;rdquo; messages.&lt;/p>
&lt;p>What&amp;rsquo;ll fix all this is proxy with signed certificates and some nice clean subdomains for each service. I&amp;rsquo;ve found &lt;a href="https://nginxproxymanager.com/">Nginx Proxy Manager&lt;/a> to be of great utility for this. Adding new &amp;lsquo;proxy hosts&amp;rsquo; is a breeze, and it looks after my Let&amp;rsquo;s Encrypt certificate. All I had to do was point the base domain to my server&amp;rsquo;s local IP, and expose my server&amp;rsquo;s subnet to my tailnet (Tailscale&amp;rsquo;s name for a group of devices interconnected on their platform).&lt;/p>
&lt;p>Now I can visit for example &lt;a href="https://immich.mydomain.tld">https://immich.mydomain.tld&lt;/a> with zero friction.&lt;/p>
&lt;h1 id="monitoring">Monitoring&lt;/h1>
&lt;p>But what if any of these important containers crash? I&amp;rsquo;ll know about it since I&amp;rsquo;ve got &lt;a href="https://uptimekuma.org/">Uptime Kuma&lt;/a> monitoring all my containers via docker socket. If any are down for 5 minutes&lt;sup id="fnref:2">&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref">2&lt;/a>&lt;/sup> and fail 3 consecutive 1 minute health checks, I&amp;rsquo;ll get an email about it. This is all shockingly easy to configure in-app.&lt;/p>
&lt;p>What if my broadband goes down? I&amp;rsquo;m monitoring that too. Reachability to both google.com and bbc.co.uk should be a reliable signal as to whether I can connect to the open internet. Further keeping an eye on my ISP, I&amp;rsquo;ve got &lt;a href="https://docs.speedtest-tracker.dev/">Speedtest Tracker&lt;/a> running (hourly on an odd minute) to check what speeds and ping I&amp;rsquo;m actually measurably getting.&lt;/p>
&lt;p>With all these containers, it&amp;rsquo;s nice to have one dashboard where I can actually see what system resources are in use. So far &lt;a href="https://nicolargo.github.io/glances/">Glances&lt;/a> has been a pretty slick one-page app for this.&lt;/p>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>This is somewhat overkill since I&amp;rsquo;m only using about 10% of the total storage, but it&amp;rsquo;s fast and relatively cheap for fast remote storage. I had tried using Backblaze and similar competitors since they have a shockingly low price per terabyte, but I had repeated issues backing up to especially Backblaze due to their connectivity provider. I also wanted to see about finding a reliable and trustworthy european host, and Hetzner has ticked those boxes so far.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:2">
&lt;p>IMHO there&amp;rsquo;s no need to check more often than this, if something stays down that&amp;rsquo;s when I need to care about it. This isn&amp;rsquo;t a commerical application, the main user is me. And I&amp;rsquo;d rather not add more traffic, resource utilisation, and data from my monitoring that I arguably don&amp;rsquo;t need.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></content></item><item><title>Getting into Self-Hosting</title><link>https://danbat.es/posts/self-hosting-intro/</link><pubDate>Mon, 12 Jan 2026 10:00:00 +0000</pubDate><guid>https://danbat.es/posts/self-hosting-intro/</guid><description>&lt;p>So I got into self-hosting&amp;hellip;&lt;/p>
&lt;p>I like configuring things, and hate subscriptions, so I&amp;rsquo;d been thinking about it for a while.&lt;/p>
&lt;p>Hating subscriptions, to start I only had two to rid myself of: Google One Basic, and Spotify Premium (&lt;a href="https://www.moneysavingexpert.com/news/2025/10/spotify-premium-price-rises/">which got a bump in October&lt;/a>).&lt;/p>
&lt;h1 id="the-hardware">The Hardware&lt;/h1>
&lt;p>Looking for a small, quiet, power efficient box with easy storage expansion, I landed on the Bee-link Me Mini. It has an Intel N150 processor, a pretty common (and powerful for its size and efficiency) little chip for mini-PCs with a base power usage of 6W, six M.2 slots for NVMe SSDs, two 2.5Gig ethernet ports, and barely makes a sound with its single fan.&lt;/p></description><content>&lt;p>So I got into self-hosting&amp;hellip;&lt;/p>
&lt;p>I like configuring things, and hate subscriptions, so I&amp;rsquo;d been thinking about it for a while.&lt;/p>
&lt;p>Hating subscriptions, to start I only had two to rid myself of: Google One Basic, and Spotify Premium (&lt;a href="https://www.moneysavingexpert.com/news/2025/10/spotify-premium-price-rises/">which got a bump in October&lt;/a>).&lt;/p>
&lt;h1 id="the-hardware">The Hardware&lt;/h1>
&lt;p>Looking for a small, quiet, power efficient box with easy storage expansion, I landed on the Bee-link Me Mini. It has an Intel N150 processor, a pretty common (and powerful for its size and efficiency) little chip for mini-PCs with a base power usage of 6W, six M.2 slots for NVMe SSDs, two 2.5Gig ethernet ports, and barely makes a sound with its single fan.&lt;/p>
&lt;p>Despite the six slots, I actually don&amp;rsquo;t need a ton of storage right now, maybe 100GB at most. But when I do, for reliability it&amp;rsquo;s best to have identical drives, so I need a drive manufacturer I can assume will still be around in a few years. With this in mind, I landed on three 1TB MP4LL&amp;rsquo;s from Teamgroup which were going for just under £50 a piece from OverclockersUK in August.&lt;/p>
&lt;h1 id="the-operating-system">The Operating System&lt;/h1>
&lt;p>One of the things that gave me the confidence to get started with this project was HexOS, a beta NAS (network attached storage) operating system built ontop of TrueNAS Community Edition (formerly &amp;lsquo;Scale&amp;rsquo;), that seeks to provide an easy and flexible NAS experience. In retrospect, I&amp;rsquo;m probably in the camp of NAS-builders who could get away with learning TrueNAS, as I&amp;rsquo;ve spent the majority of my time using HexOS there rather than the HexOS &amp;lsquo;Deck&amp;rsquo;, but you live and you learn.&lt;/p>
&lt;p>TrueNAS (and by extension HexOS) has a nice pre-packaged &amp;lsquo;Apps Market&amp;rsquo; that can simplify docker container installation, though more often than not you&amp;rsquo;re just writing a docker-compose file as a form in their UI.&lt;/p>
&lt;h1 id="first-applications">First Applications&lt;/h1>
&lt;h2 id="photos-immich">Photos: Immich&lt;/h2>
&lt;p>My main use for Google One Basic is Google Photos, and &lt;a href="https://immich.app/">Immich&lt;/a> is an amazing drop-in self-hosted replacement. It&amp;rsquo;s pretty popular too, so you can generally find some nice CLI tools for working with it. One example being &lt;a href="https://github.com/simulot/immich-go">Immich-Go&lt;/a> which made importing my photos from Google Takeout pretty painless.&lt;/p>
&lt;h2 id="music-navidrome">Music: Navidrome&lt;/h2>
&lt;p>Replacing Spotify Premium was less obvious. It took me some time to figure out that I didn&amp;rsquo;t want to copy over my library and listening habits like for like. Long playlists with sometimes one song per artist, and letting the algorithm dictate how I discover music (song by song), had started feeling less appealing.&lt;/p>
&lt;p>Albums and Extended Plays are the intended listening experience for the most part, so I went through my library picking out every album I definitely wanted to have access to, and every album with at least 2 songs I knew I liked. In the end I had about 87 albums/EPs/singles to cover every song or group of songs I liked enough to listen to the rest of the album.&lt;/p>
&lt;p>Wanting to actually support the artists I enjoy, and own the music I pay for, I buy everything I can on Bandcamp, and download albums in .FLAC from there. When this isn&amp;rsquo;t an option, I&amp;rsquo;ll hop on Soulseek.&lt;/p>
&lt;p>Looking for an actively developed, solid music streaming server with open compatibility, I landed on &lt;a href="https://www.navidrome.org/">Navidrome&lt;/a>. It supports most of the OpenSubSonic API, supports scrobbling to Last.FM&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>, and just works well.&lt;/p>
&lt;p>For clients, I&amp;rsquo;m using Symfonium on Android, and Supersonic on Desktop.&lt;/p>
&lt;p>To keep ontop of song metadata and to fetch covers and synced lyrics, I&amp;rsquo;m using &lt;a href="https://picard.musicbrainz.org/">MusicBrainz Picard&lt;/a> with the &lt;a href="https://github.com/protodeniz/picard-sozler">&amp;lsquo;Picard Sözler&amp;rsquo;&lt;/a> plugin to grab synced lyrics if any are available.&lt;/p>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>&lt;a href="https://www.navidrome.org/docs/usage/external-integrations/">If you give it an API key in the environment variables&lt;/a>. You can find me as &lt;a href="https://www.last.fm/user/danbat-es">danbat-es&lt;/a> over there, and you may recognise my profile picture from &lt;a href="https://danbat.es/posts/raytracing/">a previous post&lt;/a>.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></content></item></channel></rss>