Local Development Setup
Panduan untuk developer yang ingin menjalankan RetailOS di mesin lokal.
Prerequisites
| Tool | Version | Instalasi |
|---|---|---|
| Go | 1.22+ | go.dev/dl |
| Node.js | 20 LTS+ | nodejs.org |
| PostgreSQL | 15+ | brew install postgresql / apt install postgresql |
| SQLite | 3.x | Biasanya sudah terinstall di OS |
| Git | 2.x | brew install git / apt install git |
Quick Start
1. Clone Repository
bash
git clone https://github.com/your-org/retailos.git
cd retailos2. Setup PostgreSQL
bash
# Buat database untuk Cloud Hub
createdb retailos_cloud
# Atau jika perlu user terpisah:
psql -c "CREATE USER retailos_app WITH PASSWORD 'devpass';"
psql -c "GRANT ALL ON DATABASE retailos_cloud TO retailos_app;"3. Jalankan Cloud Hub
bash
# Set environment
export CLOUD_DB_URL="postgres://retailos_app:devpass@localhost/retailos_cloud?sslmode=disable"
export CLOUD_PORT=8090
export JWT_SECRET="dev-secret-key-minimum-32-characters-long"
export API_KEYS="dev-api-key"
# Build dan jalankan
go run ./cmd/cloud-hub/Cloud Hub akan otomatis menjalankan migrasi database saat pertama kali start.
4. Jalankan Store Router
bash
# Buat konfigurasi store
cat > store-dev.yaml << 'EOF'
store:
id: "STORE-DEV"
name: "Dev Store"
cloud_url: "http://localhost:8090"
api_key: "dev-api-key"
database:
path: "./store-dev.db"
server:
port: 8081
private_only: false
EOF
# Jalankan
go run ./cmd/store-router/ --config store-dev.yaml5. Jalankan POS Electron
bash
cd pos-electron
npm install
npm run devPOS akan terbuka di Electron window, koneksi ke Store Router di localhost:8081.
6. Jalankan Portal (contoh: HO Finance)
bash
cd ho-finance
npm install
npm run devPortal terbuka di browser, biasanya di http://localhost:5173.
Seed Data
Untuk development, load demo data:
bash
# Seed demo store dengan produk, member, dan transaksi sample
psql retailos_cloud < demo/seed-store.sql
# Atau gunakan script seed:
./scripts/seed-data.shMenjalankan Semua Sekaligus
Script start_all_services.sh menjalankan semua komponen:
bash
./start_all_services.shIni akan memulai Cloud Hub, Store Router, dan portal web secara bersamaan.
IDE Setup
VS Code Extensions
- Go (
golang.go) -- Go language support - ESLint -- TypeScript linting
- Tailwind CSS IntelliSense -- Autocomplete Tailwind classes
- SQLite Viewer -- Inspect store.db langsung di VS Code
- Thunder Client -- REST API testing
Go Settings
json
{
"go.testFlags": ["-v", "-count=1"],
"go.lintTool": "golangci-lint",
"go.formatTool": "gofmt"
}Halaman Terkait
- Project Structure -- Layout monorepo
- Coding Standards -- Konvensi kode Go
- Testing -- Cara menulis dan menjalankan test