Selfhosted

Group

!selfhosted@lemmy.world · Created ⁨Jun⁩ ⁨2023⁩

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.

Rules:

Detailed Rules Post

  1. Be civil.

  2. No spam.

  3. Posts are to be related to self-hosting.

  4. Don’t duplicate the full text of your blog or readme if you’re providing a link.

  5. Submission headline should match the article title.

  6. No trolling.

  7. Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.

  8. AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

posted in Selfhosted

RSS Relay Explorer: A Streamlit tool to aggregate Hacker News, Reddit, and Lemmy with optional DeepL translation

I’ve built a personal open-source tool that aggregates the latest posts from Hacker News, Reddit, and Lemmy into a single, sortable table. It supports optional machine translation for titles using the DeepL API, all running locally as a Streamlit app[cite: 4].

  • GitHub Repository: [Insert your GitHub Link Here]
  • Detailed Design Notes: DESIGN_NOTES.md / rss_spec.md

Why I built it

  • Bypassing Reddit API barriers: As of mid-2026, Reddit’s official API is gated behind a manual approval process, making it difficult for personal, low-volume tools to get access[cite: 4]. This tool avoids the API entirely by using Reddit’s public, unauthenticated .rss endpoints[cite: 4].
  • Solving the IP rate-limiting: Fetching one request per subreddit triggers “429 Too Many Requests” errors. To fix this, the tool combines all subscribed subreddits into a single, shared request (using hot sort), and then resolves the labels back to their specific subreddits by parsing the links[cite: 3, 4].
  • Optimizing DeepL costs: The tool applies date and count filters before sending titles to DeepL, ensuring the translation volume stays comfortably within the free tier (500k chars/month)[cite: 3, 4].

Key Features

  • Cross-Platform Aggregation: Unifies Hacker News (hnrss.org), Reddit (combined feed), and Lemmy instances[cite: 3, 4].
  • Comment Count Parsing: Automatically parses comment counts for HN and Lemmy feeds[cite: 4].
  • Optional Translation: If no DEEPL_TOKEN is provided, the tool skips translation entirely and works with zero API dependencies[cite: 3, 4].
  • Simple Configuration: Add or remove feeds by editing a single plain-text CSV (data/rss_feeds.csv)[cite: 4].

Quick Start

