Shami's Blog

DevOps because uptime is not optional

Forgejo Rootless Install with Podman and Ubuntu 24.04

I have recently switched from Docker to Podman , mostly because Podman’s integration with SystemD feels better to me than Docker Compose, especially with podman-quadlet . Setting up rootless Forgejo with Podman took some time figuring out so I decided to document it here.

Read more →

Automating Hugo Deployments With Webhooks, Bitbucket, and CloudFlare

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.

Read more →

Disable Google Analytics While Running Hugo Test Server

So while I was writing my previous post I realized that Google Analytics was being called from the localhost server. I also had lots of grief with Disqus back when I migrated to Hexo; It filled my account with posts related to localhost. I wonder why Disqus built it this way.

I hard-coded the Disqus URL in my theme (Both Hexo and Hugo) but then realized I can’t do the same for Google Analytics. I needed a way to disable it altogether. The fix turned out to be quite simple.

Read more →

Adding Oracle Support PHP On Ubuntu Xenial

I’ve been recently asked to enable a web server running to PHP to connect to an Oracle database for a client. Sadly this doesn’t work natively on FreeBSD so I’m documenting how I managed to do it on Ubuntu Xenial. This was inspired by this post and this post .

Read more →

Use Just What You Need Out Of Bootstrap And Similar Frameworks

If you know me, you’ll know I’m obsessed with speed. I like websites that are light and load quickly. At first I used WordPress because I knew how to optimize it and make it load quickly. I also used the GeneratePress theme because I loved how quickly it loaded. You can read this post to see why I migrated away.

Ghost introduced me to Markdown and I could never look back, but since I didn’t find any themes that I liked and the fact that Ghost looked as if it hadn’t been maintained in a while lead me to look for alternatives.

Read more →

Allowing Read-Only Access To A Git Repository Via HTTP

Today I thought about a way to easily distribute an Ansible playbook. I thought about having a tgz file somewhere but I wanted read only access through HTTP in case I wanted to update clients that have already downloaded the content.

The easiest solution I have found was using cgit . Simply run it with nginx and fcgiwrap .

Read more →

No Output From Drush

A while back Drush stopped working on my servers and it would just return without doing anything. Today I decided to finally debug the issue. Turns out the FreeBSD port just fetches the Phar archive and installs it.

After digging around I found the following post which says that Suhosin blocks Phar file execution. The fix turned out to be quite simple; Just edit the Suhosin ini file (in FreeBSD it’s /usr/local/etc/php/ext-30-suhosin.ini) and add the following after the “extension” line:

1suhosin.executor.include.whitelist = phar

And you’re back in business :)

New Domain, Same Great Content

I’ve been wanting to get shami.blog ever since the generic TLDs have been introduced.

Now I finally have it, welcome to the new domain :).

XBOX LIVE With pfSense

A couple of months ago I switched from running OpenWRT on a TL-WDR4300 to running pfSense on a Netgate RCC-VE 2440 . Not that OpenWRT is bad, it’s only because I’m a big fan of FreeBSD and I’ve been wanting to run a similar setup ever since I discovered custom firmware like DD-WRT and afterwards m0n0wall and Soekris . When I finally decided to get the hardware I thought Netgate had a better offering and I went for it.

Read more →

Hexo Photo Gallery

So while I was migrating my data over from wordpress there were a few posts with photo galleries. The options I had were to write each photo gallery by hand or use the photos array in the front matter. What I did was change the photos array a bit and added the following code as a module

Read more →

About Me

Dev gone Ops gone DevOps. Any views expressed on this blog are mine alone and do not necessarily reflect the views of my employer.

Categories