add migration plan
This commit is contained in:
73
migration.md
Normal file
73
migration.md
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user