Skip to content

What's new at ElfHosted?

G'day, Wallabag! 🦘

Today's new app is an old open-source classic (which is still receiving regular maintenance, updates, and new features), Wallabag, an excellent, feature-full read-it-later app:

Screenshot of Wallabag

From the official site:

wallabag extracts the article's content (and only its content!) and displays it in a comfortable view. Moreover, wallabag is responsive: you can read your articles on your smartphone or your tablet.

If you already have data on Pocket©, Readability©, Instapaper©, Pinboard©, Firefox or Chrome, you can import your data into wallabag: add easily thousands of articles in your account.

Introducing Homepage

Hello, Homepage 🎨

Today's new app is an alternative dashboard, Homepage...

Screenshot of Joplin

Why do you need another dashboard, what's wrong with your default ElfHosted dashboard?

Probably nothing, but it's soooo pretty! Also, some of the app integrations are pretty sick! Unlike Homer, which hits the various APIs using your browser, Homepage runs a backend proxy, so it's much easier to configure it to talk to your other ElfHosted services, and much richer data can be retrieved.

For example, the Jellyfin integration will show you exactly what media is currently streaming, along with the expected summary of your library stats.

You can customize homepage by adding your own services (like the weather in your location, or the price of your favorite crypto), your own custom background, etc, and changes are effected instantly.

If there's popular demand, I'll add an option for Homepage to replace your default dashboard 👍

Bulk-transfer network load isolated from streaming / realtime apps

Our platform is built on Hetzner auction server nodes, each of which has unlimited bandwidth, but is physically constrained to a 1Gbps NIC. As we've been bringing more subscribers on board, we've started to see occasional poor performance from the streamers (Plex, Jellyfin, Emby), most likely due to congestion on these 1Gbps links.

When you look at the graph below, the problem is immediately apparent (note the change when our maintenance window started):

src="../../../assets/external/static.funkypenguin.co.nz/2023/Node_Exporter__Nodes_-_Dashboards_-_Grafana_2023-11-23_23-18-46.png"

So, today I added 5 more nodes to the cluster, to address two areas I felt were likely to become resource bottlenecks..

Radarr's at v5 now!

It turned out that due to changes in Radarr v4 compared to v5, our image wasn't passing testing, and so we didn't get the juicy new v5.0.3.8127 release a few weeks ago.

I was under the impression that v5 would support multiple resolutions for content, meaning a separate Radarr4K wouldn't be required anymore, but in the brief testing I've done so far, I've not been able to work out how to do this!

Anybody know how this works?

Notifications enabled on low ElfBuckz balances

A longstanding issue we've been dealing with is that the Wordpress plugin we use to provide ElfBuckz doesn't include the ability to notify users when their balance is running low. So unless you manually keep track of your ElfBuckz balance, you're at risk of having your services stop when your ElfBuckz run out, without notice! 😱

Since we recently fixed the deprovisioning bug, this has become even more important, so today I finally got my hands dirty and modified the plugin myself, adding the ability to notify users when their account balance goes low.

So.. you should now be alerted whenever your ElfBuckz balance drops below $1, which should give you plenty of time to arrange a topup (of course, once you subscribe to a top-up with the appropriate quantity, your ElfBuckz will "refill" every month, and you may never see these notifications)

Custom domains now available

Until today, all your ElfHosted services could only be served on https://<user>-<app>.elfhosted.com. After some development effort, we now have the pieces in place to allow you to access your apps on your own custom domain name, so instead of https://funkypenguin-uptime-kuma.elfhosted.com, you might prefer something like https://status.funkypenguin.co.nz (see how it works?)

The elfhosted.com URL will continue to work, and your dashboard will remain pointing to the ElfHosted link (in case the DNS record goes away again).

How do custom domains work? 🙋‍♂️

How does this work? Like GitHub Pages, if you create a DNS CNAME record on your domain (mattermost.spankypants.com) and point it to your ElfHosted URL (spankypants-mattermost.elfhosted.com), we can request a LetsEncrypt certificate for that domain, validate it, and serve your app on that URL using our Traefik ingress controller.

Which apps can get custom domains?

Custom domains don't make sense for all apps, and I've not tested the impact on SSO (since auth cookies are domain-based), but as I add the option to apps, you'll find custom domains available at https://store.elfhosted.com/product-category/custom-domains/, and instructions added to the docs for the various apps.

For example, here are the instructions for using a custom domain with Uptime Kuma!

Notifiarr notifies again!

Today we found a bug which has existed since our code was originally Seedplicity, which prevented the Notifiarr client UI from properly authenticating you, a necessary step towards configuring notifications for local services such as Radarr, Jellyfin, etc.

If you're unfamiliar with Notifiarr, it's worth a look - check this out:

Tada, it's Tdarr! 🎉

I was trying to catch up on my 1080P movie backlog on my laptop recently, only to discover that Jellyfin would transcode the movie since the 5.1 audio track apparently won't work on modern Firefox on my modern Macbook (grr, why? 🤦‍♂️)

Rather than just watching on my nVidia Shield (which plays everything I throw at it), I instead spent about 6 hours (I never even got to watch the movie!) adding Tdarr to our platform, with a mind to having a 2-channel audio track added to my existing media.

So, we now have Tdarr available! 🥳 It works as advertised, although it turns out to be quite tricky to configure, and even trickier to make work with the Quick Sync Video hardware transcoding support in our 9th-gen Intel nodes.

Screenshot of Tdarr

A few peculiarities to our implementation:

  1. While Tdarr can support multiple, distributed worker nodes, we just use one worker node, paired with the Tdarr server, for easy resource isolation, and because our transcoding "scratch" volume is actually a 200Gb ephemeral NVMe-backed disk, which only exists for as long as the pod does.
  2. We don't actually want to significantly increase our CPU usage across the platform - rather, we want to leverage Tdarr for spare capacity on hardware-based transcoding. Each Tdarr pod has minimal CPU, and enough RAM to run the server, plus one hardware transcode, but will crash and restart if trying to do more than one transcode in parallel (because mooar transcodes requires mooar RAM)

I've pre-configured a working Tdarr setup, so you won't be starting from scratch when configuring it, and I've added more specifics to the app page.

Get your 24h trial / subscription at the store!

What will we do about Plex blocking Hetzner IPs?

Plex recently sent notices to users hosted on Hetzner IP ranges, indicating that from 12 Oct 2023, their hosting provider will be blocked.

Although the letter didn't mention Hetzner by name, it's pretty clear that they're the target, presumably due to their affordable (woo!) pricing, and the prevalence of "Plex Shares" services using it.

This presents an issue for ElfHosted, since we're using Hetzner for the same reasons (the price is nice).

Luckily (ironically) due to Hetzner's infamous zero tolerance of DMCA notices, we've already built out the infrastructure to add VPNs to pods, and allow users to "BYO VPN". This is how our torrent clients work - you've got to bring your own VPN credentials to play.

So, come 12 Oct, when Plex blocks Hetzner's IP ranges, it may be necessary to BYO VPN in order to keep using your Plex instance.

Worst-case, if you're a Plex user who wants to continue beyond 12 Oct, you'll want to cancel your Plex subscription, and add one of the Plex BYO VPN alternatives from the store.

Of course, the other solution would be (like half of r/selfhosted currently), to loudly bemoan Plex's behaviour, and rage-switch to Jellyfin or Emby ;)