nodeStorage: Feedback on new migration changes (affects 1999.io)

I wrote a post recently about a 1999.io server that I set up for a friend. That post documented a problem that happened when I initially set up the server. A few weeks ago, he wrote me to say that he was getting 502 Bad Gateway when he tried to access his site. After some review, it appeared that the 502 Bad Gateway was due to the fact that the server process had stopped for some reason. I went to restart the server, but got an error immediately:

Cannot find module ./main.js

After some more review, I saw that the nodeStorage repo had been updated in October (https://github.com/scripting/nodeStorage). This is the backend of the 1999.io blogging tool. I remembered that in the past, some of these apps would try to update themselves periodically. From looking at the installation directory, this appeared to be the case. The update was to create a NPM package for nodeStorage (it appears this was to help with making future updates easier). I agree that the manner of updating 1999.io in the past has been somewhat awkward, so I hope this will improve the environment for future updates. However, I wanted to get my friend’s server working again, so I started trying to figure out how to fix things as quickly as I could.

The description for the new update process (https://github.com/scripting/nodeStorage/blob/master/package.md) had the following steps:

  1. Download the package.
  2. The code you need is in the example folder. Copy the two files into your app’s folder.
  3. Edit app.js to the name of your app, and update package.json accordingly.
  4. You can delete the other files.
  5. At the command line, enter npm install.
  6. You still have to have a config.json file as before.

I began to work through these steps, here are my notes:

  1. Download the package.

Since I did not think my install was ready to do the ‘npm update’ type solution (future state), I instead downloaded a Zip file of the current nodeStorage repo (https://github.com/scripting/nodeStorage/archive/master.zip) and unzipped the file.

2. The code you need is in the example folder. Copy the two files into your app’s folder.

I reviewed the unzipped file and saw that there was a folder called “example” and it contained two files (app.js and package.json). I copied these files into my existing nodeStorage directory.

3. Edit app.js to the name of your app, and update package.json accordingly.

I decided that I wanted to keep the storage.js app the same, so I changed the app name in app.js from “nodestorage” to “storage” (which corresponds to storage.js). I decided to keep the current package.json for now.

4. You can delete the other files.

I decided to delete the npm_modules directory within the nodeStorage directory (due to step 5)

5. At the command line, enter npm install.

I executed this command from the nodeStorage directory

6. You still have to have a config.json file as before.

I had a config.json file, so left it as is.

I then started the server using the command “node storage.js”, and the server appeared to come up correctly. I then stopped it and started again using the command “forever start -a storage.js”

I then repeated this operation with a second 1999.io install, except that I left app.js and package.json from the example folder as-is. I then used the command “node app.js” and saw the server come up correctly. Finally, I stopped it and started again using the command “forever start -a app.js”, with everything working normally.

Conclusions/suggestions:

  1. Recommend changing step 1 to say “getting the nodeStorage repo Zip file” rather than “Download the package”, as this gives the impression that you are supposed to issue some NPM command right at the start.
  2. Be more specific about what files could/should be deleted in step 4. I deleted the node_modules directory, but perhaps other files could be deleted as well.

1999.io: How to make sure posts get into the RSS feed

Recently, I helped a friend (Ron Chester) set up a 1999.io instance for a blog on ham radio. In his initial posts, however, he did not see the posts appear in the RSS feed for the site. I did some debugging (will go through that in a post some other time) and found that the problem was due to a setting within 1999.io. There was a reference on the 1999 blog for Facebook Instant Article support, saying that the checkbox needed to be checked for IA support.

In the default install, this box was checked. As a result, if a user posted something without a title, it would not appear in the RSS feed (the 1999 blog post linked above states this). To make sure that all posts (with or without titles) appear in the RSS feed, this box should be unchecked, as shown in the above picture.

 

Install notes on 1999.io and MyWord Editor

I am working with Ron Chester to set up some instances of the 1999.io and MyWord Editor blogging tools, and have some test installs working on my Digital Ocean instance. I did have to make a tweak to one of the files in the nodestorage app, will be filing a Github issue on this. However, I did want to capture a few points that I re-learned in doing this again:

  • Install separate instances of nodestorage for each app (using different ports), otherwise you will mess up one of the tool outputs.
  • The Twitter API setup at apps.twitter.com has changed a little bit, what used to be called consumer secret and API secret are now part of the API secrets at the top of the page with the secrets info.

If you want to try the installs, go to the following URLs: