A Social Network

23rd Nov 2022

Greetings, Newfoundlanders and Labradorians! I go by Wilson, and I am the admin of the nfld.me Mastodon instance. In this post I will reveal my inspiration behind starting up and maintaining this instance and go into some of the details around running it and my plans for future growth!

So, I present to you: nfld.me, a Social Network Tale in Three Acts.

Act I

Chapter 1: The Deep Past

The year was 2002. My god, just typing out that year, I can't believe it's been two decades already. One of my high school friends (nickname: Kaffee) was in the Webmaster 3224 course with me. One of the main projects (or the main project) was to build a PHP website, and we each made our own little websites. Kaffee wanted something that would allow him to post his journals for friends, like a personally made LiveJournal/DeadJournal, so he did build it. This became the PHP project known as Blue Kaffee. I was enthusiastically into computers, networking, and the Internet, so naturally I was one of the first to register to the forums feature and spread the word as it grew.

It was just Kaffee's journals, writings (poems, prose, etc.), and galleries initially, with forums any of us could join and chat on. It was bluekaffee.cjb.net and it had a Macromedia Flash intro.

This was a time of the earliest social networks, so this was a very grassroots project. He originally had the thing hosted on his desktop PC, serving up port 80 to the world from a home DSL connection, but only of interest to a dozen of us at our school. Then a few dozen. Then his computer crashed, as a turn-of-the-millennium home desktop running as both a home desktop and an increasingly in-demand web server would. He lost the codebase and database of that early iteration of the site and was devastated.

Chapter 2: The Reincarnation

It is February 2003.

After the devastation passed, he worked up the motivation to rebuild under the brand "Blue Kaffee 2.0." He coded and coded and coded for 2 days straight. I was again one of the first to rejoin. This time, journals, writings, and galleries were also for everyone.

He then enlisted me and a few other friends to collaborate on the codebase to build on more features and squash bugs (at least some of them). At this point, Subversion (SVN) had just been born but was 2 years from version 1.0, git was still 3 years from being invented, and GitHub 6 years. Alright I'll get to the point: We didn't use any form of versioning system, we just coded a dev version and made sure we were working on separate things at the same time. When things worked well enough, we copied PHP files to the live version and went back to developing. Sometimes we coded directly on the live version like big ol' dummies.

Due to my enthusiasm and knowledge of the project (and being a friend), I was granted Admin rights under the new permission system, with the power to take actions on users and posts, and later, to change user levels (promote users to moderators, ban, etc.) as the site grew, and it really grew.

It quickly moved to a shared host (bluekaffee.badmins.com), and then to a dedicated host, finally settling with its very own domain name, bluekaffee.com. Soon most of the millennials in the province at least knew what BK was, and many had an account (or few) there. We had to implement rules and regulations because most of us didn't want it to be the wild west there anymore. The added structure benefited the site. Since we were in high school there was always tons of drama, but it was our very own social network, and we loved it.

Act II

Chapter 1: The Plateau

By the end of high school in 2004, we had looked back at what BK had become and said, "wow." It stuck around, keeping us together during our college/university years as we gradually started using it less and Facebook more. Then, primarily Facebook with check-ins to Blue Kaffee. Most of us moved on to the bigger web, Web 2.0, but some remained on BK, and it continued to stick around.

In 2007, Birdsite was born as a pioneer of Web 2.0. Microblogging you could do from your phone via SMS! The posts rolled along in real-time! Neat! It was niche, barely anybody used it or knew what to use it for. Digg was popular. YouTube was becoming big popular. Facebook was popular. Birdsite was enh.

Chapter 2: The Social Network, The Adult Millennials and The Nostalgia

It's the 2010s.

Blue Kaffee: Still around, though no longer a part of our lives like it once was.

Digg turned into something completely different that nobody liked, and its users fled to reddit.

YouTube kept growing.

In this decade Birdsite took off, and Facebook was the network most of us millennials continued to use, but we used Birdsite too, because now (almost) everybody was there. We looked back on the earlier years and laughed… and cried. We became adults, living our own adulty lives.

Intermission

May 20, 2021: I buy the domain name nfld.me on sale.

Act III

Chapter 1: The Month Prior, or "All Is Not Well in Birdland"

It is October 2022.

Blue Kaffee: Surprisingly still there, in all its blueness, and Web 1.0 PHPness.

