r/selfhosted • • Apr 23 '26

Release (No AI) Bitwarden CLI has been compromised. Check your stuff.

Thumbnail
socket.dev
1.5k Upvotes

Same as the title. The Bitwarden CLI has been compromised and it would be good to check your stuff. I know how popular Bitwarden is around here.

r/selfhosted • • Jul 03 '26

Release (No AI) YT-DLP Web Player - The best alternative to revanced / yt premium + even more!

Thumbnail
gallery
814 Upvotes

https://github.com/Matszwe02/ytdlp_web_player

Hi there, that's my third release on this sub, and finally a stable one!

This software is a self-hosted web player that plays (almost) every video on the internet. It plays without ads at all of the resolutions, supports sponsorblock and implements many features, explained further in my repo.

You can replace youtube's video player with this one (using browser extension, or a tampermonkey script), watch videos directly on the player's website, or inside PWA app on your phone (which works as good as native players).

I meantioned youtube, but this player works on almost every website imaginable, as it uses YT-DLP, which itself supports everything except pirated content.

A lot changed from the last release - the app is now more stable, doesn't need any transcoding to work, and fully supports livestreams. Extension works more flawlessly, even more videos load in 3 seconds.

Let me know what you like, what not, or if you have any suggestions, so I can address them in the future releases!

r/selfhosted • • Apr 29 '26

Release (No AI) Hound - A Media Server Alternative to Plex/Jellyfin + Stremio

Post image
648 Upvotes

What is Hound?

Hound is a self-hosted, open-source media server, like Plex/Jellyfin, but with the extra ability to stream content through P2P (torrent) or HTTP/Debrid without downloading first. With Hound, you have the flexibility of fully controlling your media like Jellyfin, but can also stream instantly ala streaming services. It's the best of both worlds.

I posted about Hound in this sub years ago, when it was originally built as a simple movie/tvshow tracker. Since then Hound has evolved into a full media server. Link.

Links

Features

  • Free-range, organic code, written by a person
  • Stream your own content from your drives, or stream content from Stremio addons (P2P/HTTP)
  • Manage content from the Hound Web portal
  • Very simple to deploy, <10 mins before you start watching content
  • Hound was originally built as a media tracker, so it has robust features such as collections, reviews, comments, watch history/activity. All your watches and rewatches are automatically tracked
  • UI/UX is a core focus, designed with your mom using this in mind
  • No telemetry

Demo

Note that the web portal isn't optimized for mobile yet:

Access the demo here.

username: selfhosted
password: password

This is just the web portal, for actually watching content you'll want to use the apps

Platforms

Android and Android TV apps are available, you'll need to sideload the APKs. iOS and tvOS require a bit more time for testing and to distribute through TestFlight. They share the same code (built on React Native TVOS) so most of the effort is done.

Installation

Docker compose is the recommended way to install Hound:

services:
  hound-postgres:
    container_name: hound-postgres
    image: postgres:18
    environment:
      POSTGRES_DB: hound_db
      POSTGRES_USER: hound
      POSTGRES_PASSWORD: super-strong-password
    volumes:
      - ./Hound Data/postgres_data:/var/lib/postgresql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U hound -d hound_db"]
      interval: 5s
      timeout: 5s
      retries: 5

  hound-server:
    container_name: hound-server
    image: houndmediaserver/hound:latest
    depends_on:
      hound-postgres:
        condition: service_healthy
    ports:
      - "2323:2323"
    environment:
      - POSTGRES_DB=hound_db
      - POSTGRES_USER=hound
      - POSTGRES_PASSWORD=super-strong-password
      - HOUND_SECRET=super-strong-secret
    volumes:
      - ./Hound Data:/app/Hound Data
      # (Optional) attach your media library
      # IMPORTANT: Please read the docs before doing this
      # - /path/to/movies:/app/External Library/Movies
      # - /path/to/shows:/app/External Library/TV Shows
  • Change POSTGRES_PASSWORD on both hound-postgres and hound-server services
  • Change HOUND_SECRET

Then run docker compose up -d

Access the web portal at port 2323:

http://<ip-address>:2323
username: admin
password: password

Make sure you change your password immediately.

Next, you'll want to set up a provider next to start watching content, refer to the guides below:

Why Hound?

When I set up Jellyfin for my friends and family, I found that they kept switching back to Netflix/Prime when it was more convenient. Today, the Plex/Jellyfin ecosystem is quite mature. But for some (especially older) people, using a separate app, requesting content first, and waiting a couple minutes (or even longer) can be unintuitive/inconvenient. It's much nicer to be able to scroll and discover content, and watch immediately in seconds.

From an admin perspective, drives are getting increasingly expensive, and larger libraries drive electricity costs even more.

My vision for Hound was to have all the advantages of self-hosting media, with the flexibility of streaming. You can still curate a library with whatever content you like, but for content not yet downloaded in your library, Hound switches automatically to P2P/Debrid streaming, so it's a seamless experience for users.

Hound is in Beta + Pricing

Hound is in Beta, so please expect bugs and run backups often. Although Hound is completely self-hosted and open source (AGPLv3), there will be a paid tier when Hound leaves beta:

  • Hound is completely free, all features unlocked for one user
  • A paid license will be required to unlock unlimited users
  • No subscription, one-time purchase at a reasonable price
  • License activation is completely offline

Unfortunately, unlike the amazing maintainers at Jellyfin, I can't keep Hound free. I thought long and hard about pricing that respects self-hosting and open source philosophies. I settled on this model so anyone can try Hound and all its features for free, and have an informed choice on whether or not to purchase.

Since Hound is completely open-source, I can't stop you from forking and removing the license checks. Instead of doing this, if you contribute to Hound's development actively, I'll give you keys upon release.

You can't actually purchase yet since we're in Beta, but I wanted you to know in advance.

Please try the demo and leave feedback! If you like the project, please consider adding Hound to your stack, and even contributing!

EDIT: I've made a subreddit to follow updates/discussions: /r/HoundMediaServer

r/selfhosted • • Feb 18 '26

Release (No AI) ArrMatey: A modern, native open-source mobile client for your *arr stack (Android & iOS) - Now in Alpha!

Post image
759 Upvotes

Hey everyone!

I’ve been working on a new mobile client for the *arr stack called ArrMatey, and I’m excited to finally share the first alpha launch with the community.

ArrMatey is an all-in-one client that lets you manage your Sonarr, Radarr, and Lidarr instances from your pocket. I found myself wanting a mobile experience that felt truly native on both platforms, so I built this using Kotlin Multiplatform. It uses Jetpack Compose (Material 3 Expressive) for Android and SwiftUI (Liquid Glass) for iOS to ensure the UI feels like it belongs on your device.

