BillBurnard.com

The NerdRoom

Building BillBurnard.com on an Intel NUC

I've had the domain BillBurnard.com for a while, but the site never had much direction. I had made one halfhearted attempt with WordPress, then mostly left it sitting there.

Meanwhile, I had an unused Intel NUC, a growing collection of projects, and the slightly dangerous thought that I should host the site myself.

The plan

I wanted the website to feel more like a workshop notebook than a traditional blog. It needed to be simple, fast, easy to back up, and capable of growing along with my robot restorations, electronics projects, garden experiments, 3D printing, and other assorted rabbit holes.

The basic stack became:

Intel NUC
Ubuntu Server
Docker
Caddy
Static HTML and CSS
Git
Automatic backups

Installing Ubuntu Server

I installed Ubuntu Server on the NUC and enabled OpenSSH during setup. That allowed me to move the machine next to the router and control it from another computer using PuTTY.

Once I could connect through SSH, I updated the system and gave the NUC a permanent address on my home network.

This keeps the router, Docker services, and my SSH connection from having to chase a changing local address.

Docker and Caddy

Docker keeps the web server isolated from the rest of the operating system. The site is served by Caddy, which runs inside its own container.

Caddy turned out to be a great choice because it automatically requested and installed the HTTPS certificates for both:

billburnard.com
www.billburnard.com

It also redirects ordinary HTTP traffic to the secure HTTPS version of the site automatically.

Connecting the outside world

The domain is registered through Namecheap. I changed its DNS records so that the domain pointed toward my AT&T Fiber connection.

On the AT&T gateway, I forwarded web traffic on ports 80 and 443 to the NUC. After a brief argument with an old DNS entry cached by Microsoft Edge, the site became publicly accessible.

Version control and backups

The website directory is now a Git repository. Every meaningful change can be committed, tracked, and restored if I manage to break something.

A small shell script also creates compressed backups of the full website, with automatic daily backups scheduled through cron.

What comes next

This is only version 0.2. The next steps are project pages, photographs, downloadable files, workshop updates, a private visitor counter, and an easier publishing workflow for adding posts while I am away from home.

The web server itself is now the first documented project on the web server. That feels appropriately recursive.

← Back to the NerdRoom