Skip to content

Servers & DNS

Two hosts

Host IP OS Role Plan
wp-host 106.0.62.69 LiteSpeed / Linux WordPress + WooCommerce backend, MySQL, cron A2 Hosting Turbo Max
pwa-host 147.12.227.117 Windows 11 + Docker Desktop Next.js PWA, MkDocs, other apps Self-hosted

DNS records

Subdomain Target Purpose
fruitplug.co.uk 106.0.62.69 Public site (currently the old WP theme; cutover to PWA pending)
www.fruitplug.co.uk 106.0.62.69 Alias
dev.fruitplug.co.uk 147.12.227.117 Staging PWA — live today
docs.fruitplug.co.uk 147.12.227.117 This wiki — live today

DNS is managed on GoDaddy. TTL for the apex record should be dropped to 300 s a day before the production cutover so rollbacks propagate quickly.

Ports on pwa-host (147.12.227.117)

Port Binding Service
80 public Caddy (HTTP → HTTPS redirect)
443 public Caddy (TLS termination)
3000 localhost Other (not ours — pre-existing)
3030 localhost fruitplug-web-dev (PWA)
3040 localhost fruitplug-docs (MkDocs)
5433 public Postgres (footballdesk)
6379 localhost redis (our dev stack)
6380 public redis (footballdesk)
8000–8051 public Other fatbot / footballdesk services

SSH into wp-host

Via key (encrypted, passphrase protected):

A2_PASSPHRASE=xxx python infra/a2/a2.py run 'wp plugin list'
# or interactively
ssh -i ~/.ssh/fruitplug_a2 -p 7822 fruitplu@fruitplug.co.uk

Full tool docs: A2 host runbook.

Access to pwa-host

This server runs Claude Code directly, which makes operations from the terminal local. For remote work, log in via the Windows Remote Desktop / RDP of the host machine.

Cutover plan

See Production cutover.