Birdsite: A billionaire submitted a purchase offer on a whim, had buyer's remorse, but was forced to buy it anyway. Now he's tearing it all down due to personal reasons, while being the worst boss possible to the remaining staff doing his bidding. Some former maintenance staff give it a 50% chance of severely crashing before the 2022 FIFA World Cup is over.

reddit: Still reddit.

YouTube: Matured.

Facebook: Many of us use it to stay connected, out of convenience. It serves its purpose but is advertisement hell and foments echo chambers of hatred while its stakeholders continue to profit. I quit using it several months ago.

Chapter 2: The Jump

It is now November 2022.

I decided to deactivate my Birdsite account once the air-con started to really fall out of the window toward the dumpster fire.

After the weekend passed, I had a base knowledge about Mastodon, but wanted to join in to fill the void and learned more about how it worked. Initially, I made an account on mstdn.ca and discovered what it was like first-hand, not just through research, and then I realized I loved it!

This generated the same feelings ✨ I got during the early days of the social web, when you could just make something, spin it up, and your friends would join you. It'd be like a little party going on 24/7 that you could drop in and out of at will, without saying hello or goodbye, and some of your friends might even be there at the same time as you.

This spark inspired me to spin up an instance on my own server for myself and my friends.

Chapter 3: The Present

It is still November 2022.

Two years ago, I had bought the domain name nfld.me, and I figured this was the perfect fit for it. At first, I used my home server in my utility room and used the docker version of Mastodon, but with Apache2 instead of nginx. After some struggle (since using Apache2 is not officially documented), it worked.

A side note, spinning up the nfld.me instance wasn't difficult for somebody of my experience but would be for somebody unfamiliar with systems administration.

The media then streamed in. I have this server running several websites, so I had the virtual machine allocated to 500 GB of disk space. I increased this to 1 TB as I saw how fast the media cache grew. It kept growing. At this point I decided to implement a cron job (scheduled script) to make sure it purged out cached media older than 30 days to avoid infinite growth. Once a few people started to join up, I realized this much traffic would not be a pleasant experience for my home Internet connection, so I set up a Backblaze B2 bucket to host the media and felt relieved.

After a few days, and with Winter fast approaching, I decided I couldn't just keep running it on my home server. While it creates on- and off-site backups, the UPS (battery backup) could only power it long enough to safely shut it off during a blackout, but not keep it running; I made the decision to move it to a VPS.

I thought to myself, "I love this project, and I want it to grow," so I settled in for a night of documenting a migration procedure. I executed that procedure the next night.

First, I prepped my new VPS with iptables and other necessities. I figured out that since I used pre-built docker images, all I had to do was: Pull in those images on the VPS, copy the configuration files and adjust them to fit the new host, install and configure nginx instead of Apache, bring the site offline, point my DNS to the new host, export the database to a file, upload and import that file on the new host, and bring the docker images up.

It went relatively smoothly. I say relatively because I was moving from Apache to nginx so it created a few sticking points before I could make the instance live again. It's likely future migrations will maintain the same software configuration, but now I'm familiar with running Mastodon on both nginx as intended, and Apache as not intended.

Since then, I have set up nginx to act as a proxy to the Backblaze object hosting so it can quickly and less expensively serve up repeated requests for the same images/videos within a 48-hour period.

I decided to reactivate my Birdsite account recently to prevent my handle from getting taken and so I can personally delete my posts. I also changed my display name to reflect my move to Mastodon.

And here we are!

Chapter 4: The Future

Combined with my decades of technical experience, a diploma in Computer Systems and Networking, and what I have learned from social media content moderation over the years, I am equipped to help usher forward a new era of social networking, one reminiscent of a bygone era of social networking, but with a touch of modernity.

In addition to the technical considerations of scaling resources, I am also aware that, as the community grows, I will need to delegate moderation duties to multiple responsible people who are familiar with appropriately actioning rule-breakers.

Epilogue: The Plea for Donations

My monthly hosting costs currently run at $38/month, so I rely on donations from viewers--er, Tooters? Donners? Mastodonians?--like you to keep things running.

I'm sorry my story-telling weaves in technical details; my mind just be like that! And the request for money; I'm not a billionaire ;)

You can donate here: ko-fi.com/nfld

For media inquiries, please contact Wilson via email: admin at nfld dot me

Updated November 25, 2022 to reflect current cost of running on a dedicated server.

Next Post

A Social Network