henotic-cli
Version:
Henotic CLI is the ultimate multi-language backend generator, accelerating development with modular project structures and smart CRUD generation. Streamline your workflow from day one!
422 lines (316 loc) • 9.38 kB
Markdown
# 🦜 Henotic CLI - The Ultimate Backend Generator
Henotic CLI adalah generator backend multi-bahasa yang mempercepat pengembangan dengan struktur proyek modular dan pembuatan CRUD yang cerdas. Streamline workflow kamu dari hari pertama!
## 📋 Daftar Isi
- [Instalasi](#instalasi)
- [Perintah Dasar](#perintah-dasar)
- [Membuat Proyek Baru](#membuat-proyek-baru)
- [TypeScript](#typescript)
- [Golang](#golang)
- [Bahasa Lainnya](#bahasa-lainnya)
- [Membuat Model dan CRUD](#membuat-model-dan-crud)
- [Mengelola Database](#mengelola-database)
- [Seed Data](#seed-data)
- [Unseed Data](#unseed-data)
- [Migrasi](#migrasi)
- [Drop Table](#drop-table)
- [Reset](#reset)
- [Menjalankan Aplikasi](#menjalankan-aplikasi)
- [Mode Development](#mode-development)
- [Mode Production](#mode-production)
- [Struktur Proyek](#struktur-proyek)
- [TypeScript](#struktur-typescript)
- [Golang](#struktur-golang)
- [Konfigurasi](#konfigurasi)
- [Pemecahan Masalah](#pemecahan-masalah)
- [FAQ](#faq)
## 🚀 Instalasi
Henotic CLI membutuhkan [Bun](https://bun.sh) sebagai runtime. Pastikan Bun sudah terinstal di sistem kamu.
```bash
# Install Henotic CLI
curl -fsSL https://henotic.org/install | bash
```
Jika henotic tidak terdeteksi, kamu bisa menambahkan path ke henotic ke PATH sistem:
```bash
export PATH="$PATH:$HOME/.bun/bin"
```
Verifikasi instalasi:
```bash
henotic -v
```
## 🛠️ Perintah Dasar
Berikut adalah perintah dasar yang tersedia di Henotic CLI:
```bash
henotic new <project-name> # Membuat proyek baru
henotic generate <model> # Membuat model dan CRUD baru
henotic seed <module> # Menjalankan seed pada modul
henotic unseed <module> # Menjalankan unseed pada modul
henotic migrate <module> # Menjalankan migrasi pada modul
henotic drop <module> # Menjalankan drop table pada modul
henotic reset <module> # Menjalankan drop + migrate + seed pada modul
henotic dev # Menjalankan aplikasi dalam mode development
henotic start # Menjalankan aplikasi dalam mode production
henotic build # Build aplikasi
henotic -h, --help # Menampilkan bantuan
henotic -v, --version # Menampilkan versi CLI
henotic update # Memperbarui CLI ke versi terbaru
henotic delete # Menghapus Henotic CLI dari sistem
```
Opsi tambahan:
```bash
--all # Menjalankan perintah pada semua modul (untuk seed/unseed/migrate/drop/reset)
```
## 🏗️ Membuat Proyek Baru
### TypeScript
```bash
henotic new my-app
```
Kamu akan diminta untuk memilih:
1. **Framework**: Express.js, Elysia (Bun), Hono, atau Next.js
2. **Database**: PostgreSQL, MongoDB, MariaDB, atau SQLite
3. **Project Directory**: Apakah menggunakan folder `src/` atau tidak
Henotic akan:
- Menginisialisasi proyek TypeScript
- Menginstal dependensi yang diperlukan
- Membuat struktur folder dasar
- Membuat file konfigurasi `henotic.config.json`
### Golang
```bash
henotic new go-app
```
Kamu akan diminta untuk memilih database:
- PostgreSQL
- MariaDB
- SQLite
Henotic akan:
- Menginisialisasi modul Go
- Menginstal dependensi yang diperlukan (gin, gorm, godotenv, dll)
- Membuat struktur folder standar Go
- Membuat file konfigurasi `henotic.config.json`
- Membuat file `.env` dengan konfigurasi default
### Bahasa Lainnya
Henotic juga mendukung Java, PHP, dan Rust (dalam pengembangan).
## 📊 Membuat Model dan CRUD
Setelah proyek dibuat, kamu dapat membuat model dan operasi CRUD dengan perintah:
```bash
henotic generate User name:string email:string age:number isActive:boolean
```
Format: `henotic generate <ModelName> <field1:type> <field2:type> ...`
Tipe data yang didukung:
- string
- number
- boolean
- date
- array
- object
Henotic akan membuat:
- Model/Entity
- Repository/DAO
- Service
- Controller/Handler
- Routes
- Validasi
- Migrasi (jika diperlukan)
- Seed
- Sample data JSON
## 💾 Mengelola Database
### Seed Data
Mengisi database dengan data sampel:
```bash
# Seed satu modul
henotic seed User
# Seed semua modul
henotic seed --all
```
### Unseed Data
Menghapus data seed dari database:
```bash
# Unseed satu modul
henotic unseed User
# Unseed semua modul
henotic unseed --all
```
### Migrasi
Membuat atau memperbarui skema database:
```bash
# Migrasi satu modul
henotic migrate User
# Migrasi semua modul
henotic migrate --all
```
### Drop Table
Menghapus tabel dari database:
```bash
# Drop satu modul
henotic drop User
# Drop semua modul
henotic drop --all
```
### Reset
Menjalankan drop + migrate + seed dalam satu perintah:
```bash
# Reset satu modul
henotic reset User
# Reset semua modul
henotic reset --all
```
> **Catatan**: Untuk proyek Go, perintah `reset` akan otomatis dialihkan ke `seed` karena proses seed di Go sudah mencakup operasi reset lengkap.
## 🚀 Menjalankan Aplikasi
### Mode Development
Menjalankan aplikasi dalam mode development dengan hot-reload:
```bash
henotic dev
```
### Mode Production
Build dan jalankan aplikasi dalam mode production:
```bash
henotic start
```
Atau build saja tanpa menjalankan:
```bash
henotic build
```
## 📁 Struktur Proyek
### Struktur TypeScript
```
my-app/
├── src/ (opsional)
│ ├── config/
│ │ ├── db.json
│ │ └── index.ts
│ ├── modules/
│ │ └── users/
│ │ ├── user.schema.ts
│ │ ├── user.repository.ts
│ │ ├── user.service.ts
│ │ ├── user.migrate.ts
│ │ ├── user.seed.ts
│ │ └── index.ts
│ ├── router.ts
│ ├── error.ts
│ └── index.ts
├── data/
│ └── users.json
├── henotic.config.json
└── package.json
```
### Struktur Golang
```
go-app/
├── cmd/
│ ├── main/
│ │ └── main.go
│ └── seed/
│ └── main.go
├── internal/
│ ├── module/
│ │ └── user/
│ │ ├── entity/
│ │ │ └── user.go
│ │ ├── service/
│ │ │ └── service.go
│ │ ├── handler/
│ │ │ ├── handler.go
│ │ │ └── route.go
│ │ └── bootstrap.go
│ └── seed/
│ └── user.go
├── pkg/
│ ├── config/
│ │ └── config.go
│ ├── database/
│ │ └── database.go
│ ├── middleware/
│ │ └── middleware.go
│ └── utils/
│ └── response.go
├── data/
│ └── users.json
├── .env
├── go.mod
├── go.sum
└── henotic.config.json
```
## ⚙️ Konfigurasi
Henotic menggunakan file `henotic.config.json` untuk menyimpan konfigurasi proyek:
```json
{
"language": "typescript",
"framework": "express",
"database": "postgresql",
"projectDir": "src"
}
```
- **language**: Bahasa pemrograman (`typescript`, `golang`, `java`, `php`, `rust`)
- **framework**: Framework yang digunakan (`express`, `elysia`, `hono`, `next`, `gin`, dll)
- **database**: Database yang digunakan (`postgresql`, `mongodb`, `mariadb`, `sqlite`)
- **projectDir**: Direktori utama proyek (kosong atau `"src"`)
### Konfigurasi Environment
Untuk proyek Go, Henotic membuat file `.env` dengan konfigurasi default:
```
# PostgreSQL
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=postgres
DB_NAME=postgres
SERVER_PORT=8080
APP_ENV=development
TRUSTED_PROXIES=127.0.0.1
```
```
# MariaDB
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=password
DB_NAME=mariadb
SERVER_PORT=8080
APP_ENV=development
TRUSTED_PROXIES=127.0.0.1
```
```
# SQLite
DB_PATH=database.db
SERVER_PORT=8080
APP_ENV=development
TRUSTED_PROXIES=127.0.0.1
```
## 🔧 Pemecahan Masalah
### Perintah tidak ditemukan
Jika `henotic` tidak ditemukan, pastikan:
1. Bun terinstal dengan benar
2. Path global Bun ada di PATH sistem
3. Coba instal ulang: `bun install -g henotic-cli`
### Gagal generate
Jika gagal generate, pastikan:
1. Kamu berada di direktori root proyek
2. File `henotic.config.json` ada dan valid
3. Format perintah generate sudah benar
### Gagal seed/migrate
Jika gagal seed atau migrate, pastikan:
1. Database sudah berjalan dan dapat diakses
2. Konfigurasi database sudah benar
3. Modul yang direferensikan sudah ada
## ❓ FAQ
### Apakah Henotic mendukung database lain?
Saat ini Henotic mendukung PostgreSQL, MongoDB, MariaDB, dan SQLite. Dukungan untuk database lain sedang dalam pengembangan.
### Bagaimana cara menambahkan relasi antar model?
Saat ini kamu perlu mengedit file model/entity secara manual untuk menambahkan relasi. Dukungan otomatis untuk relasi sedang dalam pengembangan.
### Apakah Henotic mendukung autentikasi?
Belum ada dukungan bawaan untuk autentikasi, tetapi kamu dapat menambahkannya secara manual ke proyek yang dihasilkan.
### Bagaimana cara berkontribusi ke Henotic?
Kunjungi repositori GitHub kami di [https://github.com/hens-msn](https://github.com/hens-msn) untuk informasi tentang cara berkontribusi.
© 2025 Henotic Team. Dibuat dengan ❤️ untuk developer.
Simpan konten ini dalam file `README.md` untuk dokumentasi proyek Anda!