# 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