Diagram of a phone watching over VNC via Tailscale while Claude Code drives Playwright MCP and a Chromium container on an always-on dev VM

How to Give Claude Code a Real Browser: Headful Chromium in Docker with Playwright MCP

A couple of weeks ago I asked Claude, via the Chrome extension on my Windows laptop, to find me the best-value used M1 MacBook Air on eBay. It was properly good at it. It searched with sensible filters, opened listings, read the descriptions for battery cycle counts and “cracked screen” small print, and left the three best tabs open for me to look through. Then I tried to picture doing the same from my phone on a day I’ve left the laptop at home, talking to the agents on my always-on dev VM. There’s no browser there. Claude Code’s web fetch tool gets blocked or served a stripped-down page by most retailers, eBay included. So I gave the VM its own browser: a real, headful Chromium in a Docker container. Claude drives it through Playwright MCP, I can watch and take over from my phone over VNC, and it’ll crop screenshots straight into this blog. Every image in this post came out of it, the cover included. ...

September 25, 2026 · 16 min · Tom Cocking

Give Claude Code Eyes Inside Your WSL2 Docker Containers

If you run Docker inside WSL2 on Windows 11, you’ve probably hit this wall: you open a Claude Code session in Windows Terminal, something goes wrong with a container, and Claude starts asking “can you paste the logs?”. Every. Single. Time. It breaks the flow completely. The whole point of an agentic coding tool is that it should be able to diagnose problems itself, not act as a fancy chat window that waits for you to do the investigation manually. ...

April 23, 2026 · 8 min · Tom Cocking

Home Assistant HTTPS Certificates with Tailscale, Traefik and CoreDNS

In previous posts, I’ve explained how to use Tailscale’s MagicDNS and HTTPS certificate feature to generate a TLS cert for your Home Assistant install: Homeassistant Enable MagicDNS and HTTPS Certificates in Tailscale. That setup required you to reformat the TLS cert and copy it to the Home Assistant container… it wouldn’t be to much of a task to automate those actions, but fortunately there is now a superior method of applying and renewing a Tailscale cert for HASS (and many other self-hosted services). Let us dig in to that… ...

January 7, 2024 · 6 min · Tom Cocking

Python Development in Docker Containers

Docker Compose is a powerful tool that allows developers to define and manage multi-container applications. In this blog post, we will explore a Docker Compose file for developing Python applications. Specifically, we will analyze the following Docker Compose file: version: '3' services: mypthontool: image: python:3.9 volumes: - ./:/app/ tty: true Now all that is left to do is bring the container online with docker compose up -d and access the bash terminal in the container to run our code in a repeatable environment using docker exec -it <container name> /bin/bash. ...

January 7, 2024 · 4 min · Tom Cocking

Automating Postgres Deployment with Docker Compose and Init Scripts

Introduction to Running PostgreSQL in a Docker Container using Docker Compose In this blog post, we will explore how to run PostgreSQL in a Docker container using Docker Compose. We will also break down and explain the init-user-db.sh script that is executed at startup to initialize the PostgreSQL tables. Running PostgreSQL in a Docker container provides several benefits, including ease of deployment, portability, and isolation. So let’s dive in and understand the process! ...

January 6, 2024 · 5 min · Tom Cocking

Wyoming Piper Docker Compose: Local Text-to-Speech for Home Assistant

Updated October 2026: I re-tested this on 8 October 2026 against the current rhasspy/wyoming-piper image and corrected three things I got wrong in 2023. Piper is text-to-speech, not speech recognition. Port 10200 isn’t a web interface. And voices are now named like en_GB-alba-medium. The compose file also no longer needs a version line. The Home Assistant steps are unchanged from the original and I haven’t re-run them on a current release. ...

May 16, 2023 · 6 min · Tom Cocking

Wyoming Whisper Docker Compose: Local Speech-to-Text for Home Assistant

Updated October 2026: I re-tested this on 8 October 2026 against the current rhasspy/wyoming-whisper image. The compose file no longer needs a version line, the default model is now small-int8 instead of medium-int8, and there’s a table of measured model speeds, a test script and a troubleshooting section. The Home Assistant steps come from my original post. I haven’t re-run them on a current Home Assistant release. Wyoming Whisper is the speech-to-text half of a fully local Home Assistant voice assistant. It wraps faster-whisper, a fast implementation of OpenAI’s Whisper models, and Home Assistant talks to it over the Wyoming protocol. The text-to-speech half is Wyoming Piper. ...

May 11, 2023 · 8 min · Tom Cocking

Running Uptime Kuma With Docker Compose

Introduction Uptime-Kuma is an open-source, self-hosted website monitoring tool. It can check the uptime and response time of websites, APIs, and other services at regular intervals and alert you if any of them go down. Uptime-Kuma can be installed on your own server and customized to suit your needs. In this article, we will explore how to set up and run Uptime-Kuma using Docker Compose. The Docker Compose File The following is the Docker Compose file for the Uptime-Kuma service: ...

May 1, 2023 · 2 min · Tom Cocking

Honeygain Docker Compose Setup: Run It on a Home Server

Updated October 2026: I re-tested the container on 8 October 2026. It’s now Honeygain CLI 0.9.0, every flag my original post used still exists, and the compose file below keeps your login out of the YAML. I also fixed the last command, which was wrong in the original. I didn’t log in with a real account for the test, so I haven’t re-checked what appears on the dashboard. This post contains my Honeygain referral link, which earns me a bonus if you sign up through it. ...

March 4, 2021 · 4 min · Tom Cocking

[SOLVED] - Running Docker on a Raspberry Pi 4

The Raspberry Pi 4 has now been released offering up to 4GB of RAM! All of the horsepower required for an excellent lower power, docker host. However, there are currently issues undergoing work which prevent docker from running on the only Rasbian image currently available for the Pi 4 – ‘Rasbian Buster‘. Details of these issues can been found here on the GitHub thread – https://github.com/docker/for-linux/issues/709 Current Working Solution Fear not, for there is a simple way to fool your docker installation and successfully getting it to run on the Pi 4. ...

July 10, 2019 · 1 min · Tom Cocking