Hosting hundreds of Pleroma servers for customers
Hey all! This is a big post about my idea to launch a Pleroma hosting service. I have some strong big-picture ideas about marketing, and I genuinely believe this project can make a big difference. What I'm missing is the infrastructure. I was hoping the community could help with ideas about the best way to approach this.
How I got here
I've been working towards creating a fediverse hosting service for a while now. In fact, pretty much all the work I've been doing on Pleroma has been leading up to this. I started out working on Mastodon, but it quickly became clear that Pleroma would be a much more viable option for hosting thousands of small servers, due to its efficiency and scalability (ie it's WAY cheaper!)
Why a hosting service
First off, I want to share some thoughts on why I think a hosting service would be valuable to Pleroma and the fediverse at large:
It will make it easier for people to join the fediverse. This includes nontechnical people, but also technical people who are short on time.
A growth in users will result in people investing in the fediverse. More time, more effort, more love and energy, more money.
It could create jobs. It will bring money into a space that's sorely lacking it.
It's a new frontier. I believe there's a demand for it, but it's been mostly unexplored.
About the market: Masto.host is already doing this. They manage 500+ fediverse servers and make up more than 10% of the entire fediverse. I think this demonstrates the clear demand for hosting, but I believe we can reach an even wider audience, and do it cheaper by using Pleroma.
My idea: Tribes
My idea for a hosting service is called Tribes. I have a tiny demo with some marketing pages here: https://tribes-demo-1.surge.sh/
Note: The pricing is an estimate, and the content is subject to change. It's an AGPL-licensed Elixir/Phoenix app being developed in the open here: https://gitlab.com/tribes-host/tribes
Tribes is a way I think I can sell the fediverse to casual users. I am trying to present the fediverse using concepts people already understand. I will argue that people are naturally tribal, and it's better for social media to embrace that aspect of humanity than to try to force us all into one big box. I think this is more palatable than "it's a bunch of servers in a network sharing a protocol blah blah blah," and will give us the opportunity to bill this as a new social platform based on its own merits.
I want to go big with this project. I want to present a real challenge to Facebook and Twitter, but also to other social platforms like Gab and Parler, who are doomed to fail by repeating the same mistakes as centralized platforms. I want people to say: "Do you have a Tribe?" "Join my Tribe from the link in the description!" I have huge faith in the fediverse's potential and want to push it to its fullest.
The challenge: how to deploy the servers
My vision for the Elixir app above is that it offers a dashboard to "one-click" deploy a Pleroma server. Under the hood I would need Elixir to invoke the creation of a new server, probably through an API or command line tool.
I can build the dashboard. That's not the problem. The issue is what goes on at the other end of it.
I looked into Hetzner Cloud API. It looks very viable and easy to use. There's even already an Elixir library for it, elixir-hcloud. The big concern I have with Hetzner is deplatforming. From their TOS:
6.2 The client undertakes not to publish content that may violate the rights of third parties or otherwise violate the law. The placement of erotic, pornographic, extremist material or material not deemed in good taste is not permitted. We are entitled to block access to the account of any customer who violates this.
The same applies in the event that the customer publishes content which is capable of violating the rights of individuals or groups of people, or that insults or denigrates these people. This applies even without an actual legal claim. We are not obligated to review our customers' content.
These terms are highly subjective. Being that the fediverse is a social network, these terms will be nearly impossible to enforce (nor would I want to enforce them). The main appeal of Hetzner is how crazy cheap it is, but if I invested a lot of effort into building a system around their Cloud API only to get deplatformed, that would be extremely difficult to come back from.
Most other hosting services have similar terms. DigitalOcean, for example, admits they'll deplatform based on a high number of complaints alone. The only "free speech" hosting out there (eg 1776hosting or EPIK) is prohibitively expensive. Like, WAY too expensive.
I have also thought about purchasing my own servers and setting them up in a datacenter. I would likely need to obtain large startup funds to achieve this, maybe through crowdfunding. I believe that crowdfunding is worth trying, but assuming it works out, I still need to answer some questions first: how would I invoke the creation of Pleroma servers? Would I install something like OpenStack?
I'm willing to do whatever it takes to get this off the ground. I believe in my vision, but I have a lot of unanswered questions. I'm hoping the community can help guide me on the best path forward.
I was reluctant to share Tribes until I was further along, but it seems the advantages of sharing now outweigh the disadvantages. I could really use your feedback. That's the spirit of Pleroma and free software anyway, and as they say, "It takes a village to raise a child." Oh, also, "A dream you dream alone is only a dream. A dream you dream together is reality." - John Lennon. Okay, that's enough quotes for today. Please let me know what you think.