MSPSS: is there life after the helpdesk?

sharing solutions to uncommon IT problems

Etherpad Lite on windows – not as easy as it sounds

with 5 comments


Etherpad is a great real-time collaboration tool… and it’s free. The problem is that, like most cool open source, linux originated tools, is not that easy to implement for admins with a strong MS Windows background.

What’s difficult to understand for a windows guy is that this tool doesn’t get installed through a wizard that does everything for you but you actually have to put some thinking in it… so, after you’ve unzipped the sources in a folder you can start the actual configuration.

The first part is fairly straight forward: open the settings.json and change the config to fit your needs.

If you are planning to use this server on PROD, it is recommended to:

install nodejs (remember to add the NodeJS path to the “path” environment variable)
install mysql (even on the same server) and configure the connection in the settings.json

After the installation, when accessing the /admin section you might be presented with this error: “your json is bad and you should feel bad”…

Capture

The message is cute but it doesn’t tell us much so, if you want to fix it, you should use a JS debug console (Chrome’s version is great). The JS console won’t tell you much as the error is managed and no actual JS error is fired up but if you start debugging the code with few break points you might find out a lot more.
In my case the error was due to a bad formatting of the settings file (which is compiled in json) and in particular I had inserted a common windows path, c:\program files\app\, forgetting that in Linux originated apps, Windows paths should always have double slashes (e.g.: c:\\program files\\app\\).

Last but not least, I had to face the problem of making my etherpad app Production ready for a windows environment. I had 2 major issues:

1. Which port? I’m planning to host multiple services on the same server but using these lightweight web servers only one of them can use port 80… So I’ve decided to configure IIS8 with “Reverse Proxy” this way I could host as many services as I wanted on the same port. This blog has a great “how to”

2. Set up Etherpad as Windows NT Service: I needed a way to make sure the service was always up (even after a restart) and an easy way to allow our monitoring via WMI.
I wrote a little Wrapper Service in vb.net which not only starts and monitor the responsiveness of the service but automatically restarts it if it ever goes down. In addition to that, the processes are started in the session of the service (therefore you don’t need to leave a session open) and use the process “currentdirectory” that you can specify in the web.config file.
With this wrapper service you can actually keep multiple processes under control (and not necessarily of the same type, for example with the same service I maintain 2 etherpad and 1 qwebirc).
Obviously when a process crashes you can find all sort of info in the log file.

HTH,
Roberto.

Advertisements

Written by zantoro

January 24, 2013 at 10:32 pm

Posted in IIS, Windows Server

5 Responses

Subscribe to comments with RSS.

  1. Hi, I was made aware of Etherpad today and as you have written in your blog, I have no idea how to install it. There is a quick install description on the etherpad.org website but it does not work for me as clicking the start.bat file results in an error, something about a node not being recognised.

    I just discovered this blog a few mins ago and I am exhausted from trying to install this all day (trying to install locally on a windows 7 64 bit machine). I would be grateful if you can give me step by step assistance on how to do this. Does your blog post above cover all steps in installing Etherpad successfully?

    Deji

    July 11, 2013 at 4:45 pm

    • Dear Deji,
      sorry for taking this long to answer (currently on a business trip).
      the first thing you must check is the settings.json file. In there you should make sure that the ip is 0.0.0.0 and that the port is not in use (if you run a netstat -ano, you should be able to see which ports are currently in use).
      Did you install nodejs? http://nodejs.org/download/
      could you post the message you get when you click on start.bat?

      zantoro

      July 15, 2013 at 4:41 pm

      • Thanks for your reply. I have been playing around with the settings.json file and I realised that the issue was likely the availability of any open ports. I used some online port checking apps to see if any named ports like 9001 was open and I found that most were not. I think I am probably going to have to speak to our sys admin to open up a port or two as our systems are firewalled and locked down.

        Deji

        July 15, 2013 at 4:49 pm

  2. ok, let me know if you manage to get it to work

    zantoro

    July 15, 2013 at 5:12 pm

    • I have managed to get it to work just a few hours ago. Basically I had to change the Windows Firewall to allow incoming for port 9001 and get our sys admin to switch off the proxy for my machine. Thanks for your help.

      Deji

      August 14, 2013 at 4:30 pm


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: