Hi Everyone! Lately I’ve been captivated by the idea of self-hosting, and 2 days ago I got an old laptop from my sister and now I think it’s time for me to actually try. I have ZERO experience: I’ve always been interested in Tech and I like to try and play with lot of stuff, but apart from super basic use of bash and some fun in Android modding (playing with ROM, kernels and recovery) I know nothing. My idea is to start simple by self-hosting a mastodon server to learn the basic and maybe later try something like jellyfin, joplin and airsonic.

I tried to read as much as I could online, but it seems like there’s a jungle of possibilities out there and so I came here to ask if what would be my approach is sound or if I am completely out of my mind.

I started by installing NixOs on the above mentioned old laptop. Installing it was actually easy, knowing how to use will be the problem.

My idea is the following:

  • Getting Cloudflare CDN with the Free-plan to hide my server IP
  • Learn the basic of SSH and use it to to authenticate only via keys
  • Learn and use nginx for reverse proxy
  • Set up a firewall
  • Install Mastodon code on NixOs
  • Set-up my instance
  • Use and maintain it

I understand that Docker is widely use to have multiple applications running on server and the advantage is that each application has its dependencies divided from the others. From my understanding though, also NixOs works in the same way (having dependencies divided for each package), so in theory once I install different applications on my machine I should be fine, or am I missing something?

Last but not least : do I need to buy a domain or is it just something cool/easier to have but that I can do without?

Many thanks in advance!

EDIT: Thank you all for the tips and suggestions! Really appreciate it! I will start by setting up my little media home server and then from there I’ll see 😊

  • kimbonaut@programming.dev
    link
    fedilink
    English
    arrow-up
    9
    ·
    1 year ago

    I’d start with internal services first before opening yourself up to the outside, starting with Jellyfin possibly. Docker is worth learning as it’s agnostic to the system you are using and helps with prototyping/testing quickly - something invaluable as you learn and make mistakes in your journey. From maintaining the fun stuff, such as your media service, you’ll learn the other stuff, like ssh keys, Reverse proxy &c: Iterative improvement is the game when it comes to your homelab and yourself.