in Micro.Blog, rss.chat

rss.chat install diary – had some problems

I am writing this post to document the issues that I experienced in installing the rss.chat chat server recently introduced by Dave Winer. I disagree with his assertion that it is “easy to deploy on Node.js”. In following the initial rss.chat server, there are some mentions of changes/updates that are being made. That is good, but some of the issues I experienced have not been addressed, and some of them are significant barriers to entry in starting a new rss.chat server.

I would have posted this in an issue on the Github repo, but I am blocked from posting on github.com/scripting, so I am using my own space to capture the issues.

Executive Summary

  • Spent wasted time setting up AWS S3 folders for initial rss.chat structure
  • Issue with database setup
  • Had to set up a different port for the app to run on
  • Had problem with davesql Node package
  • Had to configure AWS SES credentials before any new users could sign up (BIG BLOCKER!)

Details

As I noted earlier, there were two folders that needed to be set up within an AWS S3 bucket to support feeds generated by rss.chat. I spent an hour reviving my AWS account, then figuring out how to set up a bucket, then adding folders to support the structure mentioned in the install.md file. I was within about 10 minutes of starting the app when I noticed that rss.chat had been updated to remove the AWS S3 bucket as part of the setup. AWESOME! I picked up the latest code and moved on…

On the install.md page, there was a script to set up a MySQL database. I am using Opalstack for hosting now, and their workflow is to set up databases via their web admin page. I went ahead and created the database there, then logged in to create the tables. My mistake here was that I did not need to include the text in install.md used to create a database. All that I needed were the commands to create the tables. The command did not “hurt anything” (the tables got created), so I moved on.

On my first start of the rss.chat server, I saw that things were trying to run, but there was nothing appearing on the site URL. After review of the startup log, I saw the app was running on port 1460. For an Opalstack Node app setup, it specifies the port that the app needs to run on. I added the following line to config.json, and that addressed the problem:

    “port”: 20873

Next, I saw several error messages that indicated that the app was having problems in communicating with the database, and that I should upgrade my database connector to a later version (I can’t remember the exact text, and I did not save it). Side note: Opalstack uses MariaDB instead of MySQL, but the database is feature-equivalent to MySQL. I started digging through the Node packages installed, looked at davesql, and saw that there was a flag (flUseMySql2) that would use the mysql2 package instead of mysql. I tried adding this in the config.json file, but review of the log information at startup showed that mysql was still being used. I ended up hard-coding the flag in the Node package file davesql.js as follows:

config.flUseMySql2 = true;

I don’t recommend this for general use, but I was trying to resolve issues in the most direct way. I have seen a recent post on rss.chat referencing this flag, will wait to see if there is some other rss.chat update to address this.

After these changes, I was able to start the app, get the app screen to come up, and enter info to create an account. I then saw this error in the app log output:

sendActualMail via SES: err.message == Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1

Ugh! I wrote to a person involved in the rss.chat development and asked if a new server setup needed AWS SES credentials set up to be able to send email to new users. The person responded that “The configuration for rss.chat is very similar to that of FeedLand. The same SMTP settings for FeedLand should also work for rss.chat.”

What? This did not answer my question, and instead pointed to some documentation in another app as the solution. I replied saying I looked at his Feedland reference, and saw that it said AWS SES credentials were required. Now WHY is that not in the docs for rss.chat? I asked the person about this, but received no reply. There has been no updates to the rss.chat documentation addressing this crucial issue.

I then spent several hours (with lots of assistance from Claude) to get AWS SES credentials created and set up on the server. I finally was able to run the server successfully (https://rsschat.andysylvester.com/).

Takeaways

I wanted to see if following the instructions given in the rss.chat repo were sufficient to set up a new server. In a word, they were not. Dave Winer says this is “easy to install”, but this is not the case.

Criticisms

The AWS SES credentials issue is the biggest one in my mind. If this is a dependency, this should be documented. I would think that there are existing email authentication libraries that could have been included in the app and removed any dependency on another service for this feature. I have a writeup on what I had to do for the SES setup, contact me if you are interested.

I am glad that Dave Winer stepped back from needing to have a AWS S3 bucket to run this app. From comments on rss.chat, it sounds like even he had problems in setting up new test servers due to this issue. Again, I do not think that dependence on some other service to support the app is a good thing. Everything should be included in the repo that is needed.

Finally, it appears that all of the client-side code is brought in from Dave Winer’s site (scripting.com). Why is that? Again, here is another dependency on something else. Not good.

Conclusion

Now that I have a server to work with, I will evaluate the feature set and report in a a future post on my thoughts.

Write a Comment

Comment