blog.mikejw.co.uk

Mike's Blog

Dog food fan

Self-hosting!

 

Welcome to my new blog.  

I am a seasoned fullstack web developer who has specialised in front-end and React for the last 7-8 years.

This blog application codebase is available at github.com/mikejw/blog and is in fact code that can be generated using a "bdcli quickstart" command using my open source platform as a service and PHP MVC project found at empathy.sh.

The documentation available for this project on the website is due for a wide overhall but, in essence, the command line tool "bdcli" now constitutes the DX component of the project which drives a Ansible/Docker functionality within another repo, "base-docker".   It is no longer necessary to ever run an Ansible playbook manually from base-docker. 

bdcli and base-docker work in tandem to produce development environments for fullstack applications and can currently also be used to deploy a test/build server with Jenkins, using a web-facing proxy that can connect to the build/test server locally using Tailscale.  There is additional code within "base-docker" for spinning up Vagrant VMs.  These can be used as a standalone dev environment solution where there are two VMs, (a 'control' VM and a 'node' VM) and also a VM for the build/test server where it can run on a host machine instead being deployed in a dedicated fashion, for example (as more recently tested) on a Raspberry Pi.  NB: when using the Vagrant VM development envrionment approach, bdcli is automatically installed.  Simplifying the DX even more. i.e. This is the workflow for getting started using Empathy on a Windows host assuming Virtualbox, Vagrant and git bash have been installed (aside from ensuring some /etc/hosts file entires have been added):


vagrant up
vagrant ssh control
bdcli --version
bdcli --help
bdcli init --dev

To be perfectly honest I'm at a bit of an impasse currently because although things regarding my open source project are gradually coallescing around bdcli and base docker to provide a simple, single interface to all functinality which can be setup using the simple approach above, to really get the most out it, if you are using a mac or Linux, then the better option is to ensure the machine has Ansible and Docker installed natively, bypassing any reliance on Vagrant/Virtualbox but convincing anyone to perform these steps is hard regardless of how easily this can be done using homebrew on mac, for example.

I am desparate for anyone who wants to try using Empathy to see if they can generate, modify and run projects (locally) and even better if they would be interersted in deploying them to a test server, which can make those projects accessible from the web within minutes (aside from some minimal infrastructural setup - i.e. Cloudflare, AWS, tailscale).  Although the latest version of Empathy has been tested to (mostly) work without a glitch from inside Vagrant (i.e. when on Windows), this is only covering the latest stable features and not the test/build server insfrastucutre management and deployments from bdcli.

Once I have found people who want to try these workflows and feedback to me the friction they might find I'm not sure I can effectivey ensure the documentation has been updated sufficiently for the features that Empathy is close to offering that I'm not aware of in any other project in a unified way.

Copyright © 2025 Michael Whiting. Twitter  
Instagram