Memulai bisnis adalah pertaruhan besar. Tanpa data yang tepat, ide brilian sekalipun bisa gagal di tengah jalan.
Banyak founder dan calon pengusaha terjebak dalam situasi ini:
- β Decision Paralysis: Terlalu banyak keraguan (hesitation) untuk melangkah karena takut salah mengambil keputusan.
- β Risiko Kegagalan Tinggi: Membangun produk yang didasarkan pada asumsi semata, bukan kebutuhan pasar yang valid.
- β Strategi yang Abstrak: Memiliki ide di kepala tetapi kesulitan menurunkannya menjadi model bisnis yang konkret dan terstruktur.
Kivo hadir sebagai platform validasi cerdas untuk mengubah keraguan menjadi keyakinan berbasis data:
- β Pre-Launch Validation: Kami memvalidasi konsep bisnis Anda sebelum satu baris kode ditulis atau biaya dikeluarkan.
- β Data-Driven Predictions: Menggunakan prediksi pasar berbasis data untuk memastikan ide Anda relevan hari ini dan future-proof untuk masa depan.
- β Structured Business Model: Menghasilkan Business Model Canvas (BMC) yang solid secara otomatis untuk mempertajam strategi eksekusi Anda.
Pastikan Anda telah menginstal:
- Node.js (Gunakan versi LTS terbaru)
- Docker & Docker Compose
- Git
- Mongosh
git clone https://github.com/mhaatha/kivo-api.git
cd kivo-apinpm installCopy file .env.example ke .env:
cp .env.example .envEdit file .env dan isi variabel berikut:
# Express Server Configuration
PORT=5000
# MongoDB Connection
MONGODB_URI=your_mongodb_uri
# Clerk Authentication (diperlukan untuk auth)
CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key
CLERK_WEBHOOK_SIGNING_SECRET=your_clerk_webhook_secret
# Frontend URLs (untuk CORS)
FRONTEND_URL1=https://kivoai.netlify.app
# Kolosal AI API Configuration
KOLOSAL_API_ENDPOINT=https://api.kolosal.example.com
KOLOSAL_API_KEY=your_kolosal_api_key
# JWT Configuration
JWT_SECRET=your_super_secret_jwt_key
# OpenRouter API Key (untuk AI chat)
OPENROUTER_API_KEY=your_openrouter_api_key
# Supermemory API Key (untuk AI memory)
SUPERMEMORY_API_KEY=your_supermemory_api_keyKivo memerlukan MongoDB untuk menyimpan data. Jalankan dengan Docker Compose:
docker-compose up -dPerintah ini akan:
- Menjalankan MongoDB di port
27017 - Membuat volume data persisten untuk MongoDB
- Menggunakan replica set untuk performa yang lebih baik
Setelah container berjalan, jalankan perintah berikut ntuk mengaktifkan fitur transaction:
docker exec -it kivo-mongo mongosh --eval "rs.initiate({ _id: 'rs0', members: [{ _id: 0, host: 'localhost:27017' }] })"Jika output menampilkan { "ok" : 1 }, berarti fitur transaksi berhasi dijalankan.
Untuk menghentikan MongoDB:
docker-compose downnpm run devnpm startServer akan berjalan di http://localhost:5000 (atau port yang Anda tentukan di .env)
npm testnpm run test:watchnpm run test:coveragenpm run test:integrationnpm run test:aiAPI documentation tersedia di file OpenAPI:
- OpenAPI Spec:
api/v1.0.yaml
Untuk melihat route yang tersedia:
npm run route:listPOST /api/v1/auth/*- Authentication endpoints
POST /api/v1/bmc/bmc-routes- BMC operationsPOST /api/bmc/bmc-routes- Alternative BMC endpoint
GET /api/v1/databases- Database operations
POST /api/chat- AI chat untuk konsultasi bisnisGET /api/chats/:id- Mengambil history chat
GET /api/v1/protected/*- Protected endpoints yang memerlukan authentication
| Variable | Description | Example |
|---|---|---|
PORT |
Port untuk Express server | 3000 |
MONGODB_URI |
MongoDB connection string | mongodb://localhost:27017/kivo |
CLERK_PUBLISHABLE_KEY |
Clerk publishable key - needed untuk authentication | pk_test_*** |
CLERK_SECRET_KEY |
Clerk secret key - needed untuk authentication | sk_test_*** |
CLERK_WEBHOOK_SIGNING_SECRET |
Clerk webhook secret - needed untuk auth webhooks | whsec_*** |
FRONTEND_URL1 |
Frontend URL untuk CORS | https://kivoai.netlify.app |
KOLOSAL_API_ENDPOINT |
Kolosal AI API endpoint - needed untuk AI features | https://api.kolosal.example.com |
KOLOSAL_API_KEY |
Kolosal AI API key - needed untuk AI features | your_kolosal_api_key |
JWT_SECRET |
Secret key untuk JWT tokens - needed untuk authentication | your_super_secret_jwt_key |
OPENROUTER_API_KEY |
OpenRouter API key - needed untuk chat AI | your_openrouter_api_key |
SUPERMEMORY_API_KEY |
Supermemory API key - needed untuk AI memory | your_supermemory_api_key |
Catatan Penting: Semua variabel di atas adalah WAJIB diisi untuk menjaga kemananan dan kelengkapan aplikasi, meskipun beberapa fungsi fitur mungkin tidak berjalan jika value-nya dikosongkan.
Bagaimana Setiap Env Bekerja Jika Dikosongkan:
PORT- HARUS ada, aplikasi error jika kosongMONGODB_URI- HARUS ada, aplikasi error jika kosongCLERK_*- Aplikasi tetap jalan tanpa auth featuresFRONTEND_URL1- CORS tidak akan aktif, frontend access akan error dari origin di luar localhostKOLOSAL_*- AI features yang menggunakan Kolosal AI tidak akan aktifJWT_SECRET- Auth features yang pakai JWT tidak akan jalanOPENROUTER_API_KEY- Chat AI tidak akan aktifSUPERMEMORY_API_KEY- AI memory features tidak akan aktif
Untuk mendapatkan API keys, ikuti panduan berikut:
1. Clerk Authentication:
- Buat akun di https://clerk.com
- Ambil Publishable Key & Secret Key dari dashboard
- Setup webhook dan dapatkan Webhook Signing Secret
2. OpenRouter AI (Untuk chat AI):
- Daftar di https://openrouter.ai
- Buat API key di dashboard
3. Supermemory AI (Untuk AI memory):
- Daftar di https://supermemory.ai
- Buat API key untuk fitur memory AI
4. Kolosal AI (Untuk AI processing):
- Dapatkan akses ke Kolosal AI API
- Masukkan endpoint dan API key sesuai provider
- Setup Environment - Selesaikan konfigurasi
.env - Jalankan MongoDB -
docker-compose up -d - Aktifkan fitur transaction -
docker exec -it kivo-mongo mongosh --eval "rs.initiate({ _id: 'rs0', members: [{ _id: 0, host: 'localhost:27017' }] })" - Install Dependencies -
npm install - Development Mode -
npm run dev - Testing -
npm run test:watch - Build & Deploy - Proses deployment ke production
- Pastikan MongoDB berjalan:
docker ps - Cek logs:
docker logs kivo-mongo - Restart MongoDB:
docker-compose restart
- Pastikan
OPENROUTER_API_KEYdanSUPERMEMORY_API_KEYterisi untuk fitur AI chat - Verifikasi
KOLOSAL_API_ENDPOINTdanKOLOSAL_API_KEYjika AI tidak merespons
- Pastikan semua
CLERK_*environment variables terisi jika ingin menggunakan auth features
- Pastikan
FRONTEND_URL1sesuai dengan URL frontend Anda
- Hapus
node_modulesdan install ulang:rm -rf node_modules && npm install
- Hapus
node_modulesdan install ulang:rm -rf node_modules && npm install
kivo-api/
βββ api/ # OpenAPI documentation
βββ src/
β βββ app/ # Core application code
β β βββ ai/ # AI chat functionality
β β βββ config/ # Application configuration
β β βββ controllers/ # Request handlers
β β βββ middlewares/ # Express middlewares
β β βββ models/ # Mongoose models
β β βββ repositories/ # Data access layer
β β βββ services/ # Business logic
β β βββ utils/ # Utility functions
β β βββ validations/ # Validation schemas
β β βββ routes/ # API route definitions
β βββ scripts/ # Utility scripts
β βββ types/ # TypeScript definitions
β βββ server.js # Application entry point
βββ tests/ # Test files
βββ docker-compose.yaml # Docker configuration
βββ vitest.config.js # Test configuration
Jika mengalami masalah:
- Cek logs aplikasi untuk error messages
- Pastikan semua environment variables terisi dengan benar
- Verifikasi koneksi MongoDB dan Clerk configuration