Project
Post Mortem

I've been hiding, it seems, underground, for the past 4 years. What happened? Well, it doesn't matter that much I guess. Let's just say that I worked on 2 big Drupal migration projects and there was not a lot of time and energy left to work on my stuff. Maybe this was related to the pandemic aftermath - crazy times - during which Web development tech kept moving at its usual crazy pace. Today, Pantheon.io is a thing of the past, my clients that were using it moved on to other things, and so I did; same with Lando which had replaced MAMP. Time never stays still. Heraclitus, the ancient Greek philosopher, once famously proclaimed, “There is nothing permanent except change.”

I'm enjoying a bit of time off after a 27 month stint at MLL, I decided that I would resolve all the technical issues and blockers that stand in the way of me writing about the stuff I'm interested in - that also changes all the time, like a river.

The following is an attempt to document (that's a big word) my intentions and the processes that finally got the better of those blockers and cancelled my technical debt.

Main Components

  • Ddev is Drupal's local web development platform of choice, going with the flow here has its advantages, no good reasons not to;
  • GitLab for version control, CI/CD, project management and collaboration; I've never got around using it for my personal projects, the time has come;
  • cPanel for hosting small web projects; the tech stack has been around forever, is flexible, affordable and ubiquitous; let's make it work; I just need to figure out its Git deployment workflow;

DDEV - The only trick here was to first replicate the production environment in order to import a prod database:

  • ddev config --project-type=drupal8 --docroot=web --create-docroot --php-version=7.4
  • ddev composer create "drupal/recommended-project:8.9.20" --no-install
  • ddev composer require drush/drush
  • ddev composer install
  • ddev start

GITLAB - That's the easy part, no need to go into details here. But if you're looking for a quick tutorial, this one will do just fine.

CPANEL - That was my biggest black box, devops is not really my thing. I found some helpful and also some slightly misleading information; sifting through the good and the bad (relative to my context) is never easy, especially when I'm outside my comfort/knowledge zone. This video and the cPanel doc helped me figure out how to create and connect to my private GitLab repo. But my initial deploy script (.cpanel.yml), was somewhat messy. And then I got some help from claude.ai. Trial and error is also a good friend. Between the two of them I managed to refine the script that made it possible to deploy a Drupal website running in a sub-directory (web). I did this as I was going through the 252 core releases that separate 8.9.20 from 11.1.6. And, yes, I obviously went through Composer dependency hell a few times.

After all this, my personal website is now happily purring on the latest Drupal release. Now that my technical debt is zero, I can freely ponder on what I might write that would be interesting…