--- created: 2026-08-28 modified: 2026-08-28 type: log client: sam project: web-host-migration status: active priority: 1 tags: - migration - log aliases: - migration-work-log - work-log id: 1848129023-LOG --- # Migration Work Log > Central log of what has been **done** across the migration phases. > Update this as work completes. Each entry: **date · phase · what · evidence**. ## Phase legend - **P0** Pre-flight · **P1** AWS offsite · **P2** Email · **P3** Local infra · **P4** CMS (separate) · **P5** Decommission --- ## 2026-08-28 | Phase | What was done | Notes/Evidence | |---|---|---| | P0 | Verified no AWS CLI / rclone / creds on `.13` (clean slate) | `command -v aws` empty; `rclone` empty on `.13` | | P0 | Verified existing backup stack on `.13` | Borg 1.4.3 in `backup.nix` (`services.borgbackup.jobs.*`, timers 04:00/05:00/06:00, BORG_RSH wrapper for SSH to `.35`) | | P0 | Verified `.13` containers | `wherewoof-admin`(:3031), `wherewoof-minio`(:9010), `wherewoof-db`(:5434), Garage(:3900/3902)+portal(:8500) | | P0 | Confirmed external exposure | static IP port-forward 80/443 → Caddy `.35`; `where-woof.com`→`192.168.20.13:3020` | | P1 | Decision: AWS-only, S3→Glacier DA, ap-southeast-2 (Sydney), IAM least-privilege | Awaiting AWS account signup to proceed | | — | Created per-phase plan notes (P0, P1, P2, P3, P5) + this log | Obsidian `220 Web Host Migration/` | ## 2026-08-28 (Phase 1 — build begun) | Phase | What was done | Evidence | |---|---|---| | P0 | **Machine confirmation** — assistant runs on `.27` (sam-4screen-desktop); `.13` reachable via `sam@192.168.20.13` | hostname `sam-4screen-desktop` = `.27` | | P1 | AWS account ready; IAM user `backup-offsite` created (programmatic, least-priv) | — | | P1 | **Credentials verified** via AWS STS (`get-caller-identity`) | Account `648879824522`, user `backup-offsite`, region `ap-southeast-2` | | P1 | Credentials stored local-only (`aws-credentials.local` 0600, .27) + copied to `.13` (`~/.aws-credentials.local.new` 0600). **Not in Obsidian.** | — | | P1 | Verified `.13` has no aws-cli/rclone; will use one-off `nix-shell awscli2` for imperative steps until `backup.nix` updated | verified | ## Pending next action - **Build:** create bucket `sam-offsite-backup` + lifecycle (S3→Glacier Flexible@30d→Glacier DA@90d), then wire local Borg/rclone→S3 on `.13`, seed, test restore. - **Security:** enable root MFA; consider rotating access key after seeding (it was pasted in chat). --- *Linked from [[Migration Plan — InMotion to Local + AWS Offsite]].*