Migrated VPS

black server racks on a room

When I started hosting this website on DigitalOcean about 9 years ago, the version of Ubuntu that was all the rage was 14.04 LTS. So I started my hosting journey with that. Pretty soon though, 16.04 came along and since I was ever active on my server, I upgraded to that using nothing more than a few apt update commands. Since then, other than a few forced efforts to secure the OS and install what I needed for experimentation, I didn’t do much to upgrade the underlying software.

So it happened that, when at the beginning of the year I tried to upgrade from PHP 7.3 to 7.4 (a process which failed), I was made aware of the fact that the chasm between where my software stack is and where it ought to be is rather large. I tried running a straightforward upgrade from 16.04 to 20.04. The blocker was mysql. Apparently, no matter what third party repos I tried, the upgrade from what I was running to whatever’s the current just wasn’t possible. Well, it may be possible, but it would not be easy. The recommended path, on multiple websites, forums, and blogs, was to just fire up a new VPS and migrate my websites and services manually. Daunting.

When I learnt of this, I realized that the amount of time and effort it would take was too much for me to give at that moment. Family needs and other projects held precedence. Right now, I wouldn’t say those needs have abated, just that I’ve adjusted to both those asks, and I’ve given myself enough time and another factor for this migration – money. DigitalOcean is a nice provider in that they’ll only charge me for what I use through the number of days that I use it. I know this is sort of the norm everywhere now, but it’s a nice-to-have and a nice-to-mention nevertheless. Instead of doing the entire migration within the span of a few hours, tiring myself, and increasing the odds of a failed migration, I spread the entire project over the last few days. I moved my other WordPress install first, the one whose failure wouldn’t affect me directly and personally. It’s a side project that we’ve gotten side-tracked from. I’d be totally fine if it craps out.

Moving WordPress seemed daunting, until I realized that I have a tool that can make it extremely easy. I’ve been backing up this website to Dropbox using UpdraftPlus for the longest time. It’s fast, easy, and totally a background process which has not needed my input since I set it up. I checked it out and sure enough, it’s got a pretty straightforward restore process too, included in the free version of the plugin. Of course, they offer paid tools for much easier migration. But I reckoned the free one has got to work just as well. UpdraftsPlus creates a bunch of separate zip files for the database, uploads, themes, plugins, and “other”. All you have to do to migrate is to create a fresh install of WordPress, install the plugin and drop the files into the interface and then hit restore.

This blog’s backup comes in at about 750 MB, while the other site is about 160 MB. I did the latter first, and since it stayed up just fine over the last few days, while for the first time in my life I ran two VPS in parallel in DigitalOcean, I ported over this blog as well as the other applications and sites which I wanted to keep. It ended up being a good housekeeping too, since most of the active nginx sites were not doing anywhere and thus were liable to be security issues. Plus, it gave me a chance to really start from scratch.

Over the years, I let the older VPS grow organically and get cluttered as all in-use systems do. When I was attacked by a script kiddie trying to get into this site and wreak havoc (at which they partially succeeded), I installed fail2ban and went aggressive with it, to the point where I got locked out of SSH quite a few times and had to recover via console. I installed multiple versions of node to run shortlived telegram bots or expressJS apps. I installed numpy to create a webUI for an experiment my brother wanted to run. I also created a series of scripts to run via cron – to periodically free up space and memory, to pull in data and recycle logs.

All of this had become a sore point for me anyways. The services running on the VPS often went down. The APIs responded only half the time. The downtime was somewhat acceptable till it wasn’t.

So this new VPS, well, I’ll run it as clean as I can for as long as I can. Of course, I’ll get hit by something or the other and I’ll have to respond with better security measures. But I wasn’t running any firewall before and ubuntu 20.04 seems to be running ufw by default, which is nice. I was also able to update PHP from v7.3 all the way to v8.0, which is nice, but came with it’s own set of challenges. One function in WordPress and another in a homegrown bookmarking tool were failing since they don’t work in PHP 8.0, so I had to spend some time figuring that out. But it’s good to have the latest software and to hope I’ll keep things updated better this time around.

All in all, a good experience. My old VPS is now sitting in shutdown mode. I’ll let it sit for a couple weeks, while I test out the new system and see if I forgot to move some settings or such. I know it’ll cost me almost twice as much for the month to run both machines in parallel, but it’s worth the peace of mind I’m getting.

Plus, this migration got me in touch with some projects I’d forgotten! I regularly use my liveblog, but completely forgot about “SomeDay”, a bookmark/linkblog of articles I didn’t finish reading and hope to, some day. It’s got an RSS feed and all, so maybe you can find something in there that you might want to read, today.

Links to everything currently hosted on my new VPS –

this blog

tempdeals.net

scratch.nikhco.in – a minimal writing tool with local browser storage and ability to start a TogetherJS session to collaborate with others in real time.

liveblog.nitinkhanna.com

someday.nitinkhanna.com – I haven’t read these articles yet. Maybe you should try?

Squarespace is the best and the worst at RSS

Within the last 12 hours, I’ve come across two websites hosted on Squarespace that portray how one mustn’t do RSS. Sadly, at some level, it’s not necessary that the owners of these websites even know what I’m talking about.

I’d like to name these sites –

Soup

and

StephenMarche

These are nice sites – well designed, purposeful, vibrant. But their content is so pitifully inaccessible through RSS. Here’s why –

