Skip to content

Local Development Setup

Panduan untuk developer yang ingin menjalankan RetailOS di mesin lokal.

Prerequisites

ToolVersionInstalasi
Go1.22+go.dev/dl
Node.js20 LTS+nodejs.org
PostgreSQL15+brew install postgresql / apt install postgresql
SQLite3.xBiasanya sudah terinstall di OS
Git2.xbrew install git / apt install git

Quick Start

1. Clone Repository

bash
git clone https://github.com/your-org/retailos.git
cd retailos

2. 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.yaml

5. Jalankan POS Electron

bash
cd pos-electron
npm install
npm run dev

POS 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 dev

Portal 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.sh

Menjalankan Semua Sekaligus

Script start_all_services.sh menjalankan semua komponen:

bash
./start_all_services.sh

Ini 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

RetailOS - Sistem ERP Retail Modern untuk Indonesia