You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.0 KiB
4.0 KiB
Migration Guide — Server & Domain
Owner: checklist migrasi server/domain, urutan cutover, verifikasi, rollback.
Inventori host: ../server.md. Requirement tool: ../system-requirements.md.
Template env: ../../.env.example (root project).
Prinsip: URL/domain dynamic — ubah .env / config, bukan source code (kecuali refactor env var baru).
Kapan pakai guide ini
- Migrasi app/service ke server baru (IP/host berubah)
- Ganti domain (mis.
old.example.com->new.example.com) - Pindah database ke host/instance baru
- Cutover staging -> prod dengan URL baru
Inventori sebelum migrasi
| Item | Nilai saat ini | Nilai target | File yang harus diupdate |
|---|---|---|---|
| Domain / base URL | .env.example, .env (lokal), server.md |
||
| API base URL | kode baca env saja | ||
| DB host | .env.example, server.md |
||
| Reverse proxy | nginx/IIS config path di repo | ||
| SSL / cert | |||
| DNS record | catatan di server.md |
Variabel env yang terpengaruh
Salin dari .env.example, isi kolom old/new:
| Variabel | Old | New | Sudah di .env prod? |
|---|---|---|---|
API_BASE_URL |
|||
APP_URL |
|||
DB_HOST |
|||
{CUSTOM} |
Commit yang boleh: .env.example, docs — jangan commit .env berisi secret.
Langkah migrasi (server)
-
Persiapan
- Backup data & config server lama
- Server baru memenuhi system-requirements.md
- Install runtime/stack (Docker, nginx, DB, dll.) di server baru
- Siapkan
.envdi server baru dari.env.example
-
Deploy ke server baru (parallel)
- Deploy kode/config ke server baru
- Point
.envke dependency internal (DB, Redis, dll.) - Smoke test internal (IP/host langsung, belum DNS publik)
-
Cutover
- Update DNS / firewall / load balancer
- Update reverse proxy (nginx/IIS) ke backend baru
- Update
.envproduction dengan URL/host final - Restart service / container
-
Verifikasi
- Health check endpoint
- Login / auth flow
- Integrasi ke project monorepo lain (jika ada)
- Client app (APK/web) masih pakai env — rebuild hanya jika BuildConfig berubah
-
Dokumentasi (wajib)
- Update ../server.md (host, URL, mapping path)
- Update
.env.examplejika nama variabel/placeholder berubah - Append entri migrasi di ../version.md + ../changelog.md
- Overwrite ../ai-session-summary.md (Tier 1 handover)
Langkah migrasi (domain saja, server sama)
- Tambah DNS / cert untuk domain baru
- Update reverse proxy
server_name/ binding - Ubah
.env:API_BASE_URL,APP_URL,CORS_ORIGIN, dll. - Redirect domain lama -> baru (opsional, periode transisi)
- Update docs: server.md, .env.example
- Smoke test dari client dengan URL baru
Tidak perlu ubah kode jika semua URL sudah dari env.
Android / mobile (Kotlin Agent dll.)
| Area | Saat migrasi domain |
|---|---|
| Base URL API | gradle.properties / BuildConfig / flavor — bukan hardcode di .kt |
| Network security | network_security_config.xml jika domain/cert berubah |
| Release | Rebuild APK jika BuildConfig berubah; OTA channel sesuai [release guide] |
Rollback
- Kembalikan DNS / proxy ke server/domain lama
- Restore
.envbackup - Restart service
- Catat rollback di ../issues.md + session summary
Riwayat migrasi
| Tanggal | Dari | Ke | Session / versi | Catatan |
|---|---|---|---|---|
| {YYYY-MM-DD} | {old host/domain} | {new} | {session-id} |