With Soup, I really wanted to get RSS access to all of the topics they cover. These are Culture, Food, Interviews, Features, to name a few. Usually, when I’m on a site that has RSS feeds, the SubToMe extension tells me how to get to it. In the case of Soup, it failed. The content is visible on the homepage, but the RSS feed that it picked up was blank –

http://thesoup.website/index-rally?format=RSS

‘rally’ is what piqued my interest. What is this CMS?

WhatCMS says that it’s Squarespace.

Well, what do Squarespace’s docs say about RSS feeds? Do they even support them?

As it turns out, they do, and quite well! (or so say their docs)

So I opened each of the ‘topics’ I wanted to subscribe to on Soup’s site and found their RSS feeds using SubToMe. One example –

http://thesoup.website/culturesoup/ -> http://thesoup.website/culturesoup?format=RSS

I immediately noticed that the content is there in it’s entirety! That’s amazing. It almost never happens on commercial sites that the RSS feed carries the entire content.

Good – RSS feeds contain entire content

Bad – I had to subscribe to eight different feeds. There’s no parent or ‘all’ feed

 

Later, I came across Stephen Marche’s writing in NYT and that led me to his site. Again, beautiful site, really modern, really functional and pleasing. I jumped to the Essays -> Recent Work section but alas, SubToMe didn’t find any RSS feed!

By now, I’d wizened up. I know that on most pages, just adding ‘?format=rss’ at the end will get me the RSS feed. So I did that. Nothing. Why is that? Perhaps because the recent work page isn’t really a traditional list of items that Squarespace converts into RSS. It’s a static page which the Admin just adds URLs to the top of. But how would I know the difference? There’s no way. So as of right now, I’m subscribed to Soup’s RSS but not to Stephen Marche’s. I followed him on Medium, but ugh.

Pro – ???

Con – Maybe the admin turned off RSS on purpose? Maybe the page I’m looking at cannot support RSS?

Now, I can reach out to the owners of these sites to figure things out. Maybe I’ll end up educating them on the importance of RSS and maybe I’ll learn something new about Squarespace (do they even support an ‘all’ RSS feed? I don’t know, I’ve never used the platform). Maybe all they need is a slight push in the right direction, or maybe it’s a long project that’ll require a reworking of their workflow (which, tbh, why would they do that for me?)

But I don’t want to do any of this. RSS is the perfect stalker medium on the Internet. Facebook and WhatsApp show you read notifications. On twitter and Instagram you’d end up hitting ‘like’ by mistake. But RSS is one-way (depending on which RSS reader you use) and so it’s perfect for people like me who just want to cultivate their little corner of the Internet.

There’s a post out today by Brent Simmons talking about an article that’s talking about the demise of RSS. Brent points out that RSS doesn’t need to be the ‘default’ for everyone and RSS readers don’t need to be installed on every device on Earth for this to be a successful technology. It already is.

This is most visible with beautiful walled gardens such as Squarespace. Most people who host with Squarespace do it because it’s commercial and aligns with their interests. The primary method of communication for consumers is the newsletter. There are options for eCommerce shops, podcasting, and email campaigns. Much off this could happen without RSS. But Squarespace took the basic RSS technology and chose to use it as the back-end for most of these things. Podcasting is basically an RSS feed with audio attached, so there really was no choice but to use this open standard. Wherever RSS feeds are available, they’re full length and rather useful. So could RSS have a place on the Internet? It already does.

Feedafever for ~Free

I’ve been reading Chris Anderson’s “Free” and while I pay for the occasional service or app, my endeavor is to get as much as I can, for free.

Fever, an RSS reader that’s clever, quick and time-saving, is a recent purchase that I’m finding to be just amazing. What’s more amazing is that the product is worth $30 but I found someone who didn’t need it any more so he sold me his activation key for much lower… Continue reading

Feedafever for ~Free

I’ve been reading Chris Anderson’s “Free” and while I pay for the occasional service or app, my endeavor is to get as much as I can, for free.

Fever, an RSS reader that’s clever, quick and time-saving, is a recent purchase that I’m finding to be just amazing. What’s more amazing is that the product is worth $30 but I found someone who didn’t need it any more so he sold me his activation key for much lower…

Anyways, the look and feel of Fever is great and despite the really small app ecosystem, I’m really enjoying the app. The only problem? I’m a fan of RSS and follow just about any blog or feed that I find on the Internet. That’s kind of why I needed Fever – it has features such as sorting the feeds based on their relative “hotness” and presenting it in a very coherent format. But all those feeds being polled so many times were causing a bit of a problem – too much storage and too much bandwidth.

Continue reading

Year of Social

The season is changing and here, in Boulder, Colorado, it means colder nights and shorter days. It’s time for animals to wrap up their food gathering operations and finish working on cozy homes for the all too familiar winter.

 

This hibernation is also coming to a very important aspect of my life. Last year, at about the same time, I dumped Facebook in favor of Twitter. I had been inactive on the micro blog since long and returned to it, only to discover so many new and amazing connections and services. I found people worth talking to and got help where I needed it. I also posted a lot on this blog here, taking it through many iterations, themes and (free) hosting providers. Now I’ve moved it to a paid provider – NearlyFreeSpeech in order to maintain a better uptime ratio.

Continue reading