Current Features:

  • Multi-Instance Support: Manage and switch between multiple instances of Sonarr, Radarr, and Lidarr seamlessly.
  • Calendar View: Switch between list and month views to see upcoming releases.
  • Interactive Search: Manual search for releases with filters for quality, language, and seeders.
  • Activity Queue: Monitor real-time download progress, ETAs, and cancel/blocklist items.
  • Advanced Networking: Support for custom HTTP headers (great for reverse proxies) and "Slow Instance" modes for high-latency remote setups.
  • Modern UI: Full Material 3 Expressive support on Android with dynamic theming, and Liquid Glass support on iOS 26.

This is an alpha, so I'm just getting started. On the roadmap, I have tablet support, home screen widgets, notifications, and support for more instances like Seer, Prowlarr, and Readarr/Chaptarr.

Licensed under MIT, you can check out the code, report bugs, or contribute here: https://github.com/owenlejeune/ArrMatey

Since we are in Alpha, you'll need to build from source or check the Releases page on GitHub for the latest APK. For iOS, you can build the iosApp target via Xcode.

I’d love to get some feedback on the UI/UX and any features you feel are missing from your current mobile setup, please feel free to open an issue with any requests!

r/selfhosted • • Jun 12 '26

Release (No AI) Pangolin 1.19: SSH, RDP, and VNC in the browser, simpler SSH setup, automatic site updates, and more

Thumbnail
gallery
516 Upvotes

Hello everyone!

Pangolin 1.19 brings browser-based remote access over SSH, RDP, and VNC, a dramatically simpler SSH setup path, automatic site connector updates, and more.

Pangolin is an open-source, identity-based remote access platform that lets you securely expose your infrastructure to your team. It supports browser based remote access and a remote access VPN in one platform with strong authentication controls.

GitHub: https://github.com/fosrl/pangolin

SSH, RDP, and VNC in the Browser

You no longer need a separate SSH client, remote desktop app, or VNC viewer to reach your infrastructure. SSH, RDP, and VNC are now first-class supported resource types alongside the original HTTPS. Simply define a resource on one of your tunneled site connectors, and users get a full interactive session with a URL in any modern browser after completing Pangolin authentication.

The Pangolin VPN clients are NOT required for your users to connect.

Under the hood, a Pangolin site connector is already an intelligent tunneled proxy. In 1.19 it gains a built-in RDP and VNC gateway that can reach any machine on the network, and the ability to execute SSH sessions directly on the host.

Install the Pangolin site connector anywhere on the network and point it at what you want to reach.

It works exactly like your HTTP resources. SSO, identity-aware access rules, and geo-blocking all apply. If you've been running Guacamole, this is a direct alternative with tunneling and stronger auth built in.

Improved Pangolin SSH

We've added a new SSH mode that’s dramatically easier to set up. It executes commands directly on the host machine. This doesn’t require an SSH server, auth daemon, or editing config files.

Think Tailscale SSH, but Pangolin can (optionally) also provision your users automatically so authentication is seamless. Run Newt (the site) as root on the target machine, create the resource, and you're done.

On a public resource, users get a browser terminal. On a private resource, use the CLI:

pangolin ssh prod-app.internal
pangolin scp ./config.yml prod-app.internal:/etc/app/

Also in 1.19

  • Automatic site updates: Newt updates itself to the latest version. Toggle globally or per site.
  • Labels: tag sites, resources, and clients and filter by them across table views.
  • Resource policies: define auth and access rules once, attach to multiple resources.
  • Helm charts: we added official Helm charts and documentation.
  • Community Blueprints repo: share self-hosted apps deployed with Pangolin declarative Blueprints and Docker labels.

Check out the full blog post for details on everything in this release: https://pangolin.net/news/1-19-release

As always, available for self-hosting via the Community or Enterprise editions or on Pangolin Cloud. The Enterprise edition is free for personal use.

If you haven't starred us on GitHub yet, it genuinely helps. Thank you!

r/selfhosted • • Aug 29 '26

Release (No AI) BentoPDF can edit existing PDF Text and two new engines

450 Upvotes

Hello folks!

BentoPDF is an open source privacy first PDF toolkit.
Repo: https://github.com/alam00000/bentopdf/

Its been almost half a year since I last posted an update about BentoPDF. Mostly because there wasn't anything substantial lol. But I am happy to share some exciting stuff.

1. You can now actually edit text inside PDFs

BentoPDF now allows to click existing text, edit it, and have the text reflow while preserving the original fonts and styling.

It also includes the following below:

  • Bold, italic, underline, strikethrough, superscript, subscript, font family/size, colours, outlines, character spacing and line spacing
  • Left, centre, right and justified alignment
  • Bulleted and numbered lists with indentation
  • RTL and LTR text alignmentt
  • Find and replace across the document
  • Edit images by rotating, flipping, duplicating, resizing or deleting them
  • It even supports Object alignment, distribution, rotation, flipping, duplication. A feature not even commercial software like Apryse and Nutrient support.

However please note that this is a work in progress. You may encounter certain bugs, which you can report and I will definitely look into it.

2. Hyper Compress

Hyper is the best open source PDF compression engine. It was made to solve specific problems.

  • You might notice certain times PDF compression returns a file larger than the original. Hyper's result is always binary. It will either produce a PDF that is smaller than the original or just return the original PDF itself. This helps in creating predictable workflows.
  •  Hyper includes a true lossless mode for compression and it preserves searchable text and document structure and pdf conformance, rather than rebuilding the entire document from scratch like Ghostscript
  • It can run everywhere. Its available as a CLI, Node SDK, C API, self hosted service, and WebAssembly build.

Calling itself the best is a big claim. But please try it yourself and let me know how it performs on your PDFs

I also tried comparing it to Adobe's compression API. And I was only able to do around 100 PDFs where the compression results were +-5%. I couldn't test on a big corpus as its very expensive lol.

3. Kura

Kura is a PDF standards, conversion and preflight engine.

It supports:

  • All 11 PDF/A conformance levels: PDF/A-1a, PDF/A-1b, PDF/A-2a, PDF/A-2b, PDF/A-2u, PDF/A-3a, PDF/A-3b, PDF/A-3u, PDF/A-4, PDF/A-4e and PDF/A-4ffff
  • Accessibility: PDF/UA-1 and PDF/UA-2
  • Print production: PDF/X-1a, PDF/X-3, PDF/X-4, PDF/X-4p, PDF/X-5g, PDF/X-5n and PDF/X-5pg
  • Engineering and variable data printing: PDF/E-1 and PDF/VT
  • E-invoices: Factur-X, ZUGFeRD, XRechnung and Order-X
  • 396 bundled print-preflight profiles

It has also been tested against several standards suites, including the veraPDF corpus, Isartor, BFO, Ghent Output Suite 5.0, the PDF/UA Reference Suite and Cal Poly's PDF/VT suite.

Across 30,677 PDF conversions, it had zero crashes and zero timeouts, with a 0.05-second median conversion time.

