Dokumentasi Teknis RetailOS
Dokumentasi ini ditujukan untuk developer, DevOps engineer, dan system administrator yang bekerja dengan codebase RetailOS.
Arsitektur Overview
RetailOS menggunakan arsitektur edge-cloud hybrid dengan tiga tier utama:
Komponen Utama
| Komponen | Bahasa | Database | Fungsi |
|---|---|---|---|
| Cloud Hub | Go 1.22+ | PostgreSQL 16 | Backend kantor pusat, API gateway |
| Store Router | Go 1.22+ | SQLite WAL | Backend toko, offline-first |
| DC Edge | Go 1.22+ | SQLite WAL | Backend gudang distribusi |
| POS Electron | TypeScript | - | Aplikasi kasir desktop |
| Web Portals (7x) | TypeScript | - | Portal manajemen (TanStack Start) |
| Mobile Apps (3x) | TypeScript | SQLite | Stock, Customer, Buyer (Expo) |
Navigasi Dokumentasi Teknis
- Arsitektur -- Desain sistem, komponen, dan data flow
- API Reference -- Endpoint REST API untuk Cloud, Store, dan DC
- Database -- Schema PostgreSQL dan SQLite
- Deployment -- Setup server, Docker, Cloudflare + Tailscale
- Security -- Autentikasi, otorisasi, jaringan VPN
- Development -- Local dev setup, coding standards, testing
- Troubleshooting -- Diagnosa dan solusi masalah umum
Tech Stack Summary
| Layer | Technology |
|---|---|
| Backend | Go 1.22+, chi/v5 router, shopspring/decimal |
| Cloud DB | PostgreSQL 16, database/sql + raw SQL |
| Store/DC DB | SQLite 3 (WAL mode), mattn/go-sqlite3 |
| Frontend Web | TanStack Start, React 19, Vite, Tailwind CSS |
| Desktop POS | Electron, React, TanStack Router |
| Mobile | Expo SDK 52, React Native, NativeWind |
| Auth | JWT (HS256/RS256), WebAuthn, RBAC |
| Networking | Tailscale VPN, Cloudflare CDN/WAF |
| Monitoring | Prometheus metrics, Uptime Kuma |
| Realtime | MQTT (embedded broker di Store Router) |