Skip to content

Setup lokal

Cara menjalankan Exsport di Mac. Tiga app yang biasanya kamu butuh adalah backend, storefront dan admin. nginx menjadi depan mereka dengan hostname sungguhan; pm2 menjalankannya.

Cara halaman ini diverifikasi

Dibaca pada 2026-09-15 dari script package.json dan file entry tiap repo, serta fakta nginx dan pm2 dari skill exsport-repos. Port dan host adalah nilai local-dev, bukan produksi.

Bagian-bagiannya

AppRepoPort lokalDiakses di
Backenddef-exsport-backend3014 (APP_PORT)https://api-exsport.eris.bdt.dev, atau /be-api di host app
Storefrontdef-exsport-frontend-storefront3013 (PORT)https://exsport.eris.place
Admindef-exsport-frontend-admin3012 (PORT)https://admin-exsport.eris.place

Config nginx ada di /opt/homebrew/etc/nginx/servers/exsport.conf. Ia mengirim /be-api di host app ke backend. Reload nginx butuh Eris — proses master jalan sebagai root.

Menjalankan dengan pm2

Cara biasa menjalankan ketiganya dari pm2. Prosesnya exsp-be, exsp-sf, exsp-adm; mereka menunjuk ke folder ber-hyphen dan menyetel port-nya.

bash
pm2 start exsp-be exsp-sf exsp-adm
pm2 logs exsp-be

Menjalankan manual

Script dev tidak mengunci port, jadi setel sendiri.

bash
# backend — reads APP_PORT from .env (3014)
cd /Volumes/xpro/erisristemena/nestjs/def-exsport-backend && yarn start:dev

# storefront
cd /Volumes/xpro/erisristemena/nextjs/def-exsport-frontend-storefront && PORT=3013 yarn dev

# admin
cd /Volumes/xpro/erisristemena/nextjs/def-exsport-frontend-admin && PORT=3012 yarn dev

Backend dev adalah nest start --watch; kedua frontend adalah next dev --turbopack.

Database

Postgres jalan di Mac di localhost:5432, user postgres. Ia menyimpan snapshot bertanggal: exsport_prod_YYYYMMDD, exsport_dev_*, dan salinan lama exsport_prod / exsport_dev.

Baca DB_NAME di .env backend untuk yang sekarang — jangan pernah berasumsi. Ia sering berubah. Pada 2026-09-15 nilainya exsport_dev_20250921. Snapshot prod menyimpan data produksi sungguhan, jadi hati-hati dengan apa pun yang keluar dari mesin.

Backend tidak punya migrations. Ia menjalankan TypeORM synchronize: true, jadi ia membuat atau mengubah tabel dari file entity saat boot terhadap sebuah database. Lihat Database.

File env

Setiap app membaca .env lokal. Nama key, bukan nilainya, didokumentasikan di halaman repo. Yang paling sering kamu sentuh:

  • Backend: APP_PORT (3014), APP_PREFIX (be-api lokal, gapi di prod), DB_NAME, dan base URL pihak ketiga DELIVERY_BITESHIP_BASE_URL / DOKU_BASEURL / WMS_ENDPOINT_BASE_URL — semua menunjuk ke simulator di dev.
  • Storefront: NEXT_PUBLIC_API_URL (mis. https://exsport.eris.place/be-api), NEXTAUTH_URL, NEXTAUTH_SECRET.
  • Admin: NEXT_PUBLIC_API_URL, NEXTAUTH_URL, NEXTAUTH_SECRET, NEXT_PUBLIC_TINY_EDITOR_API_KEY.

typescript adalah runtime dependency di frontend

Di kedua app Next.js, typescript ada di dependencies, bukan devDependencies, karena next start memuat next.config.ts saat runtime. Jangan kembalikan ke devDependencies atau produksi crash saat boot.

Testing di browser

Kalau tiket bilang "test", jalankan host lokal di browser sungguhan, bukan cek CLI — toko dan admin di-render di client dan perilakunya hanya terlihat di browser. Aturan perusahaan: pakai browser Claude-in-Chrome untuk end-to-end testing. Sebutkan user dan role yang kamu butuh sebelum mulai; Eris yang login.