Docker & Python with Background CRON runner

Since January, I’ve worked full-time in Django and Wagtail development. In my last post, I shared my Dockerfile for deploying such projects. That Dockerfile includes a multi-stage build to reduce the final image size and to improve security. This directly builds on that Dockerfile. The Dockerfile The important part here is lines 48-50. We’re copying […]

Writing a Minimal Wagtail, Poetry & Node Dockerfile

Over the last few months, I have worked extensively on several Wagtail projects. Off the back of this, I have decided to pivot from focusing on WordPress development in favour of Django and Wagtail. A big consideration that has come with this decision is managing the deployment of my projects. As a big Docker advocate, […]

Dokploy and docker-mailserver with 10/10 deliverability

I recently switched from Plesk to Dokploy as the platform on my VPS for hosting websites. I did this because I felt Dokploy offered more control, leaning into the Docker and build packs approach utilised by many hosting services such as Heroku or Netlify. It is self-hosted and adds no costs beyond my regular VPS […]

WireGuard VPN for an open NAT (wg-easy)

What Is NAT? In the words of a brief Google search: “NAT stands for Network Address Translation, a service that allows private networks to use the internet and cloud. It works by translating private IP addresses to a public IP address before sending packets to an external network.” To translate that description to the problem […]

Dockerise Django and NPM with Multi-Stage Builds

Introduction I’ve recently started learning Django, the popular web development framework for Python. Until now, as a PHP developer, I’ve been rather spoiled with the ease of deploying projects thanks to software such as cPanel or Plesk. Having reached the stage of wanting to deploy my first Django project, I realised that Docker would be […]

Dnsmasq Domain Resolution with Docker Compose

Dnsmasq resolves a subtle, but real problem that becomes apparent when adopting Docker Compose as a LAMP stack. By allowing containers to resolve requests to each other with custom domain names, you can ensure that all containers can…

Local PHP development with Docker Compose

Introduction This post will cover how I host local copies of PHP websites running WordPress and Laravel with Docker Compose. This removes the need to install PHP, Composer, Nginx/Apache, MySQL, NPM/Node, etc locally on your host machine. I run my local development environments within Docker to avoid bloating my system. This means all of the […]