Local development with process-compose

Published June 10, 2024

I am not sure if you realized but the engine that empowers this website is not a static site generator as you may expect. It runs on it own server via WordPress.

I wrote a small theme that I can actually understand and maintain instead of downloading or buying a messy one from the internet, and for now I am happy with it.

I like to do local development when I can and to keep services per project. An easy way to go here is Docker. docker run -d --net host mariadb with some volume mount and here you are.

But for unknown (NixOS) reasons I am not using containers that much those days for local development and I discovered a nice tool called process-compose.

It looks like docker-compose, but it runs processes. It provides an API and a TUI (terminal UI) that is complete and friendly in my opinion. I use this for a few projects written in various languages and I can’t complain, it works!

This is the configuration I quickly put together for this use case:

version: "0.5"
processes:
  wp:
    command: "php -S 0:8080"
    working_dir: "./wordpress"
  mysql:
    command: "mariadbd --defaults-file=./contrib/dev/my.cnf"
    working_dir: "./wordpress"

Since I like to use services per project, I run a local MariaDB dedicated to this specific WordPress installation, so it won’t collide to anything else.

Are you having trouble figuring out your way to building automation, release and troubleshoot your software? Let's get actionables lessons learned straight to you via email.