If you’re known to your friends and family as a ‘tech-guy’, you’ll often be asked for help doing tech things. And as such I was asked to help with setting up a website for a new company.

They asked my help because, when looking for themselves, they quickly lost themselves in the huge variety of options and offerings. How do you compare vendors? What do you look for? What is a good price?

Looking at the requirements for the website, we decided that a simple WordPress instance would be a good fit. But looking at the available offerings, I thought that they were quite expensive for what is essentially nothing more than a managed server with WordPress pre-installed.

So we’ve decided that I would setup something myself.

As a teen I’ve played around with Apache (and later Nginx) to host some static HTML, or primitive PHP scripts. Later on I would self-host applications and websites for myself using Raspberry Pis. Ultimately ending up with Ghost CMS running on a Raspberry Pi.

Of course self-hosting is not an option for a website that needs to be available all the time. So for hosting I picked an unmanaged virtual private server (VPS).

For CMS I’ve decided to go with WordPress due to its much larger ecosystem of plugins and themes. Although the current design of the website is pretty much static, I think it’s likely that that will change at some point in the future.

The setup of the VPS is pretty simple. I’ve picked Ubuntu server, and it’s running rootless-Docker with Caddy as a reverse proxy. Each application get its own git repository with compose files and documentation. Management of the server is only allowed coming from my Tailnet.

Als a bonus this project gave me a chance to dust of my own domain too. Since my last move I hadn’t taken the time to setup my Raspberry yet, but since WordPress allows to host multiple sites, I’d thought I’d take the opportunity.