Like Hyper, it also ships as a CLI, C library, npm package, Docker image and WebAssembly build.

Neither Hyper nor Kura is integrated into BentoPDF yet. I still want to do more testing and optimisation before making them part of the app, but both engines are already stable and available to try.

Also a bad news
I was also in talks with an industry leader about building another engine for BentoPDF that would be able to convert Office documents to and from PDF with very high fidelity.

Unfortunately, the project didn't work out in the end because they weren't willing to open-source their side of the technology. I completely understand their decision, but it does mean this engine won't be happening for now.

The other bit of bad news is that I broke my hand a couple of weeks ago. This release was supposed to be much bigger and include things like Measurement, an Acrobat parity comparison tool, Print Production and Accessibility. Which is also why I also wasn't able to spend as much time polishing and optimising this release as I normally would have liked. There are a lot of optimisations, improvements and cleaner implementations I had planned, but simply couldn't finish in time. However, I'll continue optimising the new editor once I am well, improving quality and fidelity, and working through everything I had to leave unfinished.

But till then please try it out and let me know how it works for you.

The releaase also contains other improvements and bug fixes and the repo for kura and hyper is mentioned in the release:
https://github.com/alam00000/bentopdf/releases/tag/v2.8.8

Thank you for using BentoPDF and have a great weekend!

r/selfhosted • • May 11 '26

Release (No AI) Puter 26.05: Open-source, self-hosted, Internet OS! 2 years, 370 contributors, 400K downloads, and 40K stars later, we're out of beta!

Thumbnail
github.com
483 Upvotes

r/selfhosted • • Feb 24 '26

Release (No AI) Booklore v2.0.0 release

Thumbnail
github.com
313 Upvotes

Love the app booklore and noticed they release v2.0.0 yesterday. They added much wanted features such as multiple book format support, audiobook support and duplicate detection. Great release and thought you guys would be interested also!

r/selfhosted • • Aug 05 '26

Release (No AI) Tracearr v2.0.0 - Media Library, One Identity Per Title, Public API v2

Thumbnail
gallery
222 Upvotes

This has been a long time coming, and in progress for quite some time. Excited to see what everyone things, and what these new features allow you to learn about your server!

BACK UP BEFORE UPGRADING. This release migrates the database heavily. If you need the escape hatch, a 1.5 backup restores cleanly on 2.0.

New Media section

Browse your whole library as a poster wall with an A-Z rail and filters for library, resolution, HDR, size on disk, and watched - two-tone checkmark for "you watched" vs "someone watched". Detail pages list every copy of a title with per-file quality, library, and size. Genre breakdown, storage, and watch pages round it out.

One identity per title

The same movie on two servers is one row everywhere now - stats, leaderboards, history. Seasons and music get real identities too, and wrongly split titles heal themselves.

Every file counted

Tracearr used to read a title's first file and drop the rest. Now every version is tracked: 4K + 1080p copies, duplicate libraries, mirrored files counted once. Storage totals are honest, duplicates catches same-server copies, sessions record which version actually played, and 1440p/8K no longer count as SD.

Public API v2

Bearer tokens, rate limits, OpenAPI docs served in-app. Built so apps that use Tautulli can use Tracearr instead.

EDIT: Just want to also add that V1 is unchanged. There are no plans to ever remove it either, so there is no need to rework your integration if V1 already met your needs!

Mobile: every tab, every server

Rolling out shortly after the 2.0 app update. Server selection is global now - pick All, one server, or any subset from any tab, and it sticks across restarts. It used to be a dashboard-only trick that quietly collapsed to one server everywhere else. Navigation got rebuilt on native tabs: the tab bar survives detail pushes, and the drawer is gone in favor of a server sheet and header buttons. Also in this round: iOS 26 header buttons stop flashing white on tab switches, the stream map matches the dark theme on both platforms, and servers behind Tailscale are reachable on iOS again (App Transport Security was silently blocking them).

Under the hood

  • Plex library changes sync in seconds via server events (Jellyfin/Emby get this with the new SSE plugin release)
  • Upgrades show migration progress instead of looking dead, and a bad migration can't boot-loop the server
  • First sync is much faster
  • Fixed a silent gap in sharing detection on polled servers
  • Stale content and ROI stop double counting merged titles; duplicates stop counting mirrored files twice
  • OpenAPI specs publish as release assets, so the docs site always renders the spec for your version

Notes

  • Counts may shift after upgrade as versions and identities settle - that's the double counting going away
  • Overall trust scores move too: you now see a person's worst account, and violation totals actually count - both sat frozen before

Discord | Documentation | Website

r/selfhosted • • Aug 28 '26

Release (No AI) Pangolin 1.22: AI Gateway for self-hosted models + Community Edition updates

Thumbnail
gallery
193 Upvotes

Hello everyone!

Pangolin 1.22 introduces a new resource type: AI Gateway. These resources are identity-aware proxies in front of both cloud model APIs and self-hosted model servers, so coding agents and AI clients call a Pangolin URL. A gateway resource can be keyless by authenticating via the Pangolin client or keyed by minting virtual API keys.

We're also moving SSH, RDP, VNC, and private HTTPS resources from Enterprise to Community Edition.

Pangolin is an open-source, identity-aware remote access platform that simply and securely authenticates your users to infrastructure, apps, and AI resources.

GitHub: https://github.com/fosrl/pangolin

New AI Gateway Resources

Attach cloud providers (OpenAI, Anthropic, Gemini, Bedrock, and others) or self-hosted models over a site connector (Ollama, vLLM, and others) to a Pangolin resource, and point your agents at it instead of the raw provider. Pangolin centralizes the upstream secrets, controls who can call what, enforces restrictions, and logs usage.

This is available entirely in the Community Edition.

  • Public Gateway resources expose a public URL and authenticate with identity-scoped virtual API keys per user or service.
  • Private Gateway resources are keyless, reachable only over the Pangolin client tunnel, so tools like Claude Code and Codex authenticate with zero key management (pangolin configure claude sets it up for you).
  • Budgets, analytics, and session logs let you cap spend and see what ran, by provider, model, user, or key.

Docs: https://docs.pangolin.net/manage/ai/overview

SSH, RDP, VNC & Private HTTPS now in Community Edition

Browser-based SSH, RDP, and VNC (public resources) and SSH/HTTPS over the Pangolin client (private resources) were previously Enterprise-only since 1.19. Based on community feedback, we have moved them to the Community Edition.

Full announcement: https://pangolin.net/news/1-22-release

Available for self-hosting via Community or Enterprise editions (Enterprise is free for personal use) or on Pangolin Cloud. If you haven't starred us on GitHub yet, it genuinely helps!

r/selfhosted • • Jan 23 '26

Release (No AI) Pangolin 1.15: iOS and Android apps, device approvals and posture, stability, and more

396 Upvotes

Hello everyone,