pip install -r requirements.txt
streamlit run app.py
```[cite: 4]

It's a simple, single-process tool built for my own information-gathering workflow, but I’m sharing it in case it’s useful for others looking to manage RSS feeds without relying on proprietary APIs or cloud-based services. Feedback and issues are welcome!

posted in Selfhosted

Circlus messenger?

Right - ran a search and got no results, so am asking directly

This thing any good? Anyone run it?

circlus.org

Use case: want to give my kid a SEVERELY locked down Moto E (2nd gen) as a Youtube music player device and a “message Daddy” app - strictly wifi / in house only.

The first thing is simple enough. The second thing is…interesting.

I had my local AI do some research and it spat out the above. I don’t think it’s quite right but It looks interesting. Any one use it / can comment? Failing that, can anyone recommend a simple WLAN messaging app that will run on Android 6 / lineageOS? I’m sure I can dig one up but if someone has one running, I’m all ears.

PS: I’m not looking at using a VPS for this…but the above did catch my attention as fairly normie friendly. Might be worth self hosting something like that…

circlus.orgCirclus — Your Private MessengerCirclus is a private messenger for trusted circles, with self-hosted servers, end-to-end encrypted chats, calls, and transparent server ownership.

posted in Selfhosted

Good resources for setting up a domain name to a local Caddy instance

I’ve been using Linux for decades, I’ve worked as a software engineer/architect/sre for around a decade, but networking has always been my biggest gap in knowledge.

I have a local server, I have caddy spun up, a glinet router running their version of openwrt, and I have a domain name purchased through porkbun.

I am looking to setup “local.domain.com” to point to my local server, ideally without exposing it publicly, and enable devices on my home network to be able to access it from that url. Id also like to be able to access containers running on that server by something like “searxng.local.domain.com” or “local.domain.com/searxng” aka without using the port suffix. Id also like to enable https.

I have read so many guides that have fragments of what I need, but nothing that ties enough together to get it working. And with all the options around different domain registers, let’s encrypt, reverse proxies, etc, im struggling just a bit.

Are their any guides (prefer text over YouTube, but beggars cant be choosers) that people recommend that encompass the whole process, instead of just pieces? Id like to understand it instead of just fumble through it.

posted in Selfhosted

3 days ago I said I needed a new hobby...

So I asked if I was an idiot for coming up with the bright idea to start my own lemmy instance. Well I can proudly state that yes, I am an idiot, but I’m an idiot with his own lemmy instance: MopLemmy.fyi. Barebones and barely federated, but by God it’s mine.

A brief summary of the issues I ran into: Lemmy Easy Deploy was absolutely the right way to go, thanks ᛒᛚᚢᛖᛇᚦᛖᚱ@no.lastname.nz for that suggestion. I’ve very new to several aspects of this so just understanding containers and when to use LED commands and not standard container commands ended up being the biggest hurdle to deploying the instance.

Email. Everything about getting the SMTP setup was basically terrible. Brevo won’t let you make an account using an email address with a “.” in it, so I ended up needing to make an email account so I could make an email account. Then I was troubleshooting a typo error for too long, and then I was troubleshooting a bad bit of info I got from the internet which had me using my account email address instead of the Brevo created one for the SMTP, so those were human error and by far the single most time consuming issue.

Second to that, a script to check if my external IP address changed. This ended up being the single most annoying thing, partly because of my newbity. I was using Remote Desktop Connection into my Linux box and copy and pasting stuff. Copy and paste was screwing up the data and kept breaking things. Once I realized that and switched to SSH things went smoother. I know, rookie mistake.

Setting up backups to my RAID that I could then access from my Samba share ended up being another issue. First it was saving to the wrong folder, then I thought I had broken my Samba share and couldn’t access it from the network… and the problem ended up being UFW because I forgot to allow Samba through the frickin’ firewall. Oh and then the same thing happened when I was trying to look at my Netdata but at least that time I figured it out much quicker.

Those were the major annoyances, the rest was more about the learning experiences of finding out certain things were a lot more complicated than I thought they would be. I did not expect to have to put so many different DNS records. I didn’t expect to have to spend so much time deciding on white list vs black list federation, or host images local or not, or image retention, etc. But it’s up and stable and working and I am very slowly federating to more communities and deciding what all I want to be able to see. Thanks to everyone on the original post with advice and suggestions, even the people who suggested things I ended up not doing, heh.

posted in Selfhosted

How can i teach myself to contribute to these projects?

I use open source self hosted software everyday. I love the community and I would love to be able to contribute to some of these projects.

As far as code goes, I basically no nothing about how it works. I see the development section of the repos I use and again, I’ve go no idea how it works.

How can I teach myself how to offer small improvements to the projects I use?

posted in Selfhosted

My Firewall was not putting out last night. So I could not get any pihole action.

So last night my firewall decided to say F you Reann and stopped working for no apparent reason. I called my ISP to see if it was anything on their end but it was a big nope. It was rather late at night and I do not have computers with monitors at my place so I thought I was SOL. I was frustrated that I could not do anything because I had the bright idea of deleting one of my two static IPs out of the router and than reboot it. I thought to calm my frustrations I would play some games on my ipad, and holly poop am I ever not used to all the ads in mobile games. Luckily my youtube ad blocking does not require anything else on my LAN so I put on some videos and went to bed. In the morning I remembered I had a ethernet to USB adapter and a USB A to c adapter so I would be able to fix it that way. Don’t know how many times I needed to fix the firewall because I broke the internet trying to fix my boo boos and a few times the firewall just said F you Reann I am not putting out. But it is now fixed and I can enjoy my moble games and web browsing mostly ad free!

So I had no pihole action on my LAN.

Like seriously how do people hand how many ads are shoved at you when you are using your devices?

I was on DuckDuckGo this morning trying to fix things and wow the ads, really made me miss searXNG.

Luckily I do not get spam, I spin up a new address for everything so I did not get those ads at least.

posted in Selfhosted

Restarting the Internet router

Once upon a time an admin told their family that the ISP’s router needed a restart. A teenager, watching a movie while playing World of Warcraft and talking to Llama, asked if it could wait until they weren’t using the Internet. The admin nodded and restarted the router. They lived happily ever after, until the local DNS failed of course.

posted in Selfhosted

Sometimes, when I am all alone i like to fantasize...

that hard drive prices return to normal and think about all the things i can build.

silliness aside, i honestly sit there and plan it out. i wish i pulled the trigger and started earlier. i actually bought two mini pcs before this mess and have one setup running proxmox. o have this beautiful jellyfin -> jellyseer -> radarr/sonarr -> sazbd -> gluetun -> newsreader setup on proxmox and i founf 1 8tb wd red plus on sale that i put in a ugreen nas running truenas and its filling up quickly.

i wont move to nextcloud until i get a second drive for mirroring. i still have to find a place to backup those future files as well.

there is not really a point tp this post except i know people here feel my pain. how i dream of buy a few 12 tb drives.

for now i find stuff and put price alerts on them. o have tried ebay but i dont always get what i pay for. like buying wlanlisting that says wd red plus cmr and getting a wd red (non plus) smr.

i fantasize about the cool rack setup i could build. right now everything, jellyfin stack, home assistant, glance dashboard, pteradactyl, netbird , anf any vm i want to play with all on one proxmox mini pc. next comes books

sorry for the rant but maybe you can relate

posted in Selfhosted

I need a new hobby, I'm going to set up my own Lemmy instance. Am I an idiot?

Of the many useful things I could do with my spare time instead I’m setting up a Lemmy instance because why not. The scope of this is definitely greater than any self-hosting I’ve ever attempted, so please feel free to tell me just how much trouble I’m in. I’m just giving the broad strokes to see if I’ve made any crucial errors (other than deciding to do this at all).

And if this is a completely wrong place for a post like this or I’m missing data I’m supposed to include I apologize, I probably need a sanity check, in more ways than one.

First limitation, I’ll be hosting it on an existing Linux Mint box acting as a file share mostly and occasional gaming PC/movie streaming box. Its hardware is overkill for this, I do not anticipate issues when it is in use. It receives regular updates and weekly reboots, instance will be set to automatically restart. NVMe with loads of space for local storage, RAID SSDs for data offload/backup.

Second limitation, I hate Cloudfare and Oracle. I do not want to use either of them.

Third limitation, money. Cheaper is better. I have a URL picked out and a registrar which will give me the cheapest long term option, in case I actually keep this thing going.

Last limitation, I’m already in over my head so I’ll be relying on a lot of googling and probably some chat bots to figure things out as I go through the actual deployment process. What could go wrong?

So, Lemmy hosted on Linux Mint box using Docker containers. ISP is a good one for this I’m told, no CGNAT, largely stable public IP but I’ll have a script running in case it does change. Confirmed ports 80/443 are open. Using Caddy for the HTTPS. Closed registration to start, if by some miracle I make it to actually wanting to allow additional users it will not be fully open, and I’ll use Brevo for the email SMTP. Security wise I know I’m making it harder for myself by exposing my IP, I’m going to have UFW running and Crowdsec to help keep incoming bad traffic out.

Down the line I’ll get Lemmy updates, backups, retention rules in place/automated, and make decisions on federation, etc. Thoughts?

🥧1

posted in Selfhosted

Sourcing replacement rack ears for UPS?

I’ve got an HPE R1500 G3 UPS that I was given and refurbed to be useable. Now that it’s in the rack and running, I want to fix things up a bit more.

Unfortunately the ears were not given with the UPS and I’d like to replace them. However everything I’m finding is listed as intended for switches/routers. Can anyone point me in a good direction, other than just watching eBay, where I might be able to get some replacement ears?

TIA

Edit: The ears WONT be bearing any weight, it’s just to keep it in place so it stays in until I want it out. I know it’s too heavy for ears alone.

posted in Selfhosted

Anyone know a good Selfhosted yt-dlp manager?

I’m looking for a server I can host in my home that has a simple ui where I can put in URLs for download and have them all show up on my Jellyfin. Bonus if there is VPN support.

Update: Thanks to everyone for the suggestions! Several projects to check out: youtube-dl, pinchflat, ytptube, metube, tubearchivist, yt-dlp-webui, ytzero, igloo, youtarr

Automated yt-dlp Docker image. Contribute to Jeeaaasus/youtube-dl development by creating an account on GitHub.GitHubGitHub - Jeeaaasus/youtube-dl: Automated yt-dlp Docker imageAutomated yt-dlp Docker image. Contribute to Jeeaaasus/youtube-dl development by creating an account on GitHub.

posted in Selfhosted

[AIT] Birdnet-go: Self-hosted realtime soundscape analyser for birds, bats and other wildlife

Birdnet-go is a real-time sound analyzer that detects bird species. It can take in audio from microphones. I set mine up to stream audio from my security cameras that I already had installed. There’s even a Home Assistant App, if you’re using it.

I live in a more suburban/semi-urban environment, but was really surprised to so many different bird species.

github.com/tphakala/birdnet-go/
Self-hosted realtime soundscape analyser for birds, bats and other wildlife. Multi-model local AI inference, runs 24/7 on a Raspberry Pi. - tphakala/birdnet-goGitHubGitHub - tphakala/birdnet-go: Self-hosted realtime soundscape analyser for birds, bats and other wildlife. Multi-model local AI inference, runs 24/7 on a Raspberry Pi.Self-hosted realtime soundscape analyser for birds, bats and other wildlife. Multi-model local AI inference, runs 24/7 on a Raspberry Pi. - tphakala/birdnet-go

posted in Selfhosted

Rayfish is working on my phone!

A few weeks ago Rayfish was released and only worked on PCs. But today I checked and noticed V2 was out. I updated my V1 on my PC and then installed it on my phone.

I had to restart the network on my PC to refresh the VPN networks I had already created. I setup a searcXNG on my PC just to try some sort of server. Next I created a firewall rule for that port on the rayfish network and another rule for the network on my Linux firewall. On rayfish I created a network and an invite code for my phone. On the phone I entered the invite code and was immediately connected. I could then ping from my phone to my PC and viseversa.

Finally I searched for the PCs rayfish IP and just connected to it on my browser on the phone. That worked and I was happy. But then I turned off my WiFi on my phone and clicked refresh… A few seconds later the phone re-connected and I got to my searcXNG!

My outside IP is not fixed and I rely on Cloudflare. But none of my services are actually public and are not planned to be public. So now with rayfish I get a permanent IP for free regardless of what my actual IP is. The possibilities are endless… Big big!

This is very cool! Yeah it’s AI developed, but this is AI for us. It’s clear and well defined for me, AI working for us is small potatoes vs AI the evil resource sucker spy tool. So let’s take advantage. Specifically this project is great and solves my privacy issues with Cloudflare.

Bug Maybe I’m putting it too simply. Any thoughts on this?

posted in Selfhosted

Self-hosted analytics and the infrastructure cost of privacy

My blog has been up and running for a few months now and I wanted to have a better idea of what sort of visitor numbers I was getting but as it is a blog about FOSS, self-hosting and privacy I wasn’t just about to hand data to Google.

I managed to set up a self hosted instance of Rybbit but it was a bit heavier resource wise than other options I have looked at so I had to have a major overhaul in my Proxmox node layout!

unknownuniverse.uk/home-lab/privacy-analytics/
Terminal output from 'docker stats' showing CPU and memory usage for the Rybbit analytics container stack including ClickHouse, Postgres, and Redis.The Unknown UniverseI Added Analytics to the Blog!I’ve spent years preaching privacy, yet here I am installing a tracker. No, this isn’t a sellout, I just self-hosted Rybbit. Here is the transparent breakdown.

posted in Selfhosted

OPNsense on top of Proxmox - Part 2

Hello beautiful people of this community!

I asked for your help a month back about setting up OPNsense on Proxmox. I went through all the comments in the post.

I got a bit distracted by IRL commitments but I sat down with it properly last week. After a lot of studying, and a bit of trial and error, I have done it!

My Journey

This was my first time with Proxmox, so I spent a few weeks with Proxmox initially before undertaking OPNsense. OPNsense took me a week to install and deploy. I did a staggered deployment over multiple days, i.e., installed the VM first, check connectivity, check DHCP, and then make it part of my homelab.

Architecture

The diagram might look complicated, but it’s simple.

  • My host has 3 interfaces, onboard NIC and a dual NIC card.
  • I made a LAN and WAN interface out of the dual NIC card, and made the onboard NIC as a management interface.
  • I connected all of the interfaces to dedicated Linux bridges and the underlying OS/VMs only use the Linux bridges.
  • The onboard NIC was converted into a management interface and is only used to configure Proxmox in case something catastrophic happens.
  • The other VMs can communicate with the OPNsense VM via the virtual LAN interface.

I initially was thinking of going through the pass-through option, but after some research, I saw the upsides were very low and you lose a bit of flexibility.

Challenges

  1. KEEP TRACK OF YOUR NIC TO LINUX BRIDGE MAPPING - This caused me a lot of stress and trails. I thought I was trying to ping the LAN interface, was connected to the WAN bridge.
  2. The Chicken & Egg Problem - During boot, Proxmox needs an IP but the DHCP service inside OPNsense is not up yet. Without that IP, I cannot log into Proxmox. I solved it using a hard-coded IP for Proxmox.
  3. Options galore - Coming from standard routers, OPNsense is a different beast; it has so many options that it becomes a crazy labyrinth. Had to read again and again to understand what the options meant.
  4. Where is dark mode? - The first change that I wanted to do was set dark mode and I don’t know why but it an ungodly amount of time for something so simple. It’s present in such a weird location (System -> Settings -> General -> Theme)
  5. This ain’t Kansas anymore - This is FreeBSD, not Linux. So the same commands won’t work. There is drill, no dig.
  6. PLEASE CLICK APPLY - Many times I just forgot to click Apply after making a change and I got super confused.
  7. DNS, YOU DEVIL - This was the setting which made me question my own sanity. I have a simple but non-standard setup for DNS. I am running Pihole (Ad-blocking + Local domains) + Adguard DNS Proxy (Supports encrypted DNS). I wanted to tell OPNsense “Hey, use this IP to resolve all internal and external DNS queries”. OPNsense was just not having it. It took me two days of experimentation to finally figure out the right approach (Disable WAN populated DNS, turn off Unbound, and use DHCP options).

Thanks to these people

Their comments really helped me out (Technical and encouragement)

  • @chief@lemmy.zip
  • @dbtng@eviltoast.org
  • @zarathustrad@lemmy.world
  • @possiblylinux127@lemmy.zip

Closing remarks

I am still documenting the entire process. I will publish the entire process of how I got a bare Lenovo M720Q working as a virtualized OPNsense router. Remember, if I can do it, anyone else can do it.

Edit: FreeBSD, not OpenBSD

posted in Selfhosted

OPNSense Reverse Proxies and Giving Internal Services Domain Names?

Heya, I just wanted to post here before doing something that puts my stuff out on the internet for anyone to see 😅

So I have a basic, still in-configuration homelab network going on. It’s Modem --> OPNsense router --> Ubiquiti switch --> Openwrt AP. DNS and DHCP (via Dnsmasq) are working right now, each VLAN (Home Devices, IoT, and Guest) can access the internet. But I’m still tinkering and doing firewall stuff, so sometimes I reactivate the ISP router and switch back to that until I have everything perfect enough to not bother my family

I have a Proxmox homelab that I’ve been running services like Jellyfin and Immich in a Docker Debian VM for a few months now, but I was getting tired of typing out IPs and remembering port nums, especially after bouncing between my router and the original ISP router whenever I’m having network issues. So I wanted to finally map those IPs to human-friendly domains. So like, 192.168.10.247:8096 --> jellyfin.example.com, 192.168.10.247:2283 --> immich.example.com, etc.

I quickly learned that DNS services like Unbound and Dnsmasq do what they say on the tin, DNS only, so I can’t do a override to map ports to a domain, as they can only do IPs. My research led me to reverse proxies, and people said Caddy was simple on OPNsense, so I installed that and followed the official guide/documentation. But then I ran into the issue of needing the domain to be externally resolveable. Which then led me to realizing I need to use some sort of CA.

I know Let’s Encrypt does it for free, plus the guide mentions them as a default so why not? Except I still need an actual external domain so… Cloudflare? DuckDNS? Someone else? I’m so lost…

The biggest concern of mine right now is, if I set up a reverse proxy, does that mean my services are externally accessible? I was using Tailscale so I could avoid that, especially since I know services like Jellyfin have had serious vulnerabilities, and everyone says it’s a good rule of thumb to just not expose services. But how do I map ip + port #s to a domain on OPNsense?

docs.opnsense.orgCaddy: Reverse Proxy — OPNsense documentation

posted in Selfhosted

[AIP] Fathom v0.11.0: now on Android and Android TV (experimental), plus many more updates!

Fathom is an all-in-one client for Jellyfin, on Linux, Windows, and now Android. It brings movies, shows, music, and Live TV into one window, with most of Jellyfin’s server-side management built in, plus optional Seerr requests and a full YouTube client. Everything plays through mpv (via media_kit), so you get direct play, hardware decoding, and real subtitle and audio track control. Free and open source (AGPL-3.0).

Feedback is very welcome. Bug reports and feature requests both belong on GitHub Issues, and questions are fine in Discussions. Fair warning: the new Android TV build is still rough around the edges, so testers and reports there especially would help a lot.

This is my first update post since the 0.9.0 launch, so here’s everything added since then.

New platforms

  • Android phones and tablets, from a single universal APK.
  • Android TV, experimental for now: D-pad navigation and a 10-foot interface, still being refined.
  • Android Auto (audio-only): browse Jellyfin music, internet radio, and YouTube, search by voice, and control playback from the car.
  • ARM64 (aarch64) Linux builds alongside x86_64.

Player

  • Up Next over the credits (a poster card or a compact Netflix-style pill) that rolls into the next episode, with configurable timing and autoplay.
  • Skip Intro, Skip Credits, and Skip Recap.
  • Audio passthrough: bitstream Atmos, Dolby Digital, and DTS to a receiver on the desktop player.
  • Playback Info overlay: play method, codecs, resolution, the live hardware-decode path, and dropped frames.
  • Display Sync for smoother playback on high-refresh displays.
  • Chromecast casting from Android.

Library and management

  • A per-item menu on posters, episode rows, and the detail page: Play or Resume, mark watched, favorite, add to a playlist, refresh metadata, and delete.
  • Delete media from the app (with the right server permission): a whole series, a season, a single episode, or a movie.
  • In-app plugin configuration as a real form with toggles and fields, instead of a raw JSON blob.
  • Backup and Restore your settings to a portable file, by group.

Beyond Jellyfin

  • Internet radio: add stations by URL or from the radio-browser.info directory, organize them into groups and favorites, with live time-shift to pause and rewind a live station.
  • OS media controls: system media keys and on-screen controls on Linux (MPRIS) and Windows (SMTC), covering video, Live TV, YouTube, and radio.
  • The built-in YouTube client gains a Shorts viewer, background audio, a playlist queue, and much faster browsing, on top of the existing SponsorBlock, DeArrow, and downloads.

Quality of life

  • Unified search, drag-to-reorder lists, and a customizable Home and navigation.
  • Diagnostics screen with exportable logs, internal/external server address auto-switching, and a documentation site.
  • Reliable HTTPS on Windows, and in-app updates that verify the download’s size and architecture before installing.

Platforms: Linux and Windows (self-contained downloads) and Android (APK; Android TV experimental). macOS and iOS need Mac hardware I don’t have yet.

AI Disclosure

Per Rule 7 / [AIP] disclosure requirements AI was used during development as a coding assistant. Level per category:

  • Design (architecture, system design): Hint — I make the architectural calls; AI suggests trade-offs and edge cases I might have missed.
  • Implementation (production code): Pair — roughly 50/50. AI drafts, I review, adjust, test on real hardware, and only commit what I’ve verified. Every commit is manually reviewed before it goes to my dev repo.
  • Testing (writing tests, test plans, QA): Assisted — real-device testing is manual (I test on my own PC and mobile devices before every release). AI helps draft test plans and think through edge cases.
  • Documentation (docs, comments, README, CHANGELOG): Pair — release notes and changelog entries are drafted with AI then edited for tone; comments and code docs are mostly Pair as well.
  • Review (code review, PR feedback): Assisted — I’m the reviewer; AI helps with security sweeps, audit passes on complex changes, and consistency checks.
  • Deployment (CI/CD config): Hint — the GitHub Actions build and release pipeline (Linux AppImage, Windows, Android APK) is largely conventional; AI-suggested improvements only.
github.com/Fathom-Media/fathom/releases/tag/v0.11.0
Fathom 0.11.0 brings the app to Android and Android TV, adds a YouTube Shorts viewer, Android Auto, and an Up Next prompt, and lets you manage and delete items in place.

Note: Android TV support i...GitHubRelease v0.11.0 · Fathom-Media/fathomFathom 0.11.0 brings the app to Android and Android TV, adds a YouTube Shorts viewer, Android Auto, and an Up Next prompt, and lets you manage and delete items in place. Note: Android TV support i...

posted in Selfhosted

Issues setting my first Home lab as a total total beginner (no programming, coding, etc. related knowledge)

For context: I have 0 programming, coding, etc. related knowledge.

For some months I’ve been dedicating time into setting up a Homelab that hosts music, movies, maybe home security (Frigate, I suppose), minecraft servers (or maybe other games too) and maaaaybe local AIs (if I get a better system), in that order, from more to less important. Some of the caractheristics that I prioritize are: privacy first, Zero third-party exposure, disk data encryption, self-hosting, FOSS priority perspective, trying not to compromise in any way my home network-using devices through all the process. Since, as I said, I have 0 programing or even Linux experience, I’ve done all this process guided by a local ran AI (Qwen 3.6), YouTube videos and forums (not the perfect formula for a cybersecurity safe environment, I know).

In an old laptop (Acer Aspire ES15-… with AMD A6-6310 / 16GB RAM) I’ve installed Linux Debian Trixie 13 (GNOME) with Docker and CasaOS with Jellyfin (for movies, it worked), Navidrome (for music, also worked) and recently Netbird, this one to connect into the local network from outside my home net, which kinda worked, but not as I expected it to work.

And this is where I feel I’m stuck. My main absolute priority the whole time setting this all up was being able to stream music from my homelab in my phone from everywhere in the world as long as I had internet connection, but when I managed to achieve that connection after soooo many hours and even stream music from my phone only with mobile data, it needed like 1 minute to load 3 seconds of a song, so it’s not enough at all. After seeing this, I’ve reseted all netbird data so I can do a clean install.

I need help with the process of setting this (I believe it’s a VPN) up in a way that it is Self-hosted, secure and fast enough so I can make it all achieve my expectations. Any video, forum thread or personal recomendation that you can give me will be so much appreciated.

Summarizing it a little, this is what I was trying to achieve:

CasaOS Architecture: Netbird (FOSS WireGuard mesh) + (maybe) Caddy Reverse Proxy + (maybe) Internal PKI + (maybe) LUKS Encryption Security Model: Zero port forwarding, outbound-only private tunnels, device-by-device approval, end-to-end HTTPS, full data-at-rest encryption.

Let me know if I’m missing any important information and I will do my best to share it.

Thank you so so much in advance!!