Recently my distrust in centralised social media services has intensified to the point that I felt it was important for me to make alternative arrangements. I’m very happy using Mastodon for my online social interactions, but the character limit means that it can’t meet all my needs. I wanted somewhere that I could write pieces free of a 500 character limit. I wanted a blog.
The search
I ran into some surprising difficulty when it came time to search for a hosting provider though. I’ve spun up many a blog before, and my MO is mostly just to spin one up on AWS, but given the sort of things I want to publish on this blog that won’t quite cut it this time.
I want to be able to write about trans rights, I want to be able to post my porn, and I want to be able to speak freely about genocides. I want to do this without the risk of running afoul of my provider’s acceptable use policy, and without feeling a threat of government-imposed censorship.
Most of the major cloud providers (AWS, GCP, Azure, Oracle, Akamai) are operated out of the US. Given how hostile the current administration is to trans people, this feels like an unstable location to host queer activist content.
Alibaba & Tencent are also popular options, but when I looked into these further I found that Chinese law prohibits pornography, and this covers their cloud providers. It’s important to me that I can get lewd on my blog, so this was a no-go.
gridscale is run from Germany, which recently has been cracking down on pro-Palestine speech. Another no.
OVHcloud and Scaleway are headquartered in France, which currently has a fascist president. As far as I can tell there isn’t anything immediately that would prevent me from hosting what I want with a provider in France’s jurisdiction, but it seems ill-advised to rely on that remaining the case.
That’s basically all the public clouds exhausted. But I don’t really need a cloud provider, there’s no reason my blog can’t be hosted on a classical hosting platform. I just need to think about what I really need from my hosting platform.
Static hosting
It’s very important to me that I keep operating costs low. This makes a static website the ideal option, so what I really need is a CDN and some object storage.
After looking around for a bit, I found Bunny.net, a CDN platform headquartered in Slovenia. I did some digging and as far as I can tell Slovenia has fairly typical European legal recognition of gay & trans people (which is to say, not great, but not blatantly hostile). They have no laws which would meaningfully restrict my ability to publish porn, and indeed Bunny’s Acceptable Use policy explicitly allows adult content.
There is some weird phrasing in Bunny’s acceptable use policy for adult content. It says that the content must be “legal under the laws of Slovenia, each of the 50 States of the Union providers”. This suggests that if my adult content was made illegal in any single US state then I would no longer be able to host it on Bunny. This is a little alarming, but I have some hope that this might not be enforced, especially since I have configured my replication settings within Bunny to avoid storing content in any US regions.
Bunny was easy to set up and configure, although it is a little bit lacking in some features. I don’t have a lot of control around caching or headers. Also their edge scripting platform only supports Origin Request/Response events, no Viewer Request/Response events. Still, I’m enjoying my time on the platform so far. It even supports Terraform.
Domain registration
Bunny can handle DNS, but they don’t provide registrar services. This runs into a similar issue where most of the main providers are within countries that are I don’t feel I can rely on.
I ended up going with OpenProvider, which is based in the Netherlands. I have a lot of complaints about their clunky user interface. The way that it let me go through the entire process of buying a domain without asking for payment, and only afterwards rejected the purchase because I hadn’t topped up my account first, forcing me to start over. The way it required me Google searching for a forum guide just to find out how to change the NS servers for my domain. But ultimately a registrar is fairly set-and-forget, so it doesn’t matter too much to me that their interface is a nightmare. It’s done now.
Git
With my public hosting sorted, the next question was where to store my code. For this blog I wanted a really quick-and-easy static-site-generator, so I used Gatsby with gatsby-source-filesystem
. This means that my editable copies of all of my content will also be stored in this Git repo.
Unfortunately GitHub and GitLab both prohibit sexually explicit content. There seem to be limited alternatives to these, with most managed-Git options I found being prohibitively expensive private GitLab hosters.
I think the cheapest way to get access to a private Git remote with permissive content policies is to self-host. In my case I spun up a 1nfiniteloop/git-remote Docker container in my homelab environment. This already has a comprehensive offsite backup system configured, so my data should be safe here. If you don’t have your own server you could do the same thing on an inexpensive VPS.
Compute
At present I don’t actually need any compute capacity. But I’m considering hosting my own Mastodon / Lemmy servers in future, so at some point I expect I might need this. Even though I have compute infrastructure in my home, for various reasons (bandwidth, reliability, security) I don’t wish to serve public sites from my house.
I haven’t actually set anything up in this area yet, but Tilaa looks pretty good. It’s hosted in the Netherlands, the Terms of Service allow for everything I’d want, and the pricing seems to be within reason. They also have a serverless Docker environment, which appeals to me.
Closing thoughts
This setup is good enough for me for now, but far from perfect. Do you know any good options I haven’t considered? Let me know over on Mastodon (@Misofist@girlcock.club).