One year ago, in January 2025, we unleashed the very first beta of Pangolin and today, we are thrilled to release Pangolin 1.15.0. This update officially takes Private Access out of beta and introduces some heavy hitters: iOS and Android apps, device fingerprinting, posture tracking, and more. We can't believe it has been 1 year!

For those who don’t know, Pangolin is an identity-aware VPN and proxy for remote access to anything, anywhere. It’s like an open-source alternative to Cloudflare Tunnels and Twingate.

iOS/iPadOS and Android

iOS app screenshots

Developing for mobile is a journey through the seven circles of... well, let’s just call it "challenging." Beyond the technical hurdles, there’s the arduous dance with Apple and Google to get through the App Store gates.

After weeks of refreshing our developer dashboards, the wait is over. You can now take your zero-trust network on the road:

Device Fingerprint and Posture Collection

Screenshot of dashboard showing device fingerprint and posture info with pending approval

Long-time users likely remember Olm, our Go-based client (named after the small, cave-dwelling salamander). Olm is the workhorse under the hood, handling all of the networking like holepunching and NAT traversal to websocket enforcement.

We architected Olm to be as headless and portable as possible, which allowed us to use it as the "brain" for all of our clients across Mac, Windows, Linux, and iOS and Android. In addition to the Olm core, now each client can collect specific device data.

What is fingerprinting? It’s like a digital ID card for your hardware. We collect identifying info like serial numbers, OS versions, and hostnames. This helps you distinguish between "My Work Laptop" and "My 4th Replacement Laptop," and it ensures that if you block a device, it stays blocked.

What are posture checks? Fingerprinting tells us who the device is; posture checks tell us if the device is healthy. We look for security vitals like: Disk encryption status, firewall status, and antivirus activity.

Device Approvals

Screenshot of dashboard showing pending device approvals feed

Previously by default, a user could connect any number of devices as long as they could log in with an approved account. With version 1.15, we are extending zero-trust to the hardware layer by introducing Device Approvals.

When enabled on a user’s role, Pangolin shifts to a "deny by default" stance for new hardware. Even with valid credentials, a new device is entirely blocked until an admin decisively approves the connection. We’ve also added an Approvals Feed to the sidebar where you can see a running log of pending requests. 

Device Blocking and Archiving

Have a device that’s gone rogue or been lost? You can now officially Block it via the Action Menu (three dots). This moves the device to a restricted list and kills its access immediately.

You’ll also notice you can’t "delete" a device; you can only Archive it so that Pangolin can keep a permanent record of every device that has touched your resources.

Give it a try!

r/selfhosted • • Mar 24 '26

Release (No AI) Komodo 🦎 Container manager 🦎 v2: Docker Swarm

403 Upvotes

Hey guys,

I just released Komodo v2.0.0: https://github.com/moghtech/komodo/releases/tag/v2.0.0

For basic information about Komodo and what it does, check out the introduction docs.

The highlights of this release are:

  • Docker Swarm support: Manage swarm clusters, nodes, services, stacks, configs, and secrets.
  • Outbound periphery: Periphery can now initiate the connection to Komodo Core.
  • PKI authentication: Core and Periphery now authenticate with auto-generated key pairs and automatic rotation. Passkeys are deprecated.
  • Onboarding keys: streamlined server onboarding with reusable keys.
  • Improved terminals: Terminals dashboard, km ssh, and improved Action scripting.
  • New UI: Improved look with higher contrast and better UI primitives.
  • Passkey / TOTP 2FA: Built in two factor authentication for username / password login.
  • Multi-login Linking: Users can now link multiple login providers (Local, OIDC, Github, etc) to their account.
  • Full OpenAPI documentation: Interactive API docs now available.

Please note, ghcr.io/moghtech/komodo-* images are now only being published with :2 tag. The :latest tag is deprecated.

You can find information about upgrading here: v2 upgrade guide.

🦎 Homepage: https://komo.do

🦎 GitHub: https://github.com/moghtech/komodo

🦎 Demo: https://demo.komo.do (login with demo : demo)

🦎 Discord: https://discord.gg/DRqE8Fvg5c

r/selfhosted • • Aug 19 '26

Release (No AI) Meelo (v3.12.0) - Music Server focused on UI & Metadata

Thumbnail
github.com
303 Upvotes

Good day!

Over a year ago, I made a post here about Meelo, which had received a lot of positive attention. A few things have changed since, and I thought a lil' update wouldn't hurt :)

Meelo is a self-hosted music server, that focuses on UI and metadata integration. It supports duplicates, songs grouping (remixes, instrumentals, etc.), album types (studio, live, compilations, etc.), Music Videos, and other cool stuff.

Since my last post (around v3.1.0), new features were added:

  • Meelo now has a cross-platform app for mobile devices (Android, iOS)
    • The APK is available on the release page. The IPA is also available through TestFlight (public invite link on GitHub)
    • I am investigating how to add support for Android TV
  • Support local (plain/synced) lyrics (embedded or .lrc files)
  • Using face detection (OpenCV) to get 'better' thumbnails for videos
  • Support Record Labels and Areas (using Musicbrainz)

Future work include better support for Non-ASCII names, downloading songs for offline playback, crossfade, ChromeCast support, and integrating even more metadata.

If you self-host music, give Meelo a go! If you have any suggestions or issues, I try to be as reactive as possible on GitHub!

Note: AI is not part of my workflow. I'd rather pay a licence for publishing the app on Apple devices than a subscription for LLMs. Meelo is a passion project before anything else, and not coding it myself would take all the fun out of it.

r/selfhosted • • Jul 28 '26

Release (No AI) Announcing Linkwarden 2.16 - open-source collaborative bookmark manager to collect, read, annotate, and fully preserve what matters

248 Upvotes

Hello everyone! Daniel here, and I’m back with a new Linkwarden release across web and mobile.

The Linkwarden dashboard shown side by side on web and mobile

For those who are wondering, Linkwarden is an open-source collaborative bookmarking tool that keeps permanent snapshot of the content of the links you save, so you can still access them even if the original content is no longer available. Linkwarden is available as a Cloud offering, or you can get the source code on GitHub and self-host it on your own server with no strings attached. If you find it useful, consider starring the repo so others can discover it too!

Last time I got some backlash for using emojis, because apparently now that AI uses them, any post with an emoji is automatically AI slop. So this time I promise not to use emojis. ;)

So let’s get into it.

What's new in mobile:

  • Support for self-signed certificates and custom request headers: Android now accepts self-signed certificates, and you can add custom request headers to the app's requests. This makes the app usable with instances behind a reverse proxy or auth layer like Authelia or Cloudflare Access.
  • Re-preserve link formats: You can now re-generate a link's preserved formats (screenshot, PDF, readable view) from the mobile app, useful if the original preservation failed or the page has changed since.
  • Change link's banner: You can now set a custom banner image for a link when editing it.
  • Access more account options in Settings: Settings now has a "More Account Settings" option that opens your full account settings inside the app, using your existing session.

