Henrik Carlsson's Blog

All things me.

Installing River4 on Ubuntu

posted this on and tagged it with River of News

I just installed River4 on a headless Ubuntu server. Unfortunately it was not as straight forward as it was installing it on my Mac.

If you’re trying to install River4 on Ubuntu, please read this whole article. Don’t do things as you read. Reading it in its entirety will likely spare you some headaches.

Dave Winer, the creator of River4, has an easy to follow guide on how to install River4 on a Mac. To install it on Ubuntu you need to be able to wing it a bit.

The first order of business for me was to install Node.js. I tried to do that simply by running

It seems to work fine so I uploaded the River4 files via my FTP-client of choise. I then navigated to the River4 folder and tried running

And hit a big snag. It turns out installing Node via apt-get does not install NPM. So I tried

Okay, NPM got installed and I tried npm install once again. Still no luck. NPM itself ran but couldn’t download the specified packages.

After doing a bit of searching I found a Stack Overflow post that instructed me to change the way NPM got its data. I managed to do that and it seemed like the install process got further but it still ended up failing, now with and error message telling me my version of Node was too old for River4.

WTF?!? I just installed it. How can it be too old?

Well, after som more searching I found an article titled Node.js v0.12, io.js, and the NodeSource Linux Repositories. I did not read every word of it but the gist of it is that the latest versions of Node is not accessible via apt-get(!). Instead the article gives us the following command-line instructions to run:

# Note the new setup script name for Node.js v0.12
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -

# Then install with:
sudo apt-get install -y nodejs

I’m sure someone smarter than me will know the exact details of what this does. To me it was enough to know that it would allow me to install version 0.12 of Node. So I ran it and then tried to install the River4 dependencies again. Once again it didn’t work.

Out of frustration I removed the entire River4-folder from the machine, re-uploaded it via FTP and tried NPM again. This time it worked and the app could be launched with node river4.js.

When I logged out of the server it stopped working so I learned the hard way that I needed to launch it using nohup node river4.js > /dev/null 2>&1 &. This way it’ll continue running in the background indefinitely.

What to do

This is an attempt of telling you how to go about installing River4 on Ubuntu. I leave absolutely no guarantees. It might not work. It might blow up your server. It might make you sad.

  1. Install the latest version of Node.js using
    > # Note the new setup script name for Node.js v0.12
    > curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
    > # Then install with:
    > sudo apt-get install -y nodejs
  2. Install NPM using sudo apt-get install npm.
  3. Upload the River4 app via FTP.
  4. Run npm install in the River4 folder.
  5. Start the app and server using nohup node river4.js > /dev/null 2>&1 &.

If NPM gives you problems in step 4, try changing where it gets its data:

Replies and comments