From 70b34f8cf3446bb84d66db5aa1869ba1ee3953a9 Mon Sep 17 00:00:00 2001 From: Wira Irawan Date: Wed, 20 May 2026 15:50:54 +0700 Subject: [PATCH] Document production login bootstrap flow --- docs/deploy-production.md | 102 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 97 insertions(+), 5 deletions(-) diff --git a/docs/deploy-production.md b/docs/deploy-production.md index 50b7f09..74f188b 100644 --- a/docs/deploy-production.md +++ b/docs/deploy-production.md @@ -178,13 +178,105 @@ Catatan: - `seed:master` hanya mengisi data awal `grade`, `bank`, dan `currency` - user login production tetap harus dibuat terpisah, jangan mengandalkan akun dev/default -## 7. Build Production +## 7. User Login Awal Production + +Sistem login tidak punya user production bawaan permanen. + +Di kode memang ada akun default, tetapi akun itu hanya dibuat jika: + +```env +AUTH_BOOTSTRAP=true +``` + +Jika production langsung memakai: + +```env +AUTH_BOOTSTRAP=false +``` + +maka akun login awal tidak akan ada. + +### Opsi yang paling praktis: bootstrap sementara + +1. Ubah `.env.production` sementara menjadi: + +```env +AUTH_BOOTSTRAP=true +``` + +2. Build dan jalankan aplikasi: + +```bash +cd /var/www/abelbirdnest-web +npm run build +sudo systemctl restart abelbirdnest-web +``` + +3. Login pertama kali lewat: + +- web: `https://abelbirdnest.id/login` +- API: `POST /api/v1/auth/login` + +Identity bisa memakai `email` atau `username`. + +4. Akun default yang akan tersedia saat bootstrap aktif: + +- `admin` / `admin123` +- `owner` / `owner123` +- `purchasing` / `purchasing123` +- `warehouse` / `warehouse123` +- `qc` / `qc123` +- `sales` / `sales123` + +Email default: + +- `admin@abelbirdnest.local` +- `owner@abelbirdnest.local` +- `purchasing@abelbirdnest.local` +- `warehouse@abelbirdnest.local` +- `qc@abelbirdnest.local` +- `sales@abelbirdnest.local` + +5. Setelah berhasil login, segera buat user production final dari menu `Users`. + +Minimal disarankan: + +- 1 user `SYSTEM_ADMIN` atau `ADMIN` +- 1 user `OWNER` +- user operasional sesuai kebutuhan: `PURCHASING`, `WAREHOUSE`, `QC`, `SALES` + +6. Setelah user production final selesai dibuat dan sudah dites login: + +- ubah lagi `.env.production` menjadi: + +```env +AUTH_BOOTSTRAP=false +``` + +- restart service: + +```bash +sudo systemctl restart abelbirdnest-web +``` + +7. Opsional tapi sangat disarankan: + +- nonaktifkan atau hapus akun default bootstrap dari menu `Users` +- ganti semua password default jika akun tersebut tetap dipertahankan sementara + +### Catatan keamanan + +- Jangan biarkan `AUTH_BOOTSTRAP=true` aktif terus di production. +- Jangan gunakan password default untuk operasi harian. +- Setelah bootstrap selesai, verifikasi bahwa login masih normal memakai user production yang baru dibuat. + +## 8. Build Production ```bash npm run build ``` -## 8. Jalankan App di Port 3007 +## 9. Jalankan App di Port 3007 Manual: @@ -216,7 +308,7 @@ Untuk verifikasi: sudo systemctl is-enabled abelbirdnest-web ``` -## 9. Reverse Proxy Nginx +## 10. Reverse Proxy Nginx Gunakan file: @@ -233,7 +325,7 @@ sudo nginx -t sudo systemctl reload nginx ``` -## 10. Health Check +## 11. Health Check Endpoint health: @@ -247,7 +339,7 @@ Contoh: curl https://abelbirdnest.id/api/v1/health ``` -## 11. Update Deployment Berikutnya +## 12. Update Deployment Berikutnya Jika aplikasi sudah live dan ada update dari git: