You could try something like YunoHost to get started! It’s kind of a one-click deployment platform for self-hosting, ready to use with user management, reverse proxy with SSL, somewhat preconfigured services to choose from, etc.
Ideally you can also learn the tools needed like Docker, Ansible, etc, but with yunohost and a SBC (e.g. RaspberryPi), or a €5/month VPS (easier if you want to access your services publicly), you will have a ready-to-use boilerplate that you can start building on.
Learning all the individual technologies at the same time might be overwhelming at the beginning, but something like yunohost will allow you over time to learn all the stuff around the deployment itself, e.g. how domains and DNS records work, how the SSL certificates are generated, which services you would like to set up and use, the configuration needed for these services individually, etc. And at the same time you can start using a few useful services!
Then, as you start learning, you could start setting up services one-by-one manually with e.g. Docker, either at the same server or a new one.
Don’t forget to look for the admin documentation for each software you’re setting up (e.g. Nextcloud etc). And look at awesome-selfhosted, it’s a list of more resources and software to use and deploy!
Good luck and have fun!
(Edit: There are some yunohost alternatives you might want to look into, but most of what I found either had a very small selection of software, or had a subscription service etc that they want to sell you, while limiting what you can do on your own server)
Yes, it’s pretty good! I’m a DevOps engineer, and have experience with Ansible, Docker, etc, but I just couldn’t find time to deploy services the best way that I wanted™ for my personal server
So, even though it e.g. doesn’t even use Docker, yunohost really helped me start using the many services I wanted/needed, which otherwise might take e.g. a few hours to a couple of days for each of them to research and configure
So I have one “production” yunohost server, one “testing” yunohost server to test services that I don’t know if I’ll use yet (and I wouldn’t want them to interfere with production e.g. by using too many resources)
and one server without yunohost for mailu, Docker, traefik, etc, which I can use to deploy services the correct way™ as I figure out the services that I really use and find the time to migrate them one-by-one
Even when using yunohost, there are so many things to do after deploying a service (e.g. DNS, configure the server and client software), so it has been really useful to save time when deploying and configuring.
I think it gets you ~80% there, makes self-hosting accessible to everyone, and helps democratize the Internet a bit 💚 It’s more important to have many people setting up e.g. Immich or Nextcloud for their family photos, than only a few Linux people being able to learn how to do it perfectly (Docker/kubernetes high availability, reverse proxies, etc) and have everyone else to need to resort to using centralized services