I thought I would do some research. It came about when I started to wonder what bluepill is. As I may have mentioned in another post that I have used rails before but a long time ago. It was version 1.x back then. Much has changed since then … or has it?
Back in the version 1.x days I was working on a rails project for a client. We deceloped and tested in Linux and all seemed to go smoothly, well mostly anyway. One day the client suddenly dropped on us that he wanted to deploy to a windows server. Well Apache works on both and so does ruby so it should work, or so we thought, ha ha. What a nightmare! The apache module for rails gave us no end of trouble and was officially unsupported on windows.
The closest we could get to a solution was to get Apache to reverse proxy to a mongrel server and mongrel was not recommended as a production server in those days. Besides, it felt wrong saying we were running rails in Apache if it was only acting as a proxy.
We ended up taking a huge risk and rewrote the project in python/Django which was not considered as advanced as rails in those days. Probably due to it being a late starter in that space. However I was pleasently surprised about how much easier it was for me to write in python/Django and it wasn’t long before we were comfortable with Django. We then deployed to windows/Apache, using mod_python in those days, and everything just worked. What a champagne moment that was! (Well it would have been if we had any )
Now of course rails has moved to v3.x with v4 coming soon. Django has gone through several iterations since then also. However I’m still not brave enough to try again and deploy a ruby on rails project on windows
Anyway, so even though I have used Rails before I had never heard of bluepill. There is so much new stuff around rails that I’ve scarcely heard of from my v1 days. I became curious about it when I saw it being talked about on meta.discourse.org.
Well, much to my surprise I found it was for restarting processes that have prematurely terminated. Basically it sits in memory monitoring other processes and if they terminate it restarts them. What processes could this be with Discourse? I am so used to only needing a web server, a database server and a scripting language when writing web applications. I’ve seldom had to restart those and the only times I’ve had to is when I’ve forgotten to run “chkconfig” after installing them. I did have a problem with mysql not starting once but it was due to shutting the machine down suddenly and an orphaned lock file. After deleting the stale lock file I could start it normally.
So anyway, with Discourse, what is bluepill starting then? Turns out its starting something called thin. Thin, as it turns out, is a web server. The boogey man of reverse proxying returns!!! This is in their instructions for an Apache configuration and now they are running Thin! Huh?? Could this be the reason why Discourse needs or suggests more ram than any other forum in common usage?
So I say to Sitepoint, when you open this “pandora’s box” you are not only getting a rails framework with coding for a forum. You are also getting whatever else is lurking in that box. Bluepill is watching your Thin processes but who is watching Bluepill?