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!!

  • habitualTartare@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    1 day ago

    I’ve never used Netbird or casaOS. I run debian and docker containers. I would recommend looking at wg-easy as a VPN. it also uses wireguard but for me it just works. you open 1 port on UDP and route it to wireguard, it’s a secure way to access your network and is quite hard to detect from the outside.

    I’ve heard good things about caddy.

    “data at rest/LUKS” is something you should consider if your personally worried about someone physically trying to get information off your computer/server. if the server is running or an attacker gets into your system remotely, it doesn’t matter. as a beginner, I would determine if the data your saving is worth the extra headache of encrypted media, especially if something goes wrong/an update breaks something or your configs/setup messes something up. if you do, keep a copy of your decryption keys on a NEW USB drive (flash drives go bad) or printed out in addition to saved on your workstation/laptop/password manager.

    Personally for new systems I recommend Proxmox hypervisor instead of running directly on the laptop. having your debian OS/casa or whatever you use virtualized gives you the ability to take snapshots in time of your OS, makes backups easier and can help when you expand later (backup and restore on the new computer running proxmox). mine is: proxmox on bare metal old office PC

    • | debian > docker w/ portainer (I plan to replace portainer w/ komono)
    • | TrueNAS > S3 bucket application (garage)

    if Casa becomes limiting as you learn and grow, I would recommend docker compose stacks w/ a web gui like komono.

    one final note, although AI can be very useful for troubleshooting and getting some code to fix a problem (albiet logic/problem solving isn’t their strength) it’s awful for retaining knowledge and learning in the same way that using a calculator or other tool before fully understanding how to do addition/multiplication manually. I would strongly recommend taking some time to learn the basics without ai if your goal is to understand how everything works. resources to start with are using and reading “man + command”, command help flags, online courses and websites: https://linuxbasecamp.com/ https://explainshell.com/ - copy paste a command with all arguments and it tells you what it does. https://training.linuxfoundation.org/training/introduction-to-linux/

    • Well1@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 hour ago

      Wow, thats a lot of useful things.

      • I’ll try again with NetBird and if it doesn’t work, I’ll try wg-easy.
      • I thought it was some kind of general encryption that could protect me from remote attacks, if it isn’t that way, then I’ll set that aside.
      • I’ve seen proxmox a lot on tutorials. I guess I didn’t understand it or found it too difficult for me compared to CasaOS and I discarded it. I may try it in the future if CasaOS feels too limited. About Docker, do you know how can I check if I actually installed it via Docker or directly in the laptop? I don’t remember what I did in that aspect. I’ll check portainer and TrueNAS, since I heard of them but don’t actually know about them.
      • I’ll also check out anything I can about “docker compose stacks w/ a web gui like komono” and have them in mind if I reset my server architecture.
      • That’s so useful and I’ll totally look into it. This “vibe-coding” style feels (not surpriseingly) limiting and makes me waste so much time. I’ll begin learning actual coding.

      Thank you so much for your time and knowledge :)