SAMPLE · fictional business · names, numbers and addresses are made up
the logic lab Handover pack · Harbor Lane Bikes
Handover pack

Harbor Lane Bikes

How the shop's website, bookings and email are set up, who can get into what, and what to do if something stops working.

Version
1.0
Signed off
14 Oct 2026 · Maya Torres
Prepared by
The Logic Lab
Next review
April 2027
Open gaps
2 waiting on answers
You're reading the plain version. It's written for the shop owner and staff. If a developer or IT company needs the technical details, switch to the Developer version at the top. It's the same pack with the extra detail added. You're reading the developer version. It's the plain version plus the dark technical panels. Everything in the plain text still applies. Logins are never written here; the pack says where each one is kept.
01

What this covers

This pack covers the things customers see online and the shop's email. It doesn't cover the till or the accounting software, which are looked after by their own suppliers.

Covered

  • The website, harborlanebikes.example
  • The online repair booking form
  • Shop email (3 mailboxes)
  • The domain name and its renewal

Not covered

  • The till and card machine
  • Accounting software
  • Social media accounts
  • Staff laptops and phones
Developer detail · stack
Site
WordPress 6.6.2 · child theme "hlb-child" of a commercial block theme
Runtime
PHP 8.2 · MariaDB 10.11 · nginx 1.24
Server
Brightline managed VPS · Ubuntu 24.04 LTS · 2 vCPU / 4 GB · IP 203.0.113.24
Bookings
SlotBook (hosted) embedded via iframe on /book · webhook to shop inbox only
Key plugins
UpdraftPlus · Redirection · a caching plugin · a forms plugin (contact page)
Source
No git repository. Theme changes are made on the server by Sam. See risk 3.
02

Who owns what

Every account should belong to the business, with at least two people able to get in. This table shows how things stand today.

AccountOwnerAlso has accessLogin kept in
Domain nameMaya TorresNobody elseShop password manager
Website hostingHarbor Lane BikesSam OkaforShop password manager
Website adminMaya TorresSam Okafor, Leo (staff)Each person's own login
Booking systemMaya TorresSam OkaforShop password manager
EmailHarbor Lane BikesSam OkaforShop password manager

We never write passwords in this pack. The shop keeps them in a shared password manager that Maya and Sam can both open.

Developer detail · accounts and DNS
ServiceProviderAdmin users2FA
RegistrarNameHarbormaya@on (app)
DNSCloudflare (free)maya@, sam@on
Hosting panelBrightlinebilling: maya@ · tech: sam@on
SSHserveruser "deploy", key-only, key held by Samn/a
WP adminsitemaya, sam, leo (editor)1 of 3 off (leo)
EmailWorkspace-style suiteadmin: maya@, sam@on
# Current DNS (Cloudflare) · harborlanebikes.example
@      A      203.0.113.24          proxied
www    CNAME  harborlanebikes.example  proxied
@      MX     1  mx1.mail-provider.example
@      TXT    "v=spf1 include:_spf.mail-provider.example ~all"
sel1._domainkey  TXT  "v=DKIM1; k=rsa; p=…"
_dmarc TXT    "v=DMARC1; p=none; rua=mailto:[email protected]"
03

Backups

The website is copied automatically every night, and a second copy goes somewhere else once a week. Somebody last checked that a backup actually works on 4 March 2026. It took 25 minutes to restore.

WhatHow oftenKept forWhere
Whole websiteEvery night30 daysBrightline Hosting
Website copyEvery Sunday12 weeksSeparate cloud storage
BookingsHandled by SlotBookSlotBook's own policySlotBook
EmailNot backed up separately See risk 4.
Developer detail · backup config
Nightly
Brightline VPS snapshot · 02:00 server time · 30 retained · panel → Server → Snapshots
Weekly off-site
UpdraftPlus · Sun 03:00 · DB + wp-content/uploads + themes + plugins → S3-compatible bucket "hlb-backups" · 12 retained
Excluded
wp-content/cache, node_modules, *.log
Bucket access
Write-only key on the server; read key in the shop password manager
Last restore test
2026-03-04 · snapshot → staging VPS · site and /book checked · 25 min
04

Getting things back

Open the situation that matches what's happening. Each one is written so that whoever is on hand can follow it.

The website won't load +
  1. Check it on your phone with Wi-Fi off. If it loads, it's your internet, not the website.
  2. Message Sam with what you see, or forward our alert.
  3. No reply in 2 hours: call Brightline Hosting and ask them to restore last night's backup.
  4. When it's back, open the booking page and make a test booking, then cancel it.
