diff --git a/migration.md b/migration.md new file mode 100644 index 0000000..f8e58b3 --- /dev/null +++ b/migration.md @@ -0,0 +1,73 @@ +# Migration Plan: Bare-Metal Nextcloud to Docker + +Fresh Docker install with manual re-upload via Nextcloud client. +Old setup: bare-metal Nextcloud (MySQL) at `t-gstone.de/nextcloud`. +New setup: Docker-based Nextcloud (PostgreSQL) at `nextcloud.t-gstone.de`. + +## Before Migration + +### 1. Export Calendars and Contacts from Old Instance + +These live in the database and won't carry over automatically: + +- **Calendars**: Go to Calendar app > Settings (bottom-left) > click `...` next to each calendar > Export (downloads `.ics`) +- **Contacts**: Go to Contacts app > Settings (bottom-left) > click `...` next to each address book > Export (downloads `.vcf`) + +Also export any other DB-only app data you care about (Notes, Deck boards, Bookmarks, etc.). + +### 2. Create DNS Record + +Add an A record for `nextcloud.t-gstone.de` pointing to your VPS IP. Do this early so DNS propagates. + +### 3. Deploy Fresh Docker Setup + +```bash +# Clone repo on VPS, configure .env files +cp .env.example .env # set DOMAIN and DATA_ROOT +cp nextcloud/.env.example nextcloud/.env # set DB creds, admin user, redis password +cp gitea/.env.example gitea/.env +cp monitoring/.env.example monitoring/.env + +# Deploy +./scripts/deploy.sh +``` + +Verify the fresh instance works at `https://nextcloud.t-gstone.de`. + +### 4. Re-Upload Files via Nextcloud Client + +- Install the Nextcloud desktop client +- Point it to `https://nextcloud.t-gstone.de` +- Sync your files from your local machine + +### 5. Re-Import Calendars and Contacts + +- **Calendars**: Calendar app > Settings > Import > select the `.ics` files +- **Contacts**: Contacts app > Settings > Import > select the `.vcf` files + +### 6. Verify + +- [ ] Files are complete and accessible +- [ ] Calendars show all events +- [ ] Contacts are intact +- [ ] Sharing works +- [ ] Mobile apps connect successfully + +### 7. Decommission Old Instance + +Once satisfied: + +1. Shut down old bare-metal Nextcloud +2. Optionally redirect `t-gstone.de/nextcloud` to `nextcloud.t-gstone.de` +3. Update all Nextcloud clients on your devices to the new URL +4. Keep the old data/DB dump as a backup for a few weeks before deleting + +## What Won't Carry Over (DB-only data) + +These are stored in the MySQL database, not in files. Export before shutting down the old instance if you need them: + +- Calendars / Contacts (CalDAV/CardDAV) — export as `.ics`/`.vcf` +- Share links and shared folder structures +- Notes, Deck boards, Bookmarks, Talk history +- App settings and configurations +- Activity log / file versioning metadata