Frontend aplikasi Dokter Ulun dibangun dengan React, TypeScript, Vite, shadcn/ui, dan Tailwind CSS.
Panduan deploy end-to-end tersedia di README-DEPLOY.md.
- React 18
- TypeScript
- Vite
- Tailwind CSS
- shadcn/ui
- React Router
.
├── src/
│ ├── components/
│ ├── contexts/
│ ├── pages/
│ └── config/api.ts
├── public/
├── .env.development.example
├── .env.production.example
├── package.json
└── vite.config.ts
Konfigurasi utama frontend ada di file berikut:
vite.config.ts- port development Vite
- proxy
/apike backend lokal
src/config/api.ts- pembentukan base URL API
- fallback ke
/apijika env tidak diisi
- Frontend dev:
http://localhost:8080 - Backend dev:
http://localhost:3000 - Proxy Vite:
/api->http://localhost:3000
Template env yang tersedia:
.env.development.example.env.production.example
VITE_API_BASE_URL=/api
VITE_API_ORIGIN=http://localhost:8080Keterangan:
VITE_API_BASE_URL- base URL semua request API frontend
- default aman untuk production dengan Nginx adalah
/api
VITE_API_ORIGIN- origin tanpa suffix
/api - dipakai untuk beberapa kebutuhan URL absolut
- origin tanpa suffix
- Install dependency:
npm install- Siapkan env development:
cp .env.development.example .env- Jalankan dev server:
npm run dev- Buka:
http://localhost:8080
- Siapkan env production:
cp .env.production.example .env.production- Build frontend:
npm run build- Hasil build ada di folder
dist/
Skema yang direkomendasikan:
- frontend build disajikan oleh Nginx
- backend Node berjalan terpisah
- Nginx melakukan proxy
/apike backend
Karena frontend default memakai /api, Anda tidak perlu hardcode domain backend di kode frontend selama Nginx sudah benar.
npm install
cp .env.production.example .env.production
npm run buildLalu upload isi folder dist/ ke document root web server.
Frontend production memerlukan dua hal:
- fallback SPA ke
index.html - proxy
/apike backend Node
Contoh minimal:
location /api/ {
proxy_pass http://127.0.0.1:3000/api/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location / {
try_files $uri $uri/ /index.html;
}Periksa:
- frontend sudah build terbaru
- Nginx sudah proxy
/api - backend berjalan di port yang benar
FRONTEND_URLbackend sesuai domain frontend
Periksa:
VITE_API_BASE_URL- proxy di
vite.config.tsuntuk lokal - konfigurasi
location /api/di Nginx untuk production
Pastikan Nginx memakai:
try_files $uri $uri/ /index.html;