Aplikasi frontend untuk sistem pemesanan makanan berbasis Next.js 16 dengan TypeScript dan Tailwind CSS. Aplikasi ini terhubung dengan backend Laravel untuk mengelola pemesanan, menu, dan transaksi.
- Node.js 18 atau lebih baru
- npm, yarn, pnpm, atau bun
- Backend Laravel yang sudah berjalan (lihat
backend/README.md)
npm installBuat file .env.local di root direktori dengan isi berikut:
NEXT_PUBLIC_BACKEND_URL=http://localhost:8000
NODE_ENV=development
PORT=3000Catatan: Variable PORT opsional, default adalah 3000. Jika ingin menggunakan port lain, tambahkan PORT=<port_number>.
Pastikan backend Laravel sudah berjalan di http://localhost:8000. Jika backend menggunakan port lain, sesuaikan NEXT_PUBLIC_BACKEND_URL di .env.local.
npm run devAplikasi akan berjalan di http://localhost:3000 (atau port yang di-set di PORT environment variable)
Buat file .env.production atau set environment variables di platform deployment Anda:
NEXT_PUBLIC_BACKEND_URL=https://api.yourdomain.com
NODE_ENV=production
PORT=3000Penting:
- Variable
NEXT_PUBLIC_BACKEND_URLwajib diisi dengan URL backend production - Variable
PORTopsional, default adalah 3000. Set sesuai kebutuhan di production - Gunakan HTTPS untuk production
- Pastikan backend sudah dikonfigurasi CORS untuk menerima request dari domain frontend
npm run build:prodPlatform Managed (Vercel/Netlify):
- Tidak perlu start manual, platform akan handle secara otomatis
- Set environment variables di dashboard platform
- Deploy menggunakan CLI atau connect repository
Server Sendiri (VPS/Dedicated Server):
- Perlu di-start dengan
npm run startsetelah build - Set environment variables di file
.env.productionatau export manual - Disarankan menggunakan process manager seperti PM2 untuk keep alive
Cara Deploy di Server Sendiri:
- Build aplikasi:
npm run build:prod- Start aplikasi:
# Menggunakan file .env.production
npm run start
# Atau set environment variables manual
export NEXT_PUBLIC_BACKEND_URL=https://api.yourdomain.com
export NODE_ENV=production
export PORT=3000
npm run start- Menggunakan PM2 (recommended untuk production):
# Install PM2
npm install -g pm2
# Start dengan PM2
pm2 start npm --name "mejaorder-frontend" -- start
# Atau dengan environment variables
pm2 start npm --name "mejaorder-frontend" -- start --env production
# PM2 akan otomatis membaca .env.production jika menggunakan --env productionCatatan:
- Next.js perlu di-start di server sendiri karena aplikasi ini menggunakan Server-Side Rendering (SSR)
- Untuk platform seperti Vercel, tidak perlu start karena mereka handle sebagai serverless functions
- Pastikan Node.js terinstall di server dan versi sesuai dengan requirement
npm run dev- Menjalankan development servernpm run build- Build aplikasi untuk productionnpm run build:prod- Build dengan NODE_ENV=production (recommended)npm run start- Menjalankan production servernpm run lint- Menjalankan ESLint
Jika muncul error "Backend URL not configured" atau "Failed to fetch":
- Pastikan backend Laravel berjalan di
http://localhost:8000 - Cek nilai
NEXT_PUBLIC_BACKEND_URLdi file.env.local - Restart development server setelah mengubah
.env.local - Pastikan CORS di backend sudah dikonfigurasi untuk menerima request dari frontend
Jika environment variables tidak terbaca:
- Pastikan file
.env.localada di root direktori (sama level denganpackage.json) - Restart development server setelah mengubah
.env.local - Untuk production, pastikan environment variables di-set di platform deployment
- Variable harus diawali dengan
NEXT_PUBLIC_untuk bisa diakses di browser
Untuk mengubah port aplikasi, set environment variable PORT:
Development:
Tambahkan di .env.local:
PORT=3001Production:
Tambahkan di .env.production atau set di platform deployment:
PORT=3001Next.js akan otomatis membaca PORT dari environment variable. Jika tidak di-set, default port adalah 3000.