mupuf.org // we are octopimupuf.org

MùPùF.org Has Moved ... Again!

As you may have prob­a­bly seen, the web­site has changed quite dra­mat­i­cally. The rea­son for this change is be­cause we moved mupuf.​org to a new server with a big­ger stor­age space.

MùPùF.​org

As I was to re­in­stall every­thing again, I be­gan to look for al­ter­na­tives to all these scripts and data­bases that con­sti­tuted the pre­vi­ous server.

Let’s be hon­est, I hate scripts. Peo­ple who know me sure know the ex­tent of my hate to­wards these “easy” lan­guages that blow up in your hands when­ever you up­date any­thing. I’m a huge fan of sta­t­i­cally-typed and com­piled lan­guages since they are eas­ier to deal with from a pro­gram­mer per­spec­tive AND from an ad­min­is­tra­tor point of view. I should also men­tion that it is also much bet­ter from a se­cu­rity per­spec­tive.

Oc­to­press

Any­way, I was look­ing into us­ing Wt for the web­site but as I didn’t have enough time on my hands to do the whole port­ing and set­ting up the server in time be­fore the end of the con­tract of the pre­vi­ous server, Tim­othée Ravier told me about oc­to­press, a sta­t­i­cally-gen­er­ated web­site.

I was blown away by the logic be­hind this pro­ject! The whole con­cept of gen­er­at­ing html pages and de­ploy­ing them seemed per­fect to me! One more key ad­van­tage is that the web­site frame­work is just a bunch of short ruby scritps, a tem­plate en­gine and a mark­down syn­tax (that we al­ready used for the pre­vi­ous web­sites). Thanks to this, I was able to cre­ate a git repo to hold all the ar­ti­cles and the web­site in gen­eral. No need to worry any­more about chang­ing servers! It is as easy as a copy/paste to get the web­site up and run­ning again.

Com­ments?

Us­ing a sta­t­i­cally-gen­er­ated web­site kind of means you can­not let users in­ter­act with the web­site by, for in­stance, leav­ing com­ments, right?

Well, this is true but we are work­ing on it and it isn’t some­thing we can’t over­come. For in­stance, us­ing iframes or javascript, a client could query a web ser­vice that would store and serve com­ments as needed.

Such ser­vices al­ready ex­ist, such as Dis­qus. How­ever, due to some pri­vacy con­cerns, we may re-im­ple­ment a cus­tom-made ver­sion us­ing Wt. The com­ment WT ser­vice would just be a sta­t­i­cally-linked pro­gram that would read and write com­ments to an xml file. That means, the pro­gram could be ch­rooted and could be run­ning with­out any priv­i­lege. YEAH!

So, when it is time again to change the server, I just need to copy the WT pro­gram bi­nary + the xml file and be done with it! When a new WT ver­sion comes out, a sim­ple re­com­pi­la­tion out­side the server can be done and de­ployed if it still works.

That eases ad­min­is­tra­tion A LOT com­pared to hav­ing a data­base, python, python li­braries and frame­works like we had on the pre­vi­ous web­site!

Don’t know about you guys, but I’m ex­cited!

Chero­kee -> Ng­inx

Don’t know about you guys, but Apache makes me want to throw up. Back to the RPS day (2 servers ago), I had 512 MB of RAM and Apache was usu­ally fill­ing those like it was noth­ing! Not to men­tion how slow it was.

I didn’t com­plain un­til I was asked by some school as­sign­ment to de­velop my own http server. It turned out my de­sign was much faster, log­i­cal and easy to ad­min­is­trate than Apache. Thus, I be­gan look­ing for al­ter­na­tives.

That’s when I came across Chero­kee. Again, this web­server blew my mind! It was fast, light­weight (usu­ally took about 4MB of RAM), easy to ad­min­is­trate and was do­ing only the thing it was sup­posed to do: Vir­tu­al­iz­ing my IP ad­dress and dis­patch http re­quests to the right fastcgi ser­vices.

I wanted to use this web­server again on this new server, but it turns out arch moved chero­kee from [com­mu­nity] to AUR. The rea­son is be­cause it cur­rently be­ing re-writ­ten and no new ver­sion will be out for a while.

As I didn’t want to use un-main­tained soft­ware on my server, I de­cided to have a look at al­ter­na­tives. Again, Tim­othée Ravier ad­vised me to look into Ng­inx and I must ad­mit it is awe­some! The con­fig­u­ra­tion file is as short as pos­si­ble, ac­cu­rate and don’t re­quire you to read on thou­sands of pages of doc­u­men­ta­tion be­fore ac­tu­ally be­ing able to con­fig­ure your ser­vice. Take that Apache!

Git repo

I’ve moved away from set­ting up git re­pos by cre­at­ing a user/repo, add pub­lic keys to ssh’s au­tho­rized_keys and give ssh ac­cess to trusted users. From now on, I’ll use gi­to­lite.

It is very easy to work with and set­ting up a repo takes less than a minute.

Fi­nal thoughts

With most of the crap out of my server, I’m amazed at how pretty ps aux looks!

Apart from quas­sel-core and ng­inx, noth­ing else that shouldn’t be there runs. That’s quite an im­prove­ment over the pre­vi­ous state where I would need to browse through processes and sch­roots be­cause I didn’t trust all the django scripts.

Any­way, I like this new de­sign very much :)

Comments