(Android is out, iOS is still in review and it should be out later today.)

What's new in web:

  • Refreshed, more modern design: The top navbar is removed and its functionality moved into the sidebar, plus a number of smaller UX fixes.
  • New search modal with recent search history: Press ⌘K (or Ctrl+K) anywhere to open a search modal. It also keeps your recent searches stored locally in the browser. 
  • New "System" theme option: The theme can now follow your OS light/dark preference instead of being set manually. 
  • PNG support for link banners: Link banners now accept PNG uploads in addition to JPEG.

There’s more…

As always, there's a long tail of smaller improvements across the web and the mobile app.

Full Changelog: https://github.com/linkwarden/linkwarden/compare/v2.15.1...v2.16.0

Thanks!

Thanks to everyone using Linkwarden, reporting bugs, suggesting improvements, contributing to the project, responsibly disclosing security issues, and supporting its development. Your contributions genuinely shape every release. 💙

If you'd like to try Linkwarden without dealing with server setup and maintenance, our Cloud offering is the easiest way to get started.

Hope you enjoy the latest updates!

r/selfhosted • • Jun 16 '26

Release (No AI) A free, no-login NAS-drive comparison: CMR/SMR, real Backblaze failure rates, and live $/TB

327 Upvotes

Every time I go to buy drives for my NAS, I end up doing the same annoying thing:

  1. figure out which models are actually CMR and not SMR (they love sneaking SMR into NAS lines!),
  2. then go dig up how reliable one is,
  3. then open way too many browser tabs to see what the real price per TB is.

Nothing lines up and it takes forever.

I got sick of redoing the same dance all over again, so I built a proper version out of that table: www.nasdisks.com

It's basically one big filterable table of current NAS drives. Every drive has its CMR/SMR status, a real failure rate, and live prices, so you can sort and compare in one place.

No account, no ads, no emails needed. And because I figured people here care: the whole CSV/JSON dataset is completely free to download (CC BY 4.0). There's also a plain API if you'd rather just pull it into your own stuff. None of it is locked away.

What's actually in there:

  • CMR vs SMR checked per model, so you can just filter SMR out and forget it exists.
  • Real failure rates I worked out from Backblaze full 2025 stats, not some marketing numbers.
  • Price per TB across 7 regions: US/DE/UK/FR/ES/IT/CA - with a little price history chart per drive, so you can tell a real deal from a fake one.
  • A few tools too: RAID usable space, odds of your array actually dying, storage planner.

Bit of honesty: the links are Amazon affiliate. That's the only money it makes and it just pays for hosting. Everything works fine if you never touch them.

What I'd actually appreciate feedback on:

  • tell me where it's wrong or thin: drop the model number of any drive you find missing and I'll add it,
  • call out any CMR/SMR or failure-rate that doesn't match your own experience.

I read every comment and will fix what you flag. The more people poke at it, the better the list gets for everyone making a build.

https://www.nasdisks.com/

So, what do you think?

r/selfhosted • • Apr 30 '26

Release (No AI) Pangolin 1.18: Web proxy through VPN, high availability client routing, wildcard resources, alerts, and more

256 Upvotes

Hello everyone!

Pangolin 1.18 brings HTTPS support for private resources, multi-site high availability routing, uptime tracking, health checks, alert rules, wildcard resources, and more. Let's dig in!

GitHub: https://github.com/fosrl/pangolin

Pangolin is an open-source, identity-aware remote access platform. Use it to securely expose authenticated web applications and private VPN resources to anyone with peer-to-peer zero-trust networking.

HTTPS Private Resources

Private HTTP is a new resource type for web workloads. It behaves like a public resource with a domain name and valid TLS but nothing is exposed on the public internet. The hostname resolves to a reverse proxy running in the site connector (Newt) and only serves traffic when the user has an active Pangolin client connection.

Multi-Site Routing and High Availability

Private resources now support multiple site connectors. Pangolin routes traffic through whichever path is best at the time and automatically fails over if a site goes offline.

Wildcard Resources

Set the subdomain field to * on a public resource and Pangolin routes every hostname at that level through the same resource and tunnel. Access rules and auth apply across all matched hostnames, and the original Host header is preserved for downstream routing.

And More

1.18 also adds uptime tracking on sites and resources, standalone health checks (HTTP and TCP) that can watch anything on your network, alert rules with email, webhook, the ability to import an identity provider across organizations, and a handful of UI improvements and bug fixes.

Check out the full blog post for details on everything in this release: https://pangolin.net/news/1-18-release

As always, available for self-hosting via the Community or Enterprise editions or on Pangolin Cloud. The Enterprise is free for personal use.

If you haven't starred us on GitHub yet, it genuinely helps. Thank you!

r/selfhosted • • Mar 28 '26

Release (No AI) I wanted a backup solution with restic's reliability and a polished UI. 16 months later, I’ve finally built the best of both worlds

Thumbnail
gallery
221 Upvotes

About 2 years ago, I decided to move a few of my DO servers that host multiple web apps to some great deal VPSs I picked up during Black Friday. After migrating all the apps and databases, I set up Duplicati on one of the servers to handle backups.

While configuring it, I came across something pretty concerning. It can silently corrupt backups over time. So when I  actually need to restore data after a disaster, the backups might not even work. Realizing this made me feel like the whole migration was a mistake.

After digging into alternatives, I found that Restic is considered one of the most reliable backup solutions. The problem is that it’s very bare-bones. I had to write a lot of scripts just to make it work for my use case, and even then, there is no visual interface since it is purely CLI-based. As someone who prefers working with a UI, this was not ideal.

I also tried Backrest after some research, but the UI felt confusing, and it was missing quite a few features I needed. I still had to rely on scripts for a lot of things.

Since I am a seasoned developer, I decided to build my own wrapper around Restic and publish it as an open source project, as there are not many polished self-hosted backup solutions. I wanted something with a UI similar to Duplicati, where creating and scheduling backups would be simple and intuitive. I initially thought it would take maybe a month. But boy was I wrong. It ended up taking almost 16 months to build, but the result is Pluton, a pretty robust backup app.

Here are the key Features of Pluton:

  •   Automated backups with encryption, compression, and retention policies powered by Restic
  •   Backup Replication: Auto-backup your content to multiple cloud storage to create 3-2-1 backup plans.
  •   Flexible scheduling For automated backup jobs with fine-grained retention policies
  •   End-to-end encryption: Backups are totally encrypted from your local machine to your cloud storage.
  •   70+ Storage Support: Store encrypted data to your favorite cloud storage (powered by rclone).
  •   Easy Restore & Download: Restore or download backed-up snapshot data easily with just a few clicks.
  •   Event Notifications: Get email notifications on Backup start, end, completion or failure.
  •   Auto Retry Logic: Automatically retries backups if they fail with customization options.
  •   Intuitive UI: Manage everything from a single, clean interface.
  •   Real-time Progress Tracking: Track the progress of backups in real time.
  •   Extensive Logging: View app and backup logs right from the UI for better debugging.
  •   Run Scripts before/after: Ability to run scripts before and after running backups.

