Shami's Blog

Sysadmin, Because Even Developers Need Heroes

Adding a Form to Your Static Site

2018-03-09 by Mohammad H. Al-Shami

I’ve become a big fan of static site generators lately, especially Hugo. It’s true, static site generators are not for everybody, but most websites on the Internet can be easily implemented as static sites. Also, static sites are great for those websites that you can’t regularly maintain, they are secure, fast, and very easy to set up. Take this blog for example, I don’t have much time to maintain and apply security patches so having it set up as HTML is perfect for me.


Running Older PHP Versions on FreeBSD 11

2018-02-19 by Mohammad H. Al-Shami

Why? You might ask yourself. Isn’t it just better to upgrade the web application and save yourself the trouble of all the security issues? True, but sometimes it’s just not possible or feasible. The other day I helped a friend of mine migreate from a VPS he got in 2008 to a brand new FreeBSD 11 droplet on DigitalOcean. His customer has still not updated their site, and they were paying the same rate they’ve been paying since 2008. So it was better and cheaper to move them to a new VPS even though we kept the same code. At least the OS and all other components in the stack were updated.


Faster TLS Deployment With Acmetool

2018-02-19 by Mohammad H. Al-Shami

So lately I’ve been using Ansible to manage and bootstrap my servers. I prefer the configuration management part in Salt but orchestration has been much cleaner with Ansible for me. I might take another look at Salt later on but for the time being I run everything on Ansible.


Getting Smtp Working With edX Devstack

2017-11-22 by Mohammad H. Al-Shami

Lately I’ve been tinkering with Open edX at work for a project we’re working on. The customer needed a specific workflow which required emails and all the parameters I found didn’t help. But finally I found the solution here


Go Get Error With Babun Shell

2017-11-21 by Mohammad H. Al-Shami

Quick one here, if you run into the following error when trying to download a go package using Babun

go get -u -v (download)
# cd .; git clone C:\Users\Mohammad Al-Shami\go\src\\cosiner\argv
Cloning into 'C:\Users\Mohammad Al-Shami\go\src\\cosiner\argv'...
fatal: Invalid path '/cygdrive/c/Users/Mohammad Al-Shami/Desktop/go/C:\Users\Mohammad Al-Shami\go\src\\cosiner\argv': No such file or directory
package exit status 128


Installing Edx on Ubuntu Xenial

2017-11-06 by Mohammad H. Al-Shami

So I’ve been tasked with installing the Open edX devstack for work to do some testing. The current documentation is very lacking and it’s been an ordeal. I decided to summerize the process as a reference.


Bad Gateway With Nginx, PHP, and Oracle

2017-10-26 by Mohammad H. Al-Shami

So I got a call from one of our developers telling me one of our Moodle development sites was not working. This particular Moodle instance was configured to use an Oracle backend since that’s what the customer has. Upon checking I got a “Bad Gateway” error.


Automating Hugo Deployments With Webhooks, Butbucket, and CloudFlare

2017-09-14 by Mohammad H. Al-Shami

I’ve been using Hugo for a while now and love it. I don’t update my blog much and with Hugo I don’t need to spend more time updating the CMS than actually blogging. The markdown files are hosted at BitBucket along with my other code and I use CloudFlare for protection as well as a CDN.


Babun SSH/Git With TinyWall

2017-09-06 by Mohammad H. Al-Shami

I was thinking of a way to make my laptop a bit more secure and started looking into alternative firewalls for Windows. I came across TinyWall which is an alternative front end to the Windows firewall so it’s not as intrusive as the other options. Everything was working well till I tried to pull a git repository from Babun and I got an the following error


Nvidia Drivers On Headless Ubuntu Server 16.04

2017-06-22 by Mohammad H. Al-Shami

I wanted to do some GPU processing using a virtual machine running inside unRAID. First I tried Windows and it worked, but I read that running the code inside Ubuntu 16.04 would be more efficient.