Dispatcharr Release: v0.21.1 - IPTV Stream & EPG Management
Hey everyone,
For those that haven't seen or used Dispatcharr yet, it 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, XC) and export them in whatever format your client needs (M3U, EPG, XC, HDHomeRun). Think of it as a translator between your live TV source and your client apps and services (Emby, Plex, Jellyfin, Sparkle, Tivimate, etc.).
A lot has shipped since our last post. Here's an overview of the big hitters that have been added and/or fixed from v0.18.1 through v0.21.1. See full changelogs for each release here: [https://github.com/Dispatcharr/Dispatcharr/releases](https://github.com/Dispatcharr/Dispatcharr/releases).
Previous posts can be found here:[ Initial introduction v0.10.1](https://www.reddit.com/r/selfhosted/comments/1nx5l9h/dispatcharr_your_ultimate_iptv_stream_management/),[ v0.15.1](https://www.reddit.com/r/selfhosted/comments/1pte9th/dispatcharr_release_v0151_iptv_stream_epg/),[ v0.18.1](https://www.reddit.com/r/selfhosted/comments/1qom2b9/dispatcharr_release_v0181_iptv_stream_epg/)
\*\*\*DO NOT DISCUSS IPTV PROVIDERS OR ASK WHERE/HOW TO GET THEM IN THIS SUBREDDIT OR IN ANY DISPATCHARR COMMUNITY FORUM\*\*\*
New Features
API Key Authentication (v0.20.0)
* Users can now generate and revoke personal API keys from the User configuration tab for use in scripts, automations, and third-party integrations. Admins can manage keys on behalf of any user.
Webhooks and Event-Driven Integrations (v0.20.0)
* A new Integrations system triggers webhooks or custom scripts based on system events including channel start/stop/failover, recording start/end, EPG and M3U refreshes, and client connect/disconnect. Each event supports Jinja2 payload templates, custom HTTP headers, and a test endpoint with dummy payloads.
DVR Overhaul (v0.21.0)
The most substantial DVR update to date.
* Stop and Extend controls for in-progress recordings (stopping keeps the partial file).
* Multi-source poster resolution pulling from EPG, VOD, TMDB, OMDb, TVMaze, and iTunes.
* Series rules now capture currently-airing episodes.
* Automatic crash recovery for recordings stuck after a worker restart.
* Search and filter controls added to the recordings list.
* Inline metadata editing for title and description directly in the recording details modal.
TV Guide Enhancements (v0.21.0)
* Program cards now show season/episode badges, episode subtitles, real-time progress bars, and status badges for LIVE, NEW, PREMIERE, and FINALE. Clicking any program opens a detail modal with full metadata including cast, content rating, and IMDB/TMDB links.
TV Guide Performance (v0.20.0)
* Optimized the TV Guide with horizontal culling for off-screen program rows, rendering only visible programs.
* Throttled now-line position updates and improved scroll performance.
* Reduces unnecessary DOM work and improves responsiveness with large EPG datasets.
Streams Table Enhancements (v.0.19.0)
* Added column visibility and TVG-ID enhancements.
* Column visibility toggle menu allowing users to show/hide optional columns (TVG-ID, Stats) with optional columns hidden by default for cleaner default view.
* TVG-ID column with search filtering and sort capability for better stream organization.
* Frontend now automatically refreshes streams and channels after a stream rehash completes, ensuring the UI is always up-to-date following backend merge operations.
M3U Account Expiration Tracking (v0.21.0)
* The M3U accounts table now shows subscription expiration dates color-coded by urgency (expired, expiring soon). XC accounts sync expiration dates automatically. Non-XC accounts support manual date entry. Notifications fire when an account is expiring within 7 days.
Cron Scheduling for M3U and EPG Refreshes (v0.20.0)
* M3U and EPG refresh schedules can now be configured using an interactive cron expression builder with presets, custom field editors, and a built-in example
Paperless NGX: How to separate company and private bills?
I am both a company owner and a private person.
I would love to make Paperless sort those bills. But they need to be separated. Separation based on mail address should be quite easy.
But I can only detect the sender of the bill not the recipient.
How can I do that?
https://redd.it/1s6ymcw
@r_SelfHosted
Run Your Own IRC Server
https://tomsitcafe.com/2026/03/27/run-your-own-irc-server/
https://redd.it/1s6r1zr
@r_SelfHosted
What s3 compatible object store has the mainstream community moved on to from minio?
I live under a rock and only just came out of it to find minio went dogwater. Advice this caveman
https://redd.it/1s6t9rf
@r_SelfHosted
Is Unraid out of touch?
Is it just me, or is Unraid starting to drift into nonsense territory - especially since they switched to subscriptions? It really feels like they're squeezing every last penny out of the product now. Massive hype, pointless partnerships... with what exactly to show for?
I've been using Unraid for years and I still like it, but let's not pretend things haven't gone sideways a bit. They were talking brand new UI, mobile apps, plugin system, maybe even multi-array support - and instead we're getting these random, borderline pointless partnerships. Tailscale, 45Drives... who exactly is this for? Feels like 1% of users at best. People will still use Tailscale even if you don't have a strategic partnership you can announce.
The announcement before that was "Introducing Apprise-Go", what was that even about? I still, to this day, don't know how I should use this on my system or how it could benefit me. Just install this random binary, okay?
Now we've got an "announcement of an upcoming announcement" about 45Drives? Come on. That's just tone-deaf, especially given the current economic reality most users are dealing with. It's hard not to see it as fluff to distract from the lack of real progress. It's mostly just hype about what great new features they're going to present next, but when it comes down to it they constantly over-promise and under-deliver, too late with barely tested generic stuff.
Honestly, I miss when Unraid just focused on being a solid product instead of whatever this is turning into. It seems they're mostly interested in trying to push their name everywhere while locking us into their online services and subscription model as much as possible. What's next, IPO?
Their team is bigger and more corporate than ever, so the whole "we're a small family team" line does not fly anymore - and somehow they are delivering less than when they actually were. Finish one thing, then move on to the next - juggling 50 half-baked ideas in public and hyping users over nothing that actually benefits anyone is just lame.
Re-posted from Unraid - their mods can't handle feedback, and it seems like this is exactly what the community - aka corporate bootlickers - wants. Time for me to haul ass to PMS and other non-corporate solutions. Enjoy your telemetry and marketing bullshit - age verification's up next on the menu, Cali based company and all. Don't say I didn't warn you.
https://redd.it/1s6r8uj
@r_SelfHosted
Looking for calendar and tasks tools
Haven’t started building anything yet but decided it would be best to map out what I actually need to host. Trying to move out of Google/Apple apps and need the best tools to replace Google Calendar and tasks. I find I use these a lot to set reminders for budgets, due dates etc.
I have seen Nextcloud come up a bit but I was thinking of maybe using separate smaller apps that specialize in each task. I don’t think I would use a lot of the Nextcloud features.
Ideally I would love to start replacing a lot of the iPhone apps over time and just have alternatives to everything
https://redd.it/1s6node
@r_SelfHosted
Where do you store passwords for compose files?
As the title says.
A few services require passwords inside the docker-compose files. do you store them in .env or directly in the respective docker compose.yml and also why?
What do you think is the benefit of your method?
I'm having most of them directly inside docker compose files.
I just dont see the benefit of using the .env file for it.
https://redd.it/1s6aeld
@r_SelfHosted
PSA: Trivy container scanner compromised
Please be advised that all versions of Trivy (container vulnerability scanner) 0.69.4 were compromised because of credential theft:
https://www.bleepingcomputer.com/news/security/trivy-vulnerability-scanner-breach-pushed-infostealer-via-github-actions/
Everybody who used this version with any tag can consider their environment breached.
https://redd.it/1s04ae3
@r_SelfHosted
Map Tracker and Trip Planner - Updated
https://redd.it/1rzsnuu
@r_SelfHosted
Why Is everyone persisting Redis… Even when it’s just a Cache?
I’m not sure if this is the perfect sub, but the question is definitely related to selfhosting
I see most tutorial even official documentation of large projects set up redis/valkey in the compose file with `appendonly yes` or bind mount a directory for redis-data when it's only used as cache.
But… isn’t cache supposed to be ephemeral?
Immich, Nextcloud, Paperless, ... etc. Almost every docker-compose example I find uses persistent storage for Redis.
Instead I'm using the following for all my compose files
redis:
image: docker.io/valkey/valkey:latest
container_name: nextcloud-redis
restart: always
command: valkey-server --save "" --appendonly no
user: 1000:1000
read_only: true
security_opt:
- no-new-privileges:true
tty: false
stdin_open: false
cap_drop:
- ALL
networks:
- nextcloud-redis-net
So… what am I missing?
* What’s the real benefit of mounting a Redis data directory?
* Why use AOF or RDB persistence when Redis is only functioning as a volatile cache?
* Are there cases where persistence is required even if the project calls it a “cache”?
I hope someone here can shed some light on this as this sub has been my most valuable source of learning from the experts.
https://redd.it/1rzmjb0
@r_SelfHosted
First pass at a Grafana dashboard for network monitoring
https://redd.it/1rzj0qu
@r_SelfHosted
Docker image for Obsidian Sync Headless
Hello,
One of the thing that kept me from using Obsidian Sync and instead self-host multiple solution for it was the fact I couldn't easily sync the data directly to my homelab without using other tools on top of Obsidian Sync.
This has now changed, since February they released a Headless version that can be setup to just do sync.
I've reworked a non-working docker image to have a fully working configurable docker image for it.
Full information:
https://github.com/Belphemur/obsidian-headless-sync-docker
Basically I use s6-overlay with their obsidian-headless npm tool.
>AI DISCLAIMER:
I used AI to help me configure s6-overlay, I have experience doing it in other project like my protonmail-bridge. But I wanted to avoid having to rewrite everything from scratch again, so I used GitHub Copilot Agent to make the change while doing multiple full interactive session and reviewing the change as they happened.
ps: also this full post is actually written by a human for once.
https://redd.it/1rz6ycy
@r_SelfHosted
Houndarr: A polite, automated search scheduler for your *arr stack
https://github.com/av1155/houndarr
https://redd.it/1rz4dfu
@r_SelfHosted
Update: TapMap now supports Linux and Docker as requested
https://redd.it/1rz2zsb
@r_SelfHosted
Don't expect us to try your AI app
Developing a niche or custom tool with AI that solves your problem is great and it is changing the landscape for a few SAAS on a few specific services. But man...! Sooo many posts in the past few weeks either here or a few related subs, of self proclaimed Zuckerbergs promoting their ground breaking new flavor of the day AI apps... Don't expect most people (anyone really) to ever install or try it.
There is a GIGANTIC gap (think of a giant gap, and do x10) between "prompt and pray" AI apps, and production ready, stable and SAFE products. DevOps and cybersecurity principles you do not know exist, and that your coding agent won't advertise because they're trained to be helpful, efficient and to take the path of least resistance.
There is nothing user-friendly about 99% of these principles, your LLM will avoid them by default, and if you don't know anything about software architecture, PLEASE, keep these apps to yourself.
Also; NOT ALL IDEAS ARE WORTH SHARING. Most of them sucks actually, that's why they get peer reviewed in a real development environment.
TLDR; if you don't know what stable and secured software architecture is - don't promote your AI coded app.
https://redd.it/1rywekd
@r_SelfHosted
Dispatcharr Release: v0.21.1 - IPTV Stream & EPG Management
Hey everyone,
For those that haven't seen or used Dispatcharr yet, it 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, XC) and export them in whatever format your client needs (M3U, EPG, XC, HDHomeRun). Think of it as a translator between your live TV source and your client apps and services (Emby, Plex, Jellyfin, Sparkle, Tivimate, etc.).
A lot has shipped since our last post. Here's an overview of the big hitters that have been added and/or fixed from v0.18.1 through v0.21.1. See full changelogs for each release here: https://github.com/Dispatcharr/Dispatcharr/releases.
Previous posts can be found here: Initial introduction v0.10.1, v0.15.1, v0.18.1
***DO NOT DISCUSS IPTV PROVIDERS OR ASK WHERE/HOW TO GET THEM IN THIS SUBREDDIT OR IN ANY DISPATCHARR COMMUNITY FORUM***
New Features
API Key Authentication (v0.20.0)
Users can now generate and revoke personal API keys from the User configuration tab for use in scripts, automations, and third-party integrations. Admins can manage keys on behalf of any user.
Webhooks and Event-Driven Integrations (v0.20.0)
A new Integrations system triggers webhooks or custom scripts based on system events including channel start/stop/failover, recording start/end, EPG and M3U refreshes, and client connect/disconnect. Each event supports Jinja2 payload templates, custom HTTP headers, and a test endpoint with dummy payloads.
DVR Overhaul (v0.21.0)
The most substantial DVR update to date.
Stop and Extend controls for in-progress recordings (stopping keeps the partial file).
Multi-source poster resolution pulling from EPG, VOD, TMDB, OMDb, TVMaze, and iTunes.
Series rules now capture currently-airing episodes.
Automatic crash recovery for recordings stuck after a worker restart.
Search and filter controls added to the recordings list.
Inline metadata editing for title and description directly in the recording details modal.
TV Guide Enhancements (v0.21.0)
Program cards now show season/episode badges, episode subtitles, real-time progress bars, and status badges for LIVE, NEW, PREMIERE, and FINALE. Clicking any program opens a detail modal with full metadata including cast, content rating, and IMDB/TMDB links.
TV Guide Performance (v0.20.0)
Optimized the TV Guide with horizontal culling for off-screen program rows, rendering only visible programs.
Throttled now-line position updates and improved scroll performance.
Reduces unnecessary DOM work and improves responsiveness with large EPG datasets.
Streams Table Enhancements (v.0.19.0)
Added column visibility and TVG-ID enhancements.
Column visibility toggle menu allowing users to show/hide optional columns (TVG-ID, Stats) with optional columns hidden by default for cleaner default view.
TVG-ID column with search filtering and sort capability for better stream organization.
Frontend now automatically refreshes streams and channels after a stream rehash completes, ensuring the UI is always up-to-date following backend merge operations.
M3U Account Expiration Tracking (v0.21.0)
The M3U accounts table now shows subscription expiration dates color-coded by urgency (expired, expiring soon). XC accounts sync expiration dates automatically. Non-XC accounts support manual date entry. Notifications fire when an account is expiring within 7 days.
Cron Scheduling for M3U and EPG Refreshes (v0.20.0)
M3U and EPG refresh schedules can now be configured using an interactive cron expression builder with presets, custom field editors, and a built-in example
Sprout Track v1.2.3 - PostgreSQL support, report cards, activity timers, and webhook updates for the self-hosted baby tracker
Back with another update for Sprout Track, the self-hosted baby activity tracker. This one's been a big release so I wanted to share what's new.
**PostgreSQL support**
This has been a long time coming. Sprout Track has run on SQLite since day one, and it still does if that's your preference. But for those of you running larger setups or who just prefer Postgres, v1.2.3 adds full PostgreSQL support. The app features an backup restore tool which can also be used to migrate from one provider to the other. Documentation is available in the repo.
**Report Card**
There's now an exportable report card under the reports tab. It pulls together your child's progress for a selected month and compares it against the previous month. Growth data is plotted against CDC percentile charts. It's a nice snapshot to share with a pediatrician, a partner, grandparents, whoever wants to see how the little one is doing.
https://preview.redd.it/ieewd0y3gzrg1.png?width=1233&format=png&auto=webp&s=df8044909365e8bad74a0a5720ebbe5d9235ae99
**Activity Timer**
Play activities now have a built-in timer. Simple addition, but it fills a gap. Before this you could track tummy time and other activities but had no way to time them directly in the app. Now you can start, stop, and log it all in one place.
https://preview.redd.it/f4y762p1ezrg1.png?width=1233&format=png&auto=webp&s=3c8080474aface6322a9eb5ed7c9de492db718f7
**Webhook Updates**
For those of you running Home Assistant or other automation platforms, the activity API now triggers notifications when activities are posted. Sleep location is also optional when ending sleep through the API, which cleans up some of the friction in automated workflows.
**Other highlights:**
* **Italian and German** translations added (thank you gianfma!)
* New family setting to control whether solid foods impact the feed timer. Helpful for families transitioning into solids who still want accurate bottle/breast feed timing
* Last feed side now shows up first in the activity list
* Setup wizard now saves progress so you can pick up where you left off
* Scroll-wheel support on the activity tray for desktop users
* A pile of bug fixes including growth chart rendering, feed entry editing, caching issues on charts, and timezone-related API bugs
**Links:**
* GitHub: [https://github.com/Oak-and-Sprout/sprout-track](https://github.com/Oak-and-Sprout/sprout-track)
* Demo: [https://www.sprout-track.com/demo](https://www.sprout-track.com/demo) (ID: 01, Pin: 111111)
* Docker: `docker pull sprouttrack/sprout-track:latest`
As always, happy to answer questions or take feedback. Cheers!
https://redd.it/1s6uqyu
@r_SelfHosted
Do people here love over-engineering their self-hosting setups?
I remember thinking I needed a separate Pi (and eventually a full server) for each major category of services. Then I’d build "perfect" Ansible migration scripts—literally like database migration scripts—to set up or roll back my servers with a single click. Next came the urge to add Docker Swarm, k3s, or K8s ("for sure I'll need it!"), followed by complex VPN setups, and then...
Another big trap was being tempted by new, shiny UI wrappers for simple services, like Nginx Proxy Manager or Portainer. I’d also try every single tool in a given category—I can't even count how many backup solutions I've tested.
I did all of this, but you wouldn't believe how even the "perfect" migration script fails at step 33 over some tiny, unforeseen issue. Then you're stuck troubleshooting it—what a waste of time. And don't get me started on Docker Swarm. It’s great when you actually need it, but for basic self-hosting? Managing tokens and joining nodes is a trap. It works when it works, but when you come back to a system after a few weeks to fix something simple, you end up wasting 30 minutes instead of 2, only to realize: "Oh right, it's the damn Swarm... I forgot this was running Swarm."
Now, with more experience, I’ve realized I don't need most of that. It was just complexity for the sake of complexity.
Today, all I need is docker, a plain Nginx instance that I know how to configure as a reverse proxy, Authelia sitting in front of my services for authentication, and BorgBackup/Borgmatic/Rclone handling a nightly cron job to Backblaze. I run all services as docker containers.
That’s it. That’s all I use now, and I’m incredibly happy. No Ansible roles, no infra migration scripts, no Swarm/K8s, no Nginx Proxy Manager. Honestly, my list of "tools I wasted time on in the past" is significantly longer than the list of what I currently use.
Anyone else go through this phase?
https://redd.it/1s6vs75
@r_SelfHosted
Portabase 1.9.4: Default Notifications, Agent Healthchecks, Database Improvements...
https://github.com/Portabase/portabase
https://redd.it/1s6r6vi
@r_SelfHosted
Most straight-forward way to set up SOCKS5 proxy and VPN via Docker?
We've got a small Debian thin client running at my place and at my parents/siblings homes. I want to set up a SOCKS5 proxy + some kind of VPN on each of them.
What’s the easiest way to do this? Ideally looking for Docker containers where I can just drop in a compose.yaml that mostly work out of the box and work with bind mounts (I want backing up and migrating to a new machine to be as simple as copying the entire home folder).
Any recommendations?
The VPN has to work with the Android and Windows built-in VPN settings and not require additional software.
https://redd.it/1s6qhjn
@r_SelfHosted
homepagectl - automatically generate homepage configs from running Docker containers
https://redd.it/1s6o6tz
@r_SelfHosted
Local multiplayer games remotely 🎮
https://github.com/dmksnnk/star
https://redd.it/1s6cnjx
@r_SelfHosted
It's Not Friday Anymore - Roundup
But on Friday, there were lots of really cool projects shared.
Here are the top projects:
Top 10 posts in markdown format:
1. Update: TapMap now supports Linux and Docker as requested
- u/Old-Marketing6949 | 272 pts | 34 comments | 17:43 UTC
- GitHub: https://github.com/olalie/tapmap
2. Foldergram: Self-hosted local photo gallery with an Instagram-style feed and layout
- u/sajjadalis | 240 pts | 33 comments | 01:49 UTC
- GitHub: https://github.com/foldergram/foldergram
3. Project Nomad - the offline knowledge repo
- u/Th3LonelyBard | 235 pts | 43 comments | 13:10 UTC
4. Docker image for Obsidian Sync Headless
- u/Belphemur | 79 pts | 13 comments | 20:13 UTC
- GitHub: https://github.com/Belphemur/obsidian-headless-sync-docker
5. Kumiho v0.12.0 - Fast & Flexible Self-hosted E-Book/Audiobook Server (Docker)
- u/SuspiciousCow7289 | 34 pts | 12 comments | 11:54 UTC
- GitHub: https://github.com/aha-hyeong/kumiho
6. [Fishing of the day](https://reddit.com/r/selfhosted/comments/1rzmx51/fishingoftheday/)
- u/badrrrrmoon | 17 pts | 3 comments | 09:12 UTC
7. X(P)FeRD: Design and manage XRechnung and ZUGFeRD compatible e-invocies
- u/testheit | 12 pts | 6 comments | 06:24 UTC
- GitHub: https://github.com/tiehfood/xpferd
8. CollabMD: Turn local Markdown folders and Obsidian vaults into a real-time collaborative web app
- u/ndezt | 7 pts | 9 comments | 10:02 UTC
- GitHub: https://github.com/andes90/collabmd
9. I built a small self-hosted Discord-style Matrix client for my community
- u/VitosiCZ | 5 pts | 7 comments | 17:02 UTC
- GitHub: https://github.com/Vitosicz/Heorot
- GitHub: https://github.com/Vitosicz/Heorot-voice-relay
10. Anything stand out as an oof?
- u/ss5raditz | 5 pts | 12 comments | 22:00 UTC
https://redd.it/1rzz3dt
@r_SelfHosted
Fishing of the day
https://redd.it/1rzmx51
@r_SelfHosted
self hosted wireguard vs tailscale?
im currently using tailscale to bypass CGNAT, but im thinking about self hosting a wireguard VPN server with ipv6 to not have to rely on tailscale and be completely independent.
which would be more secure? and would setting up wireguard be worth it?
https://redd.it/1rzediq
@r_SelfHosted
If Docker Hub images are so insecure why does everyone still use them as the default?
This is something ive been thinking about for a while and i genuinely dont understand.
Every time someone scans their Docker Hub images the reaction is shock. Hundreds of CVEs, multiple criticals, packages nobody needs or uses. This isnt new information. Weve all seen the scan results. And yet every tutorial, every quickstart guide, every stackoverflow answer still starts with docker pull official-image like thats fine.
Hardened alternatives exist. Distroless exists. Minimal images with single digit CVE counts exist. So why is the default still bloated debian images with 400+ packages?
Is it just inertia? Cost? Nobody knows the alternatives exist? Or does everyone just accept this as normal and move on?
Genuinely curious whats keeping the ecosystem stuck here.
https://redd.it/1rzddrb
@r_SelfHosted
What's something you have recently removed from your server?
couple weeks ago there was a handy topic about stuff that you have recently removed from your server. Whether it was because it wasn't working for you or you moved to something else or you just wasn't using it enough. I think this is very good way of trimming down your stuff or finding new things that do things better.
I will start here:
Adguard Home - moved to Technitium because of their cluster feature.
Transmission - moved to qBittorrent as Transmissions started being laggy with loads of torrents
Tracearr/Yamtrack - I just wasnt using it enough. They are great apps, but I get streaming tracking via Emby and TV Shows/Movies releases are tracked in arr stack.
UpSnap - Great app, unfortunately I only have WiFi available so this one didn't work for me.
Komodo - I tried liking it but it was just too much for me, I am back to Arcane.
Flood - As I moved to qBittorrent I switched to Qui
https://redd.it/1rz1pns
@r_SelfHosted
This is the reason you shouldn't host your own email... Microsoft says 🖕to 200k user ISP.
https://www.ispreview.co.uk/index.php/2026/03/microsoft-domain-blacklist-causes-email-problems-for-uk-isp-zen-internet.html
Microsoft seemingly don't care that they've black listed the IPs of a fairly large and well-respected UK ISP. If they can't get help, what chance does an individual have?
Email does feel like a cartel in many respects. I look forward to the flurry of stories of you hosting your own email since the 90s without issue. But, the truth comes from those who have had issues and how painful it was to resolve.
https://redd.it/1rz3zxp
@r_SelfHosted
Project Nomad - the offline knowledge repo
https://youtu.be/P_wt-2P-WBk
https://redd.it/1ryvufj
@r_SelfHosted
Kumiho v0.12.0 - Fast & Flexible Self-hosted E-Book/Audiobook Server (Docker)
https://redd.it/1ryu7g7
@r_SelfHosted