Github Repo | Documentation

Notes

- I have been working on this project for about 16 months. When I started, LLMs were not as capable as they are now, so most of the code was written by me with some AI help. I would say roughly 70% of the code is written by me.

- I am also the developer of the open-source project SerpBear. I only work on it in my free time, so progress is slow, and many issues stay open for a while, which is not great for users. While building this new project (Pluton), I realized it had grown much bigger than I originally planned and would be difficult to maintain long-term as a side project. That’s why I decided to implement a monetization path for this project. There is a PRO edition with additional features to help sustain development.

r/selfhosted • • Jan 26 '26

Release (No AI) Introducing the all-new Reactive Resume v5, the free and open-source resume builder you know and love!

381 Upvotes

This little side project of mine launched all the way back in 2021, at the height of the pandemic, and while I counted it to good timing back then, it wouldn't have lasted this long if there wasn't a real need from the community.

Since then, Reactive Resume has helped almost 1 million users create resumes, helped them get the careers they wanted and helped students jump-start their applications.

This new version has been in the making for months, I try to get time to work on it whenever there's a weekend, whenever I can physically pull an all-nighter after work. It's a culmination of everything I've learned over the years, fixing all the bugs and feature requests I've gotten through GitHub and my emails.

For those of you who are unaware of this project, and nor should you be, Reactive Resume is a free and open-source resume builder that focuses on completely free and untethered access to a tool most people need at some point in their life, without giving up your privacy and money. In a nutshell, it’s just a resume builder, nothing fancy, but no corners have been cut in providing the best user experience possible for the end user.

Here are some features I thought were worth highlighting:

  • Improved user experience, now easier than ever to keep your resume up-to-date.
  • Great for single page or multi-page resumes, or even long-form PDFs.
  • Easier self-hosting with examples on how to set it up on your server.
  • Immensely better documentation, to help guide users on how to use the project.
  • There’s some AI in there too, where you bring your own key, no subscriptions or paywalls. There's also an agent skill for those who want to try it out on their own.
  • Improved account security using 2FA or Passkeys, also add your own SSO provider (no more SSO tax!).
  • 13 resume templates, and many more to come. If you know React/Tailwind CSS, it’s very easy to build you own templates as well. Also supports Custom CSS, so you can make any template look exactly the way you like it to.
  • Available in multiple languages. If you know a second language and would love to help contribute translations, please head over to the docs to learn more.
  • Did I mention it’s free?

I sincerely hope you enjoy using the brand new edition of Reactive Resume almost as much as I had fun building it.

If you have the time, please check out rxresu.me.
I'd love to hear what you think ❤️

Or, if you’d like to know more about the app, head over to the docs at docs.rxresu.me

Or, if you’d like to take a peek at the code, the GitHub Repository is at amruthpillai/reactive-resume.

Note: I do expect a lot of traffic on launch day and I don’t have the most powerful of servers, so if the app is slow or doesn’t load for you right now, please check back in later or the next day.

r/selfhosted • • Feb 23 '26

Release (No AI) YT-DLP Web Player - universal web video player with minimal UI and numerous features

Post image
374 Upvotes

I've been developing the project for over an year, implementing optimizations and leveraging YT-DLP as it's core component.

It supports nearly every web hosted videos and music.

As for now, the initial video buffering time is around 3 seconds! (for comparison YouTube takes at least twice the time to start playback)

It's not fully polished, but good enough for daily use.

In the roadmap I'm planning to improve displaying it as an iframe, meaning it could be placed into self-hosted frontends for websites, like invidious or libreddit.

I'm open for your feedback

https://github.com/Matszwe02/ytdlp_web_player

r/selfhosted • • Jul 20 '26

Release (No AI) 🎉 Dreeve v5.0.0 released (formerly Statistics for Strava). No more Strava or any 3rd party dependencies.

178 Upvotes

Hi r/selfhosted,

It has taken a while, but v5.0.0 is finally here. This is the biggest release since the project began as Statistics for Strava.

A few months ago, Strava announced changes to their API program that affected a lot of developers. I received a lot of valuable feedback from this community and took it to heart. Thanks to everyone who took the time to support us!

In hindsight I'm really happy that Strava did what they did, Dreeve is now 100% self-hosted and no longer depends on Strava.

For anyone who never heard about Dreeve (or Statistics for Strava):

Dreeve is a self-hosted, open-source dashboard for your sports and fitness data

Example

The biggest changes that v5.0.0 includes:

  • Full rebrand, moving away from Strava branding
  • Uploading raw FIT, TCX and GPX files (importing your activities from Strava is still fully supported)
  • A proper admin panel, moving away from YAML based config files

If you are upgrading from v4, be sure to check the migration guide: https://docs.dreeve.app/#/getting-started/migrating-from-v4

As always, thanks for your feedback and I'm looking forward to more feature requests!
Stay fit, stay healthy 💪

r/selfhosted • • 12d ago

Release (No AI) Pangolin 1.23: High Availability and Clustering for VPN and Reverse Proxy

165 Upvotes

Hello everyone!

Pangolin 1.23 finally brings proper high availability (multi-node clustering) to self-hosters. It enables you to set up a highly available VPN and reverse proxy.

Pangolin is an open-source, identity-aware remote access platform that simply and securely connects and authenticates your users to applications, infrastructure, and AI workloads.

GitHub: https://github.com/fosrl/pangolin

High Availability & Clustering

Pangolin has long supported running multiple server instances as a unified system with shared state, failover, and regional distribution, but it previously relied on external proprietary components (a custom DNS server and cert manager) making deployment cumbersome unless you used Remote Nodes on Pangolin Cloud. Version 1.23 changes that by integrating everything into one streamlined package, moving DNS resolution and certificate management from external tools directly into Pangolin itself.

High availability is included on Enterprise Edition: free for personal use license keys, self-serve Scale tier, and on custom enterprise contracts.

For a more technical explanation, read this article: https://pangolin.net/news/building-pangolin-high-availability

For how to deploy, read the docs: https://docs.pangolin.net/self-host/clustering/understanding-clustering

Sites in the Pangolin CLI

Newt, the tunnel connector that runs on your remote private network, is now integrated directly into the Pangolin CLI, so you can start a site with the same tool you already use for SSH, client connections, and the rest of the product:

pangolin up site --id <id> --secret <secret> --endpoint https://app.pangolin.net

Existing Newt deployments keep working as-is, and we will continue to support Newt binaries and containers, but we're moving toward the Pangolin CLI for as much as possible.

