lapeh 2.6.17 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +1 -6
- package/README.md +19 -85
- package/bin/index.js +84 -180
- package/dist/lib/bootstrap.d.ts.map +1 -1
- package/dist/lib/bootstrap.js +17 -16
- package/dist/lib/core/store.d.ts +55 -0
- package/dist/lib/core/store.d.ts.map +1 -0
- package/dist/lib/core/store.js +66 -0
- package/dist/lib/middleware/error.d.ts.map +1 -1
- package/dist/lib/middleware/error.js +1 -20
- package/dist/lib/utils/validator.d.ts.map +1 -1
- package/dist/lib/utils/validator.js +3 -32
- package/dist/src/modules/Auth/auth.controller.d.ts.map +1 -1
- package/dist/src/modules/Auth/auth.controller.js +118 -105
- package/dist/src/modules/Rbac/rbac.controller.d.ts.map +1 -1
- package/dist/src/modules/Rbac/rbac.controller.js +141 -140
- package/dist/src/routes/index.d.ts.map +1 -1
- package/dist/src/routes/index.js +0 -5
- package/doc/en/CHEATSHEET.md +3 -7
- package/doc/en/CLI.md +16 -41
- package/doc/en/DEPLOYMENT.md +171 -245
- package/doc/en/GETTING_STARTED.md +1 -25
- package/doc/en/PACKAGES.md +2 -3
- package/doc/en/STRUCTURE.md +1 -11
- package/doc/en/TUTORIAL.md +61 -119
- package/doc/id/CHANGELOG.md +16 -0
- package/doc/id/CHEATSHEET.md +0 -4
- package/doc/id/CLI.md +19 -54
- package/doc/id/DEPLOYMENT.md +171 -245
- package/doc/id/GETTING_STARTED.md +91 -115
- package/doc/id/PACKAGES.md +0 -1
- package/doc/id/STRUCTURE.md +1 -11
- package/doc/id/TUTORIAL.md +51 -109
- package/gitignore.template +0 -10
- package/lib/bootstrap.ts +39 -38
- package/lib/core/store.ts +116 -0
- package/lib/middleware/error.ts +1 -21
- package/lib/utils/validator.ts +3 -39
- package/package.json +4 -18
- package/scripts/init-project.js +2 -108
- package/scripts/make-module.js +1 -12
- package/scripts/seed-json.js +158 -0
- package/src/modules/Auth/auth.controller.ts +156 -106
- package/src/modules/Rbac/rbac.controller.ts +193 -138
- package/src/routes/index.ts +0 -3
- package/src/routes/rbac.ts +42 -42
- package/storage/logs/.0337f5062fe676994d1dc340156e089444e3d6e0-audit.json +5 -10
- package/storage/logs/lapeh-2025-12-30.log +1093 -0
- package/tsconfig.build.json +1 -3
- package/tsconfig.json +0 -1
- package/lib/core/database.ts +0 -5
- package/prisma/base.prisma.template +0 -8
- package/prisma/migrations/20251225163737_init/migration.sql +0 -236
- package/prisma/migrations/20251226000329_create_pets_table/migration.sql +0 -11
- package/prisma/migrations/20251226001249_create_pets_table/migration.sql +0 -82
- package/prisma/migrations/20251226001717_restore_core_models/migration.sql +0 -236
- package/prisma/migrations/migration_lock.toml +0 -3
- package/prisma/schema.prisma +0 -197
- package/prisma/seed.ts +0 -411
- package/scripts/compile-schema.js +0 -64
- package/src/modules/Auth/auth.prisma +0 -106
- package/src/modules/Pets/pets.controller.ts +0 -238
- package/src/modules/Pets/pets.prisma +0 -9
- package/src/modules/Rbac/rbac.prisma +0 -68
- package/src/routes/pets.ts +0 -13
- package/storage/logs/lapeh-2025-12-26.log +0 -88
- package/storage/logs/lapeh-2025-12-27.log +0 -217
package/doc/id/DEPLOYMENT.md
CHANGED
|
@@ -1,245 +1,171 @@
|
|
|
1
|
-
# Deployment Guide
|
|
2
|
-
|
|
3
|
-
Panduan ini akan membantu Anda membawa aplikasi Lapeh dari `localhost` ke Server Production (VPS/Cloud).
|
|
4
|
-
|
|
5
|
-
## Persiapan Pra-Deploy
|
|
6
|
-
|
|
7
|
-
Sebelum deploy, pastikan:
|
|
8
|
-
|
|
9
|
-
1. **Environment Variables**: Siapkan nilai `.env` untuk production (
|
|
10
|
-
2. **Build**: TypeScript harus dikompilasi ke JavaScript.
|
|
11
|
-
|
|
12
|
-
## Strategi 1: VPS (Ubuntu/Debian) dengan PM2
|
|
13
|
-
|
|
14
|
-
Ini adalah cara paling umum dan hemat biaya.
|
|
15
|
-
|
|
16
|
-
### 1. Setup Server
|
|
17
|
-
|
|
18
|
-
Pastikan Node.js
|
|
19
|
-
|
|
20
|
-
### 2. Clone & Install
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
git clone https://github.com/username/repo-anda.git
|
|
24
|
-
cd repo-anda
|
|
25
|
-
npm install --production=false # Install devDependencies juga untuk build
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### 3. Build Aplikasi
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
npm run build
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Ini akan menghasilkan folder `dist/`.
|
|
35
|
-
|
|
36
|
-
### 4. Setup
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
**Tips:**
|
|
173
|
-
|
|
174
|
-
1. Sesuaikan `cwd` (Current Working Directory) dengan lokasi folder proyek Anda di VPS.
|
|
175
|
-
2. Pastikan port tidak bentrok antar aplikasi (contoh di atas: 4000, 3001, 8001).
|
|
176
|
-
3. Simpan file ini di root folder proyek utama atau di folder khusus konfigurasi server Anda.
|
|
177
|
-
4. Jalankan semua aplikasi sekaligus dengan: `pm2 start ecosystem.config.js`.
|
|
178
|
-
|
|
179
|
-
### 8. Reverse Proxy (Nginx)
|
|
180
|
-
|
|
181
|
-
Jangan expose port 4000 langsung. Gunakan Nginx di depannya.
|
|
182
|
-
Config Nginx block:
|
|
183
|
-
|
|
184
|
-
```nginx
|
|
185
|
-
server {
|
|
186
|
-
server_name api.domain-anda.com;
|
|
187
|
-
location / {
|
|
188
|
-
proxy_pass http://localhost:4000;
|
|
189
|
-
proxy_http_version 1.1;
|
|
190
|
-
proxy_set_header Upgrade $http_upgrade;
|
|
191
|
-
proxy_set_header Connection 'upgrade';
|
|
192
|
-
proxy_set_header Host $host;
|
|
193
|
-
proxy_cache_bypass $http_upgrade;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
## Strategi 2: Docker (Container)
|
|
199
|
-
|
|
200
|
-
Lapeh sudah menyertakan `Dockerfile` (jika belum, buat sederhana saja).
|
|
201
|
-
|
|
202
|
-
**Dockerfile Minimal:**
|
|
203
|
-
|
|
204
|
-
```dockerfile
|
|
205
|
-
FROM node:18-alpine
|
|
206
|
-
|
|
207
|
-
WORKDIR /app
|
|
208
|
-
|
|
209
|
-
COPY package*.json ./
|
|
210
|
-
RUN npm install
|
|
211
|
-
|
|
212
|
-
COPY . .
|
|
213
|
-
RUN npm run build
|
|
214
|
-
|
|
215
|
-
EXPOSE 4000
|
|
216
|
-
CMD ["npm", "run", "start:prod"]
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
**Deploy:**
|
|
220
|
-
|
|
221
|
-
```bash
|
|
222
|
-
docker build -t my-lapeh-app .
|
|
223
|
-
docker run -p 4000:4000 --env-file .env my-lapeh-app
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
## Strategi 3: PaaS (Railway / Render / Vercel)
|
|
227
|
-
|
|
228
|
-
Platform seperti Railway.app sangat mudah karena mendeteksi `package.json`.
|
|
229
|
-
|
|
230
|
-
1. Push kode ke GitHub.
|
|
231
|
-
2. Connect repo di Railway/Render.
|
|
232
|
-
3. Set Environment Variables di dashboard mereka.
|
|
233
|
-
4. Set **Build Command**: `npm run build`.
|
|
234
|
-
5. Set **Start Command**: `npm run start:prod`.
|
|
235
|
-
|
|
236
|
-
**Catatan Khusus Vercel (Serverless):**
|
|
237
|
-
Lapeh didesain sebagai _Long-Running Server_ (Express). Deploy ke Vercel dimungkinkan tapi butuh wrapper serverless (seperti `vercel-express`). Untuk performa terbaik, disarankan menggunakan VPS atau Container (Railway/Fly.io).
|
|
238
|
-
|
|
239
|
-
## Checklist Keamanan Production
|
|
240
|
-
|
|
241
|
-
- [ ] `NODE_ENV=production` harus diset.
|
|
242
|
-
- [ ] `JWT_SECRET` harus panjang dan acak.
|
|
243
|
-
- [ ] Database tidak boleh terekspos ke publik (gunakan private network atau firewall).
|
|
244
|
-
- [ ] Rate Limiting aktif (default Lapeh sudah aktif).
|
|
245
|
-
- [ ] Gunakan HTTPS (SSL) via Nginx atau Cloudflare.
|
|
1
|
+
# Deployment Guide
|
|
2
|
+
|
|
3
|
+
Panduan ini akan membantu Anda membawa aplikasi Lapeh dari `localhost` ke Server Production (VPS/Cloud).
|
|
4
|
+
|
|
5
|
+
## Persiapan Pra-Deploy
|
|
6
|
+
|
|
7
|
+
Sebelum deploy, pastikan:
|
|
8
|
+
|
|
9
|
+
1. **Environment Variables**: Siapkan nilai `.env` untuk production (JWT Secret yang kuat, dll).
|
|
10
|
+
2. **Build**: TypeScript harus dikompilasi ke JavaScript.
|
|
11
|
+
|
|
12
|
+
## Strategi 1: VPS (Ubuntu/Debian) dengan PM2
|
|
13
|
+
|
|
14
|
+
Ini adalah cara paling umum dan hemat biaya.
|
|
15
|
+
|
|
16
|
+
### 1. Setup Server
|
|
17
|
+
|
|
18
|
+
Pastikan Node.js dan NPM sudah terinstall di server.
|
|
19
|
+
|
|
20
|
+
### 2. Clone & Install
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
git clone https://github.com/username/repo-anda.git
|
|
24
|
+
cd repo-anda
|
|
25
|
+
npm install --production=false # Install devDependencies juga untuk build
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### 3. Build Aplikasi
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm run build
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Ini akan menghasilkan folder `dist/`.
|
|
35
|
+
|
|
36
|
+
### 4. Setup Konfigurasi Production
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
cp .env.example .env
|
|
40
|
+
nano .env # Isi dengan config production
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 5. Jalankan dengan PM2
|
|
44
|
+
|
|
45
|
+
Lapeh kini menyertakan konfigurasi otomatis PM2 (`ecosystem.config.js`).
|
|
46
|
+
|
|
47
|
+
1. **Install PM2 Global**:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npm install -g pm2
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
2. **Jalankan Aplikasi**:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
pm2 start ecosystem.config.js
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Perintah ini akan:
|
|
60
|
+
|
|
61
|
+
- Menjalankan aplikasi dalam mode **Cluster** (menggunakan semua core CPU yang tersedia).
|
|
62
|
+
- Mengatur `NODE_ENV` ke `production`.
|
|
63
|
+
- Mengaktifkan auto-restart jika aplikasi crash atau penggunaan memori melebihi 1GB.
|
|
64
|
+
|
|
65
|
+
3. **Cek Status**:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
pm2 status
|
|
69
|
+
pm2 logs
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
4. **Simpan Config Startup (Agar jalan saat server reboot)**:
|
|
73
|
+
```bash
|
|
74
|
+
pm2 save
|
|
75
|
+
pm2 startup
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### ❓ FAQ: Mengapa Aplikasi Saya Muncul Ganda di PM2?
|
|
79
|
+
|
|
80
|
+
Jika Anda menjalankan `pm2 list` dan melihat nama aplikasi Anda muncul lebih dari satu kali, **JANGAN KHAWATIR**. Ini adalah fitur, bukan bug.
|
|
81
|
+
|
|
82
|
+
- **Penyebab**: Konfigurasi `instances: "max"` dan `exec_mode: "cluster"` di `ecosystem.config.js`.
|
|
83
|
+
- **Fungsi**: PM2 mendeteksi jumlah inti CPU (Core) di VPS Anda dan membuat 1 proses worker untuk setiap core.
|
|
84
|
+
- **Keuntungan**: Aplikasi Anda menjadi **Multi-Threaded**.
|
|
85
|
+
|
|
86
|
+
**Cara mengubah ke Single Instance (Hemat RAM):**
|
|
87
|
+
Jika RAM server Anda terbatas, ubah `ecosystem.config.js`:
|
|
88
|
+
|
|
89
|
+
```javascript
|
|
90
|
+
module.exports = {
|
|
91
|
+
apps: [
|
|
92
|
+
{
|
|
93
|
+
name: "my-app",
|
|
94
|
+
// ...
|
|
95
|
+
instances: 1, // Ubah "max" menjadi 1
|
|
96
|
+
// ...
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
};
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Lalu jalankan `pm2 reload ecosystem.config.js`.
|
|
103
|
+
|
|
104
|
+
### 7. Advanced: Menjalankan Beberapa Aplikasi (Multi-App)
|
|
105
|
+
|
|
106
|
+
Anda bisa menggabungkannya dalam satu file `ecosystem.config.js`.
|
|
107
|
+
|
|
108
|
+
### 8. Reverse Proxy (Nginx)
|
|
109
|
+
|
|
110
|
+
Jangan expose port 4000 langsung. Gunakan Nginx di depannya.
|
|
111
|
+
Config Nginx block:
|
|
112
|
+
|
|
113
|
+
```nginx
|
|
114
|
+
server {
|
|
115
|
+
server_name api.domain-anda.com;
|
|
116
|
+
location / {
|
|
117
|
+
proxy_pass http://localhost:4000;
|
|
118
|
+
proxy_http_version 1.1;
|
|
119
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
120
|
+
proxy_set_header Connection 'upgrade';
|
|
121
|
+
proxy_set_header Host $host;
|
|
122
|
+
proxy_cache_bypass $http_upgrade;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Strategi 2: Docker (Container)
|
|
128
|
+
|
|
129
|
+
Lapeh sudah menyertakan `Dockerfile`.
|
|
130
|
+
|
|
131
|
+
**Dockerfile Minimal:**
|
|
132
|
+
|
|
133
|
+
```dockerfile
|
|
134
|
+
FROM node:18-alpine
|
|
135
|
+
|
|
136
|
+
WORKDIR /app
|
|
137
|
+
|
|
138
|
+
COPY package*.json ./
|
|
139
|
+
RUN npm install
|
|
140
|
+
|
|
141
|
+
COPY . .
|
|
142
|
+
RUN npm run build
|
|
143
|
+
|
|
144
|
+
EXPOSE 4000
|
|
145
|
+
CMD ["npm", "run", "start:prod"]
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**Deploy:**
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
docker build -t my-lapeh-app .
|
|
152
|
+
docker run -p 4000:4000 --env-file .env my-lapeh-app
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Strategi 3: PaaS (Railway / Render / Vercel)
|
|
156
|
+
|
|
157
|
+
Platform seperti Railway.app sangat mudah karena mendeteksi `package.json`.
|
|
158
|
+
|
|
159
|
+
1. Push kode ke GitHub.
|
|
160
|
+
2. Connect repo di Railway/Render.
|
|
161
|
+
3. Set Environment Variables di dashboard mereka.
|
|
162
|
+
4. Set **Build Command**: `npm run build`.
|
|
163
|
+
5. Set **Start Command**: `npm run start:prod`.
|
|
164
|
+
|
|
165
|
+
## Checklist Keamanan Production
|
|
166
|
+
|
|
167
|
+
- [ ] `NODE_ENV=production` harus diset.
|
|
168
|
+
- [ ] `JWT_SECRET` harus panjang dan acak.
|
|
169
|
+
- [ ] Database credential (jika ada) harus aman.
|
|
170
|
+
- [ ] Rate Limiting aktif (default Lapeh sudah aktif).
|
|
171
|
+
- [ ] Gunakan HTTPS (SSL) via Nginx atau Cloudflare.
|
|
@@ -1,115 +1,91 @@
|
|
|
1
|
-
# Getting Started with Lapeh Framework
|
|
2
|
-
|
|
3
|
-
Selamat datang di dokumentasi resmi **Lapeh Framework**. Panduan ini akan membantu Anda memulai instalasi, konfigurasi, dan pemahaman dasar tentang struktur proyek.
|
|
4
|
-
|
|
5
|
-
## Persyaratan Sistem
|
|
6
|
-
|
|
7
|
-
Sebelum memulai, pastikan sistem Anda memenuhi persyaratan berikut:
|
|
8
|
-
|
|
9
|
-
- **Node.js**: Versi 18.x atau lebih baru.
|
|
10
|
-
- **
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
File `.env` menyimpan konfigurasi penting. Berikut adalah variabel kunci:
|
|
93
|
-
|
|
94
|
-
```ini
|
|
95
|
-
# Server
|
|
96
|
-
PORT=4000
|
|
97
|
-
NODE_ENV=development
|
|
98
|
-
|
|
99
|
-
# Database (Ganti sesuai kredensial Anda)
|
|
100
|
-
DATABASE_URL="postgresql://user:password@localhost:5432/mydb?schema=public"
|
|
101
|
-
|
|
102
|
-
# Security
|
|
103
|
-
JWT_SECRET="rahasia-super-panjang-dan-acak"
|
|
104
|
-
ACCESS_TOKEN_EXPIRES_IN=3600 # 1 jam
|
|
105
|
-
|
|
106
|
-
# Redis (Opsional - otomatis mock jika tidak ada)
|
|
107
|
-
REDIS_URL="redis://localhost:6379"
|
|
108
|
-
NO_REDIS=false # Set true untuk memaksa mode mock
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
## Langkah Selanjutnya
|
|
112
|
-
|
|
113
|
-
- Pelajari cara menggunakan **[CLI Tools](CLI.md)** untuk mempercepat development.
|
|
114
|
-
- Pahami **[Fitur & Konsep Inti](FEATURES.md)** framework.
|
|
115
|
-
- Ikuti **[Tutorial Studi Kasus](TUTORIAL.md)** untuk membangun fitur nyata.
|
|
1
|
+
# Getting Started with Lapeh Framework
|
|
2
|
+
|
|
3
|
+
Selamat datang di dokumentasi resmi **Lapeh Framework**. Panduan ini akan membantu Anda memulai instalasi, konfigurasi, dan pemahaman dasar tentang struktur proyek.
|
|
4
|
+
|
|
5
|
+
## Persyaratan Sistem
|
|
6
|
+
|
|
7
|
+
Sebelum memulai, pastikan sistem Anda memenuhi persyaratan berikut:
|
|
8
|
+
|
|
9
|
+
- **Node.js**: Versi 18.x atau lebih baru.
|
|
10
|
+
- **Package Manager**: NPM (bawaan Node.js).
|
|
11
|
+
|
|
12
|
+
## Instalasi
|
|
13
|
+
|
|
14
|
+
Cara termudah untuk memulai adalah menggunakan CLI generator `npx`.
|
|
15
|
+
|
|
16
|
+
### 1. Buat Project Baru
|
|
17
|
+
|
|
18
|
+
Jalankan perintah berikut di terminal Anda:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Setup Interaktif Standar
|
|
22
|
+
npx lapeh@latest init nama-project-anda
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### 2. Setup Awal
|
|
26
|
+
|
|
27
|
+
Setelah project dibuat, masuk ke direktori project dan jalankan setup wizard:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
cd nama-project-anda
|
|
31
|
+
npm run first
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Script ini akan melakukan hal-hal berikut secara otomatis:
|
|
35
|
+
|
|
36
|
+
1. Menyalin `.env.example` ke `.env`.
|
|
37
|
+
2. Menginstall semua dependency (`npm install`).
|
|
38
|
+
3. Membuat **JWT Secret** yang aman.
|
|
39
|
+
|
|
40
|
+
### 3. Jalankan Server Development
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm run dev
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Server akan berjalan di `http://localhost:4000` (atau port yang Anda tentukan di `.env`).
|
|
47
|
+
|
|
48
|
+
## Struktur Direktori
|
|
49
|
+
|
|
50
|
+
Berikut adalah struktur folder standar Lapeh Framework:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
my-app/
|
|
54
|
+
├── bin/ # Script CLI untuk npx
|
|
55
|
+
├── doc/ # Dokumentasi proyek
|
|
56
|
+
├── scripts/ # Script utility (Generator, Compiler)
|
|
57
|
+
├── src/ # Source code utama aplikasi
|
|
58
|
+
│ ├── controllers/ # Logika bisnis (Handler request)
|
|
59
|
+
│ ├── core/ # Konfigurasi inti (Redis, Server)
|
|
60
|
+
│ ├── middleware/ # Middleware Express (Auth, RateLimit)
|
|
61
|
+
│ ├── routes/ # Definisi routing API
|
|
62
|
+
│ ├── utils/ # Helper function (Response, Validator)
|
|
63
|
+
│ └── index.ts # Entry point aplikasi
|
|
64
|
+
├── .env # Variabel lingkungan (Rahasia)
|
|
65
|
+
├── package.json # Dependensi & Script NPM
|
|
66
|
+
└── tsconfig.json # Konfigurasi TypeScript
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Konfigurasi Environment (.env)
|
|
70
|
+
|
|
71
|
+
File `.env` menyimpan konfigurasi penting. Berikut adalah variabel kunci:
|
|
72
|
+
|
|
73
|
+
```ini
|
|
74
|
+
# Server
|
|
75
|
+
PORT=4000
|
|
76
|
+
NODE_ENV=development
|
|
77
|
+
|
|
78
|
+
# Security
|
|
79
|
+
JWT_SECRET="rahasia-super-panjang-dan-acak"
|
|
80
|
+
ACCESS_TOKEN_EXPIRES_IN=3600 # 1 jam
|
|
81
|
+
|
|
82
|
+
# Redis (Opsional - otomatis mock jika tidak ada)
|
|
83
|
+
REDIS_URL="redis://localhost:6379"
|
|
84
|
+
NO_REDIS=false # Set true untuk memaksa mode mock
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Langkah Selanjutnya
|
|
88
|
+
|
|
89
|
+
- Pelajari cara menggunakan **[CLI Tools](CLI.md)** untuk mempercepat development.
|
|
90
|
+
- Pahami **[Fitur & Konsep Inti](FEATURES.md)** framework.
|
|
91
|
+
- Ikuti **[Tutorial Studi Kasus](TUTORIAL.md)** untuk membangun fitur nyata.
|
package/doc/id/PACKAGES.md
CHANGED
|
@@ -58,7 +58,6 @@ Package ini hanya dipakai saat koding, tidak ikut terinstall di server productio
|
|
|
58
58
|
| **`nodemon`** | Auto-restarter. | Restart server otomatis setiap kita save file. |
|
|
59
59
|
| **`eslint`** | Linter (Polisi Kode). | Mencari potensi error dan variabel yang tidak terpakai. |
|
|
60
60
|
| **`@types/*`** | Definisi Tipe. | Memberikan intellisense (saran kode) untuk library JavaScript biasa. |
|
|
61
|
-
| **`prisma`** | Prisma CLI. | Alat untuk migrasi database (`prisma migrate`) dan generate client. |
|
|
62
61
|
| **`tsc-alias`** | Path resolver. | Mengubah alias `@/core` menjadi path relatif `../core` saat build production. |
|
|
63
62
|
|
|
64
63
|
---
|