Message for customers (copy and paste)Our website is having a problem right now. You can still book a repair by calling the shop or popping in. Sorry for the hassle.
Developer detail · restore
# 1. Check origin vs Cloudflare
curl -sI https://harborlanebikes.example/ | head -1
curl -sI --resolve harborlanebikes.example:443:203.0.113.24 https://harborlanebikes.example/ | head -1

# 2. On the server (ssh [email protected])
sudo systemctl status nginx php8.2-fpm mariadb
sudo tail -n 50 /var/log/nginx/error.log

# 3. Full restore: Brightline panel → Snapshots → last good → Restore
#    or partial DB restore from the off-site copy:
wp db export pre-restore.sql
wp db import /tmp/hlb-db-YYYY-MM-DD.sql
wp cache flush

Targets agreed with the owner: back within 4 hours, lose no more than one day of changes.

Nobody can get into the email +
  1. Try logging in from a different device. If only one person is locked out, Maya or Sam can reset their login from the admin page.
  2. If nobody can log in, Sam contacts the email provider's support.
  3. Meanwhile, tell regular customers to phone the shop.
We got a "domain about to expire" email +
  1. Don't click links in the email. Some of these are scams.
  2. Maya logs in to NameHarbor directly and checks the renewal date.
  3. If it's real, renew it. Auto-renew is switched on, but the card on file expires in November 2026. See risk 1.
05

Monitoring

We check the website every five minutes. One failed check is ignored, because websites hiccup. Two in a row sends an alert to Maya and Sam. When it's working again, they get a second message.

What we check

  • The home page loads properly
  • How quickly it answers

What we don't check yet

  • Whether a booking goes through
  • Email delivery
  • Whether backups ran
Developer detail · check and alert
Check
HTTPS HEAD https://harborlanebikes.example/ · every 5 min · 10 s timeout · no redirects followed
Healthy
HTTP 200
Down
2 consecutive failures (non-200, timeout or connection error)
Delivery
Webhook → Slack #hlb-alerts + email · queued and retried until confirmed
# Example alert payload (tlf.alert.v1)
{
  "event": "down",
  "client": { "id": "harbor-lane-bikes", "name": "Harbor Lane Bikes", "timezone": "shop's local zone" },
  "check":  { "type": "website", "target": "https://harborlanebikes.example/" },
  "observation": { "http_status": 503, "consecutive_failures": 2 },
  "occurred_at": "2026-10-14T12:10:00Z"
}
06

Who to call

Go down the list in order. Phone numbers are in the shop password manager under "Contacts".

  1. Sam Okafor · web developerBuilt the website. Can fix almost anything on it, restore backups and change email settings.
    Weekdays
    08:00–18:00
  2. Brightline Hosting · supportCan restart the server and restore backups. Can't change the website itself.
    24 hours
    every day
  3. The Logic LabWe can help you work out what's wrong and who to call. We don't change your website ourselves.
    Weekdays
Developer detail · support references
Brightline account
Account ID in password manager · priority support tier · open tickets via panel or phone
Cloudflare
Free plan, community support only. Pause proxy via dashboard if the origin is suspected.
SlotBook
Status page + email support · iframe embed has no server-side dependency
07

Risks we found

These are the things that worried us. None of them are emergencies today, but the first two could cause real trouble if left.

  • Fix soon
    Only Maya can get into the domain account, and the card on file expires in November.If the renewal fails while Maya is away, the website and email could stop working.
  • Fix soon
    One staff login to the website has no second security step.If Leo's password leaked, someone could change the website.
  • Worth fixing
    Only Sam knows how the website's design was changed.There's no saved history of his changes, so another developer would be starting partly blind.
  • Worth fixing
    Email isn't backed up separately.Deleted emails can only be recovered for a limited time through the email provider.
  • Note
    Nobody is sure who set up the email security records.We've asked Sam. Until we hear back, this stays marked as a gap.
⏳
Waiting on answers (2). Who set up the email security records? Does SlotBook keep booking history if the account is cancelled? Asked 9 Oct 2026. We won't fill these in with guesses.
Developer detail · technical findings
FindingDetailSuggested fix
Registrar single adminno secondary contact · card exp 11/2026add sam@ as tech contact · update card
WP user without 2FAleo (editor)enforce 2FA for all roles
No version controltheme edits made live over SSHinit git repo for hlb-child, deploy from repo
DMARC p=nonespoofed mail not rejectedreview rua reports, move to quarantine
PHP 8.2security support ends Dec 2026test and move to 8.3
Stale pluginforms plugin: no update in 26 monthsreplace or remove
08

What to fix next

In this order. Tick them off as you go. The boxes work on screen, and they print blank if you'd rather use paper.

  • Maya · by 30 Nov
  • Sam · by 30 Nov
  • Sam · by Jan
  • Maya · by Jan
  • Sam · March 2027