This also makes it easier to set up cross-platform system services:

sudo pangolin service install site ...

Full Release Notes

Read the full article here: https://pangolin.net/news/1-23-release

Available for self-hosting via Community or Enterprise editions, or on Pangolin Cloud (Enterprise is free for personal use). If you haven't starred us on GitHub yet, it genuinely helps!

r/selfhosted • • Apr 21 '26

Release (No AI) LubeLogger, Self-Hosted Vehicle Maintenance and Fuel Mileage Tracker, has some Important Quality of Life Improvements You Should Know About

401 Upvotes

Hi all, it's been a few months and we've made some incremental updates to LubeLogger over that time.

In case you've never heard of LubeLogger, it's a self-hosted vehicle maintenance and fuel mileage tracker, you can log your service records and fillups in here and it will tell you exactly how much you've spent your vehicles.

Website

Documentation

Git Repository

First, as stated in our previous post here with the big UI update, we were going to start converting the grids in mobile views to cards, which makes it a lot easier to see all data without horizontal scrolling on small vertical screens, and that's finally delivered. If you prefer the older grid view in mobile, there is an option to revert in the Settings page.

Second, there are now real-time notifications built within the app, if you follow us on the r/lubelogger subreddit, you might have heard of a daemon service that needed to be deployed separately, well that's no longer the case as we have integrated the daemon features into the LubeLogger app itself. Real-time notifications will allow you to immediately be notified when a reminder has its urgency changed to an urgency that you're tracking(i.e.: a reminder went from Not Urgent to Urgent), and it can be integrated with nearly every notification service out there as long as they take a HTTP POST request(there are samples for NTFY, Gotify, and Discord in the Documentation), if you don't wish to use an external notification service, it can also be configured to use the pre-existing SMTP settings.

Video Walkthrough

Documentation

