User Tools

Site Tools


procedures:rainbowvapes-migration

# Rainbowvapes Migration Runbook

Migrate `rainbowvapes.co.uk` (James — Rainbow Vapes Ltd) from guru.co.uk shared hosting to kaburusvr. Second site `rainbowflavours.co.uk` already lives on kaburusvr as an alias of `rf.kaburu.co` (no guru content — nothing to migrate).

## Timeline (revised 2026-08-14)

Time Action
————–
Fri 14th Baseline file rsync (started, ~24GB, excludes bloat)
Mon 17:00 Incremental file rsync — brothers done adding products/images ~5pm
Mon 21:00 (tentative) WooCommerce maintenance mode ON — if James agrees (little overnight sales)
Tue ~07:00 DB dump+import (DB LAST) → email forwarders + MX → DNS cutover → verify
Tue 09:00 James + brothers test → live (maintenance OFF)
Rollback: flip CF A record back to guru, maintenance OFF. Guru site never deleted.

Why DB last: the brothers add products/images until ~5pm Monday; the DB is pulled after buying stops (Tue 07:00, or Mon 21:00 if site-off agreed) so no orders/product rows are lost.

## Source (guru)

- SSH: `[email protected]`, key `/root/.ssh/rainbowvapes` (on kaburusvr) - WP dir: `/home/rvwebcou/rainbowvapes.co.uk` (NOT public_html) - DB: `rvwebcou_vm7d1` (user `rvwebcou_vm7d1`), 1.27GB, 139 tables - PHP 8.2, WP 7.0.4, Divi 4.27.7 (avanti child) - Site size: 69GB raw → ~24GB real (updraft 39GB + cache 6.2GB + et-cache 865M = bloat to exclude)

## Email (GURU portal — authoritative, SSH ~/etc lies)

- `[email protected]` (452MB) + `no-reply@` (506MB) - Both forward to `[email protected]` (James reads everything at AOL) - No IMAP migration. Just re-point: forwarders + `no-reply@` sends via Fluent SMTP → Brevo - Current MX = MailChannels (guru's gateway, lost on exit) → point MX at kaburusvr at cutover - Enable SRS on Postfix or AOL-forwarded mail hits spam (SPF break) - The brother created a hello@↔no-reply@ forward loop on guru — do NOT replicate. One-way only.

## Pre-stage — DONE Fri 2026-08-14

- [x] Site created: `rainbowvapes.co.uk` (webuser `rainb1286`, lsphp83, registered in DB) - [x] DB created: `rainbowvapes_co_uk_wp` / `rainbowvapes_co_uk` — GRANT verified

  1. Creds stored: `/root/rainbowvapes-migration.env` (chmod 600)

- [x] rsync launched (background, excludes bloat) — see `/tmp/rainbowvapes-rsync.log` - [x] SSL issuing via acme.sh DNS-01 (background) — see `/tmp/ssl-rainbowvapes.log`

## Tuesday checklist

### 00:00 pre-stage - [ ] Confirm rsync finished, `chown -R rainb1286:rainb1286 /home/rainbowvapes.co.uk/public_html` - [ ] Confirm SSL cert present: `/etc/letsencrypt/live/rainbowvapes.co.uk/fullchain.pem`

### 07:00 stop buying - [x] WooCommerce maintenance mode ON (guru wp-cli or admin)

### 07:00–09:00 cutover - [x] Final incremental rsync (same command, fast) - [x] DB dump on guru → pull → `sed` utf8mb4_0900_ai_ci→utf8mb4_general_ci, ENGINE=MEMORY→InnoDB → import - [x] Update wp-config.php DB creds (from `/root/rainbowvapes-migration.env`), DB_HOST=localhost - [x] `wp search-replace` siteurl/home if URL differs (should be same domain) - [x] Re-apply `.user.ini` (open_basedir + memory 1024M) + permissions; chmod 640 - [x] Wordfence: disable `auto_prepend_file`/WAF bootstrap until live confirmed - [x] Email: create `hello@`+`no-reply@` forwarders → `[email protected]`; MX → kaburusvr; SPF (Brevo) + DKIM - [x] DNS cutover: CF A record `rainbowvapes.co.uk` → `49.13.202.144` (keep proxied=true) - [x] Verify: HTTPS 200, checkout, Worldpay test transaction, order email arrives at AOL

### 09:00 - [x] James + brother test → maintenance OFF → live

### Rollback - [ ] CF A record back to guru origin IP; maintenance OFF. (Never delete guru until post-live confidence.)

## Worldpay / PCI — VERIFIED 2026-08-14

- Plugin: `worldpay-ecommerce-woocommerce` v1.3.1 (official Worldpay “eCommerce” gateway) - Model: hosted fields/iframe + 3DS2 (`challenge-iframe` + `ddc-iframe`). Card data tokenized by Worldpay, NOT stored on server → no PCI SAQ-D burden. - Domain unchanged → callback URLs unaffected. API auth = OAuth client-credentials (not IP allow-list) → no kaburusvr IP change needed. - [ ] Cutover-day: run a live test transaction (and 3DS test if available)

## Phase 2 (after live)

- Host mail on kaburusvr (mailboxes + forward to AOL) - James: scoped CyberPanel user — his 2 sites (`rainbowvapes.co.uk`, `rainbowflavours.co.uk`) + email control panel ONLY. Nothing else.

## Phase 3 (design later)

- Daily backup of both sites delivered to James's NAS (rsync or similar — TBD)

procedures/rainbowvapes-migration.txt · Last modified: (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki