2.5 KiB
2.5 KiB
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
# 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
.icsfiles - Contacts: Contacts app > Settings > Import > select the
.vcffiles
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:
- Shut down old bare-metal Nextcloud
- Optionally redirect
t-gstone.de/nextcloudtonextcloud.t-gstone.de - Update all Nextcloud clients on your devices to the new URL
- 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