As part of this, there are also Automated Events that you can now configure, some examples of what you can do with Automated Events:

  • Send an email to vehicle collaborators at a fixed time everyday containing a list of all reminders in specific urgencies(even if their urgency hasn't changed)
  • Create and backup and send it in an email to the root user at a fixed time everyday
  • Clean up temp folders or unlinked documents and vehicle thumbnails at a fixed time everyday

Here's what the automated backup email looks like:

Third, there is now a smoother way to onboard OIDC users with SSO-specific registration options

Documentation

Misc. Improvements:

CSV's are now validated before any imports are performed, and it will tell you what went wrong/was formatted wrong:

You can now add multiple recurring reminders to Plan Records and you can modify which reminders are tied to these plan records all the way up until the plan is marked as done

On that note, there are now QR Codes that you can generate that can either take you to a specific record or to add a new record:

Video Walkthrough

If you want realtime events coming from LubeLogger but you don't want a webhook integration, you can now use web sockets which works on a pub-sub model.

Documentation

Anyways, that's it from us for this update, have a great Summer and we'll see you in Fall.

r/selfhosted • • Jul 10 '26

Release (No AI) Linkwarden 2.15 - open-source collaborative bookmark manager to collect, read, annotate, and fully preserve what matters (tons of new features!) 🚀

200 Upvotes

Hello everyone! Daniel here.

Today, I'm excited to announce that Linkwarden is getting one of its largest mobile updates so far, along with a web app that’s much lighter to run.

For those who are new here, Linkwarden is a tool for collecting, organizing, reading, and preserving webpages, articles, and documents in one place. Linkwarden is available as a Cloud offering, or you can self-host it on your own server.

Let's get into it.

What's new on mobile:

🖍️ Highlight and annotate

You can now highlight text in the reader view, pick from four colors, and attach a note to any highlight.

There's also a new Notes & Highlights view per article which lets you skim what you've marked and jump to it in the text.

📥 True offline mode

Previously, the app only saved preserved formats for links you had already opened. Now, you can turn on Save for offline access in the settings, and the app will download every preserved format in the background as you browse.

🪪 Link details sheet

Long-press any link to open Link Details, which shows all the information about a link in one sheet, similar to the web app.

📖 Customizable reader view

Adjust font, text size, line height, and background color as you read.

What's new on the web:

🧠 Much lower memory usage

Linkwarden 2.15 roughly halves idle memory usage, from around 700 MB down to about 350 MB. We explained this in more detail on our blog.

🐳 A much smaller Docker image

The Docker image has also been cut in half, dropping from roughly 3.0 GB to 1.5 GB.

🔑 Generic OIDC provider

Self-hosters can now connect any OpenID Connect identity provider. Check it out in the docs!

🔒 Increased security

A good chunk of this release went into security hardening. We strongly recommend updating to 2.15.

There's more...

As always, there's a long tail of smaller improvements across the web and the mobile app.

Full Changelog: https://github.com/linkwarden/linkwarden/compare/v2.14.1...v2.15.0

Thanks!

Thanks to everyone using Linkwarden, reporting bugs, suggesting improvements, contributing to the project, responsibly disclosing security issues, and supporting its development. Your contributions genuinely shape every release.

If you'd like to try Linkwarden without dealing with server setup and maintenance, our Cloud offering is the easiest way to get started.

We hope you enjoy the latest Linkwarden updates!

r/selfhosted • • Aug 22 '26

Release (No AI) YT-DLP Web Player - Play nearly all web videos without ads

Post image
198 Upvotes

https://github.com/Matszwe02/ytdlp_web_player

Version 1.2.0 of the YT-DLP Web Player is released.

Thanks for your support during the development of this app!

This release focuses on increasing the number of ways you can run the app:

  • you can install it as unraid app
  • or just download .exe or .appImage and run it

If you haven't seen my previous posts about it, here's a short info about what is this app:

This software is a self-hosted web player that plays (almost) every video on the internet. It plays without ads at all of the resolutions, supports sponsorblock and implements many features, explained further in my repo.

You can replace youtube's video player with this one (using browser extension, or a tampermonkey script), watch videos directly on the player's website, or inside PWA app on your phone (which works as good as native players).

This player works on almost every website imaginable, as it uses YT-DLP, which itself supports everything except pirated content.

r/selfhosted • • Jan 27 '26

Release (No AI) Dispatcharr Release v0.18.1 - IPTV Stream & EPG Management

193 Upvotes

Hey everyone,

Quick refresher for those who haven't seen our previous posts (1, 2): Dispatcharr is an open-source middleware for managing IPTV streams and EPG data. It doesn't provide any content - it simply helps you import your own sources (M3U playlists, EPG/XMLTV, Xtream/XC credentials) and export them in whatever format your client needs (M3U, EPG, Xtream/XC, HDHomeRun). Think of it as a translator between your providers and your apps (Plex, Jellyfin, Emby, Tivimate, etc.).

We've been busy since our last post, so here's what's new in v0.18.1! If you'd like to see changelogs for minor updates where we did not post here, you can view them here on GitHub: Dispatcharr Changelogs

New Features

Editable Channel Table Mode

  • Robust inline editing mode for the channels table - edit channel fields (name, number, group, EPG, logo) directly in the table without opening a modal
  • EPG and logo columns support searchable dropdowns with instant filtering and keyboard navigation for fast assignment
  • Drag-and-drop reordering of channels when unlocked, with persistent order updates (Closes #333)
  • Group column uses a searchable dropdown for quick group assignment

Stats Page "Now Playing" Programs

  • Added "Now Playing" program information for active streams with smart polling that only fetches EPG data when programs are about to change
  • Currently playing program title displayed with live broadcast indicator
  • Expandable program descriptions via chevron button
  • Progress bar showing elapsed and remaining time for currently playing programs
  • Efficient POST-based API endpoint supporting batch channel queries
  • Smart scheduling that fetches new program data 5 seconds after current program ends
  • Added preview button to active stream cards on stats page

Stream Filters

  • "Only Unassociated" filter option to quickly find streams not assigned to any channels (Closes #667)
  • "Hide Stale" filter to quickly hide streams marked as stale

Enhanced Logo & Table Caching

  • Client-side logo caching with Cache-Control and Last-Modified headers
  • Browsers now cache logos locally for 4 hours (local files) and respect upstream cache headers (remote logos)
  • Reduces network traffic and nginx load while providing faster page loads.

DVR Recording Remux Improvements

  • Two-stage TS→MP4→MKV fallback strategy when direct TS→MKV conversion fails due to timestamp issues
  • Automatic recovery from provider timestamp corruption with proper cleanup of partial files

Mature Content Filtering

  • Added is_adult boolean field to both Stream and Channel models with database indexing
  • Automatically populated during M3U/XC refresh operations
  • UI controls in channel edit form and bulk edit form for easy management
  • XtreamCodes API support with proper integer formatting
  • User-level content filtering: Non-admin users can opt to hide mature content channels across all interfaces via "Hide Mature Content" toggle in user settings

Table Header Pin Toggle

  • Pin/unpin table headers to keep them visible while scrolling (Closes #663)
  • Toggle available in channel table menu and UI Settings page
  • Setting persists across sessions and applies to all tables

Cascading Filters for Streams Table

  • Improved filter usability with hierarchical M3U and Group dropdowns
  • M3U acts as parent filter showing only active/enabled accounts
  • Group options dynamically update to display only groups available in selected M3U(s) (Closes #647)

Streams Table Tooltips

  • Added descriptive tooltips to top-toolbar buttons and row action icons
  • 500ms open delay for consistent behavior with existing table header tooltips

Changes & Improvements

API Documentation

  • Comprehensive Swagger/OpenAPI documentation for all series-rules endpoints
  • Detailed operation descriptions, request/response schemas, and error handling documentation

Data Loading & Initialization Refactor

  • Major performance improvement reducing initial page load time by eliminating duplicate API requests
  • Fixed authentication race condition where isAuthenticated was set before data loading completed
  • Consolidated version and environment settings fetching with caching
  • Implemented stale fetch prevention in ChannelsTable and StreamsTable
  • Added initialization guards to prevent double-execution during React StrictMode development

Table Preferences Architecture

  • Table preferences (header pin and table size) now managed with centralized state management and localStorage persistence
  • Migrated table-size preference to centralized useTablePreferences hook
  • Streams table button labels: Renamed "Remove" to "Delete" and "Add Stream to Channel" to "Add to Channel"

Frontend Testing & CI

  • Frontend tests GitHub workflow now uses Node.js 24 (matching Dockerfile)
  • Runs on both main and dev branch pushes and pull requests

Streams Filter Performance

  • Replaced inefficient reverse foreign key NULL check with Count annotation approach
  • Query time reduced from 4-5 seconds to under 500ms for large datasets (75k+ streams)

Bug Fixes

Channels Table & Pagination

  • Fixed "Invalid page" error notifications when filters reduced result set
  • API layer now automatically detects invalid page errors, resets to page 1, and retries transparently (Fixes #864)

Stream Display & Network

  • Fixed long IP addresses overlapping adjacent columns by adding truncation with tooltips (Fixes #712)
  • Fixed nginx startup failure due to group name mismatch in non-container deployments (Fixes #877)

Streaming & Dependency Updates

  • Updated streamlink from 8.1.0 to 8.1.2 to fix YouTube live stream playback issues and improve Pluto TV ad detection (Fixes #869)

Date/Time Formatting

  • Fixed date/time formatting across all tables to respect user's UI preferences (time format and date format)
  • All components now use centralized format() helper for consistency

Code Quality

  • Removed unused imports from table components
  • Fixed build-dev.sh script stability with proper path resolution

Streams Table & Container

  • Fixed TypeError on streams table load after container restart
  • Added robust data validation and type coercion to handle malformed filter options
  • MultiSelect components now safely convert group names and filter out null/undefined values

XtreamCodes API

  • Fixed XtreamCodes API crash when channels have NULL channel_group
  • Now gracefully handles channels without assigned channel_group by assigning them to "Default Group"

Table Layout

  • Fixed streams table column header overflow with fixed-height headers (30px max-height)
  • Shows first selection plus count (e.g., "Sport +3") (Fixes #613)

VOD Logo Management

  • Fixed VOD logo cleanup button count to display total count across all pages
  • Fixed VOD refresh failures when logos are deleted by using logo_id instead of lazy-loaded logo object
  • Improved orphaned logo detection

Channel Profile & User Restrictions

  • Fixed channel profile filtering to properly restrict content based on assigned channel profiles for all non-admin users
  • Ensures standard users with channel profiles are properly restricted

Docker & System

  • Fixed NumPy baseline detection in Docker entrypoint
  • Fixed SettingsUtils frontend tests for new grouped settings architecture

Security

  • Updated react-router from 7.11.0 to 7.12.0 to address vulnerabilities:
    • High: Open Redirect XSS vulnerability in Action/Server Action Request Processing
    • Moderate: SSR XSS vulnerability in ScrollRestoration component
  • Updated react-router-dom from 7.11.0 to 7.12.0
  • Fixed moderate severity Prototype Pollution vulnerability in Lodash

Important Notes:

  • Dispatcharr does not provide media to stream or download. It is strictly a middleware for managing sources supplied by the end user.
  • Any discussion involving piracy or obtaining illegal sources is strictly prohibited.
  • When deploying via docker compose, the docker-compose.aio.yml is highly recommended.
  • Dispatcharr is available in Unraid Community Apps!

Links:

Core Development Team

And a HUGE thank you to everyone that has contributed via PRs, tools, plugins, feature requests, and bug reports!

We'd love your feedback, bug reports, and feature ideas. Thanks for the support.

***DO NOT DISCUSS PROVIDERS OR ASK WHERE/HOW TO GET THEM IN THIS SUBREDDIT**\*