Another week is gone by. This week, I finished up the login popup that I had discussed with Paul. Also, I’m done with the custom CSS styling. It wasn’t much really – just making the website a little more colourful. A designer friend of mine in fact told me that the original design was ‘pretty good as it is’. Nevertheless, I’ve given the whole website a standard bluish look.
I’ve also made the social-help activity a little lighter – I had originally planned to take away both bookmarking capability and the tabbed view. However, better sense prevailed and I decided that tabbed view is a necessity if the user wants to open an external link side-by-side with the forum.
The next part I wanted to work on was the DB migration scripts – I suspect I’ll have to chat with the the discourse devs for this. We’d like to keep the central DB as it is and migrate it to any new, local setups. This will include all the everything. That means we’ll be keeping the user data along with the questions/discussion.
This is what I wanted to work on this week. But, seeing as how midterm evaluations are fast approaching, I decided to use my time working on deployment. Discourse is a ruby on rails app. Not just that, it requires several other services (like redis, for example) going on the side. This means that the deployment of the app on a production server is going to be a hassle at best and a hair-tearing, why-won’t-you-work experience during the bad times. Fortunately, the Discourse team already foresaw this problem – they’re using Docker container to address this problem. Docker is kind of like a VM – except for all the overhead of the VM as it uses the OS’s kernel.
So anyway, this means that the deployment process is straightforward – at least for the standard Discourse images. This, however, is not the case with us. I’ve made some small changes to the latest version of discourse and thus, I need to get a docker image for my customized version of discourse, not the standard one. Creating docker images is, however, not at all clear to me at this point. I’ve read the docker documentation and I understand some of it – it’s kind of time git. Every change to a base image is added in the form of layers – kind of like a git commit. Still, the actual process of creating an image eludes me. After lot of rather depressing hours, I decided to ask a question to the discourse devs. The answers were rather half-hearted and rather succinct – I still have little idea how to go ahead. So, I’ve asked the devs to elaborate on their previous answers. We’re in opposite time zones and so, I hope to get an answer soon. I have, in the meantime, procured an AWS micro EC2 instance for online deployment. I’ve already tested it using a standard discourse docker image and it works like a charm. I hope we can get this to work as well and soon.
Plans for the next week include getting the custom docker image to work and getting the whole thing run smoothly on the ec2 instance. Once the midterm evaluations are done, I’ll move on the the migration scripts.