For this new year, I’d like to learn the skills necessary to self host. Specifically, I would like to eventually be able to self host Nextcloud, Jellyfin and possibly my email server too.

I’ve have a basic level understanding of Python and Kotlin. Now I’m in the process of learning Linux through a virtual machine because I know Linux is better suited for self hosting.

Should I stick with Python? Or is JavaScript (or maybe Ruby) better suited for that purpose? I’m more than happy to learn a new language, but I’m unsure on which is better suited.

And if you could start again in your self hosting journey, what would you do differently? :)

EDIT: I wasn’t expecting all these wonderful replies. You’re all very kind people to share so much with me :)

The consensus seems to be that hosting your own email server might be a lot, so I might leave that as future project. But for Nextcloud and Jellyfin I saw a lot of great tips! I forgot to mention that ideally I would like to have Nextcloud available for multiple users (ie. family memebers) so indeed learning some basic networking/firewalling seems the bare minimum.

I also promise that I will carefully read the manuals!

  • slazer2au@lemmy.world
    link
    fedilink
    English
    arrow-up
    35
    arrow-down
    1
    ·
    9 hours ago

    Docker really. If something goes bad, trash the container and start again without loosing your actual data.

    • RxBrad@infosec.pub
      link
      fedilink
      English
      arrow-up
      8
      ·
      8 hours ago

      Mostly Docker.

      Portainer and plugging Docker Compose XML into Portainer stacks makes Docker stupid-simple. (personally speaking as a stupid person that does this)

      Cloudflare tunnels for stuff people other than you might want to access.

      Tailscale if it’s only you.

      Reverse proxy & port forwarding for sharing media over Jellyfin without violating the Cloudflare Tunnel ToS.

    • Deckweiss@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      8 hours ago

      Dokploy is a pretty easy web gui and is itself a docker container.

      Makes it dead simple to manage multiple containers and domains. (Not for power users that need kubernetes level flexibility)