Quick start
Perintah di halaman ini dimulai dari root repo Bucket/, kecuali jika langkah menyebut direktori lain. Frontend membutuhkan Node.js 20+, sedangkan backend dan OCR dapat dijalankan melalui Docker Compose.
Struktur repo yang digunakan dalam contoh:
Workspace/
├── Bucket/ # Backup database dan aplikasi legacy
└── new bucket/Bucket/ # Monorepo ini
├── apps/api/ # Backend Go
├── apps/web/ # Frontend React
└── apps/documentation/ # Panduan Docusaurus
Workshop/
└── ocr_service/ # Layanan OCR opsional
Backend Go berada dalam repo ini. OCR berada di ~/Workshop/ dan bersifat opsional.
1. Backend Go dan infrastruktur
Di terminal pertama:
cd apps/api
cp -n .env.example .env
Edit .env: ganti JWT_SECRET, cek database, dan setel origin frontend Vite. Contoh berikut menempatkan API pada port host 8082:
API_PORT=8082
APP_URL=http://localhost:8082
HTTP_ADDR=:8080
CORS_ALLOW_ORIGINS=http://localhost:5173
Kemudian:
docker compose up -d --build
docker compose ps
Untuk database baru dan kosong, terapkan migrasi satu kali:
make db-apply-migrations
Target Makefile menjalankan semua .up.sql tanpa pelacakan versi. Jangan ulangi pada database yang sudah memiliki skema. Periksa output setiap file karena kegagalan satu file tidak otomatis menghentikan loop. Lihat database dan storage.
curl -fsS http://localhost:8082/health
curl -fsS http://localhost:8082/ready
/ready memeriksa koneksi PostgreSQL, bukan seluruh tabel atau OCR.
2. Frontend React
Di terminal baru dari root Bucket/:
npm ci
cp -n apps/web/.env.example apps/web/.env
npm run dev
Pastikan apps/web/.env berisi VITE_API_URL=http://localhost:8082. Buka URL yang ditampilkan Vite, biasanya http://localhost:5173. Login memakai akun dari database Go; migrasi skema saja tidak membuat akun default.
Frontend membaca token dari envelope data.token milik backend Go. Pengembangan dengan apps/web/mock-server.js memerlukan penyelarasan kontrak login; lihat frontend.
3. OCR (opsional)
Mulai stack Go dahulu karena Compose OCR merujuk network memo_backend_go_default. Di terminal baru dari root Bucket/:
cd '../../../Workshop/ocr_service'
docker compose --env-file '../../Workspace/new bucket/Bucket/apps/api/.env' up -d --build
curl -fsS http://localhost:8015/health
Compose OCR membaca deploy/compose.env. Periksa token, callback, kredensial provider, dan koneksi MinIO. Build pertama mengunduh model PaddleOCR. Lihat layanan OCR.
Alamat lokal
| Layanan | Alamat |
|---|---|
| Frontend React | http://localhost:5173 (umumnya) |
| API Go pada contoh ini | http://localhost:8082 |
| Swagger API Go | http://localhost:8082/docs/swagger |
| OCR | http://localhost:8015 |
| Swagger OCR | http://localhost:8015/docs |
| PostgreSQL Go | localhost:55432 |
| PostgreSQL OCR | localhost:5434 |
| Redis OCR | localhost:6381 |
| MinIO | http://localhost:9000 |
Port aktual dapat berubah menurut .env dan Compose. Hentikan masing-masing stack dengan docker compose down dari direktori terkait. Opsi -v juga menghapus volume data.