# Project Ops — Prepared Plan (awaiting token refresh + approval) > Status: **ASSESSMENT + PREPARATION COMPLETE — NOT BUILT.** > Blocked on: valid Vikunja API token + Outline API key in `~/.config/environment.d/10-secrets.conf` on `.27` > (Current tokens reject: Vikunja `invalid token`, Outline `unable to decode token` — stale/wrong values; AI extraction bug fixed.) ## The project (what we're setting up) **Website hosting migration**: retire InMotion VPS → local `.13` hosting + AWS S3 offsite + email. (Everything already done/planned in Obsidian: migration plan, AWS offsite backup, email PurelyMail+SES, Garage, restore runbook.) ## 1. Vikunja — Project + tasks (kanban stages) **Project:** `Website Host Migration` (in Vikunja) **Stages/buckets:** `Backlog` → `In Progress` → `Blocked/Waiting` → `Done` **Tasks (initial set, matching what's real):** | Task | Stage | Notes | |---|---|---| | 1. AWS offsite backup (S3 + Glacier) | Done | nightly sync, monitor page, alerts live | | 2. Email: audasmedia + where-woof (PurelyMail + SES) | In Progress | DNS done; SES prod access pending | | 3. Garage v2 upgrade + web UI | Done | buckets visible | | 4. Backup gap closure (borg coverage + s3 add) | Done | reordered sync, restore runbook | | 5. audasmedia.com.au infra on .13 | Backlog | awaiting specs | | 6. where-woof.com website build (other AI) | In Progress* | tracked externally | | 7. SES production access (both domains) | Waiting | AWS approval | | 8. Decommission InMotion VPS | Backlog | after sites live | ## 2. Outline — Collection + docs (for AI bots) **Collection: `Website Host Migration`** Docs to create (draft): - `Overview` — what/why (one-pager) - `Architecture` — target stack, diagrams (Caddy, Docker, Garage, AWS) - `AWS Offsite Backup` — bucket, lifecycle, sync, restore runbook - `Email Setup (PurelyMail + SES)` — config, DNS records, handoff - `Garage v2` — upgrade + admin UI usage - `Decommission InMotion` — checklist - `Handoffs for AI` — SES SMTP creds reference (no secrets: point to local file) ## 3. Obsidian consolidation (human - Create `000 MIGRATION — OVERVIEW.md` in `220 Web Host Migration/`: summary status table (what's live/done/pending), links. - Point it (and the flat phase notes) at **Outline** for AI-facing docs + **Vikunja** for tasks via links in frontmatter/body. - Keep Obsidian = human narrative + configs; Outline = AI/bot docs; Vikunja = tasks. (Overlap OK: Obsidian links to both.) ## Auth needed to build - Valid `VIKUNJA_TOKEN` + `OL_API_KEY` on `.27` (regenerate in apps, or confirm current location). ## Rollout order (after approval + tokens) 1. Vikunja: create project + buckets + tasks (verifiable) 2. Outline: create collection + draft docs (verifiable) 3. Obsidian: write overview + link to both 4. Report outcomes with ids/urls for your visual check