Hi there,
I was intrigued by the idea of self-hosting my social media accounts, but was more or less a complete noob with all things hosting.
However, with the help of the community here (and quite a few hours spent on it) I finally have a working setup! Mastodon, Matrix, Lemmy, Nextcloud all self-hosted behind Nginx Proxy Manager.
Google can find a lot of answers, but sometimes some really specific input is needed - which you guys have provided over the last couple of weeks - so I just wanna say thank you for that!
Congrats on your first setup. I would recommend making sure you have fail2ban set up and test it. If you're keeping anything important, get backups going.. I worry for new self-hosters that may have a security issue and lose their hard work to a vulnerability.
I have fail2ban running as well, didn‘t mention it in the op. Also closed all ports beside 80 and 443, which are routed through my NPM proxy. SSH is allowed, but login only with ssh key, no pw authentication.
So far it‘s running well, but I expect things to break when I‘ll need to update parts of it. I have a snapshot from which i can reinstall, but recurring backups need yet to be set up.
Sounds great! By the way, if you're using docker, be careful not to accidentally have a container open a port on all interface. Even if you have a firewall configured on the machine, sometimes docker can punch a hole without you knowing. Might be a good idea to run a port scan from an external computer from time to time just to makes sure no unwanted open ports.
I use Synapse as Matrix server and Element as client. It doesn't need port 25 (8008 and 8448 are needed in my setup).
On Lemmy and Mastodon I configured outgoing mail using smtp via my existing mail hoster, so I don't send mail from my own server. Also, all googling I did said to stay away from selfhosting email, as it is a hassle not to be immediately blocked as a spam mail server ..
So yes I got synapse installed and I use element as a client but when I tried to register an account it wants to send me an email from my own server and since port 25 is blocked.
I spent a lot of time googling and on youtube, to get a basic understanding for what I was trying to achieve, 2 weeks of after-work time at least. If I should guess 40-50 hours in total.
Getting a single piece to work, by following a tutorial can be easy but to get all the things working together was a struggle. Once I had a better grasp on what a reverse proxy is and how docker containers work together in networks, pieces started to fall into place.
I started with the smallest offer available and later upgraded to the second smallest, which now has 4GB RAM. I also have rented additional diskspace, so that I have 30GB now.
RAM and CPU are now certainly fine, but I don't know yet about disk space. I read that Lemmy/Mastodon can eat up space quickly and I have currently used up about half of my disk space.
It's pretty solid for 1:1 calls, and they are currently working on Matrix's own conferencing protocol/solution.
But until then you could set up a Jitsi Meet instance along with Matrix to run multiple user calls.