That sounds like a pretty responsible plan! 👍
And it's great you're raising the topic and discussing your thoughts on it.
And wow... I didn't realise it was such a huge number you host! 😮 Thank you for helping so much of the Fediverse to exist.
@FediThing These topics are always tricky but I think it makes sense to make this commitment. Thanks for your good words :)
@mastohost In my opinion you should charge us more, if you need to. I want it to be sustainable for you, Hugo! Your work is hugely appreciated
@mark I understand your point but I want people with less resources to also be able to run their own instance. It's hard to know what is the right answer. But thanks :)
I like Chris's suggestion of pay-what-you-want / tip jar, but in the meantime I can upgrade my instance even if I don't "need" the extra oomph. I've avoided that so far because I've worried that larger instances have higher costs, and so the delta wouldn't actually go to you.
@dcreager Well, if you don't actually use the resources there is less costs for me. In terms of app processing server resources I do allocate per size of the instance but things like database or media storage, backups I can control the resources needs and so only allocate as needed.
In terms of work for me the smallest instance gives me as much work as a large one if there are no support requests :) Large instances normally do have more support needs.
@mastohost How many instances in total there are currently? What do you use as a source for the number?
@ondra There are no accurate numbers and it will always be difficult to be exact but an approximation can be achieved by combining multiple sources. Currently I estimate Mastodon should be around 3500 active instances.
@mastohost So you'd be over 90% capacity, weren't for the 6000 rule.
Have you considered expanding to some self-hosting webinars/consulting/whatnot?
@ondra Not really, I am currently struggling for time just to keep up with the maintenance, day to day and things I need to do on Masto.host and most of it is automated on my end. I really don't have more hours left in my day :)
@mastohost this is a totally reasonable boundary to set for yourself. i've had nothing but good experiences using your service and just wanna extend my appreciation for what you do
@mastohost That makes sense. And I hope the project grows or improved to make it worth your time. Your work is appreciated.
@mastohost You are doing a great job! I have really great respect for you to host such a huge project!
Thank you for hosting our instance and for being so helpful to the fediverse.
I have personally always deeply appreciated your work. Thank you.
@mastohost Hugo, if you really meant it, why don't you just open source your code?
Not only it would make it easier for you to delegate the things you don't want to do, it will also lead to a number of people coming up with similar providers.
@raphael Raphael, I really don't think that starting a message with "if you really meant it" is the best way to communicate with someone.
Still, I will share my thoughts on that with you. If you ever used my service, you know that there currently there is no code to share. Everything is done manually on my platform. People sign up and I receive an email, I pick that email and manually do the installation on my servers.
@mastohost sorry, it was indeed bad form.
I thought there was some form of automation. The fact that you have been doing this manually is quite impressive!
@raphael No problem, I understand.
I have been doing this manually for 5 years. Basically it's just a custom infrastructure https://masto.host/infrastructure/ with a bunch of cron jobs and some batch files, that is my "automation". It works but it depends on me being online.
Currently working on a web interface to allow for automated installs, hoping to get that done by the end of the year.
@raphael And yes, I will open source any thing that I feel is relevant, no point of sharing an automation installation script that requires 3 servers for a Mastodon install like my setup does.
Still, installing Mastodon with Docker is so simple and if one cannot do that then even a script that automates the install will end up leaving a non technical person in a no update place, like is the case for non tech people with https://marketplace.digitalocean.com/apps/mastodon one click install.
@mastohost Oh, I agree that installing mastodon is (relatively) easy. But I am wondering how you'd do it at scale.
E.g: do you just spin one VM per customer or are you running this with some kind or orchestrator? How are you doing backups? Logging/Alerting? What happens if you receive abuse notices?
I have 3 layers, the web servers (NGINX), the app servers (Docker) and the database servers (PostgreSQL and Redis). Each layer is independent and can only communicate with the next one, meaning if someone could get access to the web servers they would have a harder time reaching the actual data (databases) that way.
@raphael I don't use VMs, I use Docker for the actual Mastodon code that communicates with the other 2 layers.
If I need more resources I add more servers to each of the layers. I can move instances in the app servers between servers as needed and database and web servers are usually pretty predictable and stable in terms of resource needs. No big deal there.
@raphael About backups, is just a cron that runs daily and does pg_dump and another that moves them to an external object storage. Plus, I have another cron 24/7 doing a sync of media files to the same external object storage but keeping media deletes per day. Finally another cron that deletes old database backups and old media deletes.
Like I said, a bunch of crons :)
@mastohost for the cases when someone sets an instance and uses it to spam/illegal/copyrighted content
Happened half a doze on time in five years. A couple of cases the admin was easy to deal with and took down the content/blocked any trouble account. On the others, I cancelled the subscription, refunded the payment, suspended the instance and sent them the backup so they could host elsewhere.
@mastohost Nice. Thank you so much for this conversation. You were really helpful.
There are some differences that I will have to take in consideration on Communick (I also want to do Matrix/XMPP and tie all accounts with LDAP), but overall you really helped me to not overthink it.
The reason I am asking is because I've been planning to add custom instance hosting to communick, but I've struggling to find the "right" architecture.
One-VM-per-customer seems easier but wasteful
and therefore more expensive. A full-blown clustered solution seems better, but will require more initial capital and I am feeling still a bit over my head with it.
@raphael Yep, I also never liked the idea of one VM per instance. Also, harder to maintain in my opinion.
Well, I started with a single VPS. Initially without Docker but separating user per linux user account and it worked fine. As I didn't/don't provide SSH access, that worked fine.
If you can get a couple of instances working instances running on the same VPS then you have all the basics you need and then you see what your needs are in terms of scaling.
@raphael IMO no point in building something large when you don't have the need.
But the infrastructure is not the hard part. Like, I just said here https://mastodon.social/@mastohost/108325241569438542 the people can give you much more work than the machines :)
@mastohost I respect your decision, however, it would be good if you could provide rejected customers with alternatives in terms of appropriate existing instances, alternative providers, or ready-to-install mastodon images/software (eg https://yunohost.org). I would not want to hurt the success of Mastodon because of being too "ethical" ...
The original server operated by the Mastodon gGmbH non-profit