Files
2026-05-15 05:34:55 +07:00

5.1 KiB

Ini adalah pembagian 3 Repositori Terpisah untuk sistem NexusGuard. Dengan pembagian ini, divisi Backend, Frontend/Mobile, dan Embedded/System dapat bekerja secara paralel tanpa saling tunggu (decoupled).


Repo 1: nexus-server-core (Divisi Backend & Network)

Repositori ini adalah otak sistem yang mengelola database, API, dan perintah firewall (nftables).

  • Tech Stack: Go (Gin), PostgreSQL, Redis, google/nftables.
  • Tugas Utama:
    • Menyediakan API untuk Dashboard dan Agent.
    • Mengelola IPAM (pembagian IP 10.x.x.x).
    • Network Enforcer: Manipulasi nftables (sets & vmaps) untuk isolasi Zero Trust.
    • STUN Signaling: Koordinasi IP publik untuk UDP Hole Punching.
  • Struktur Folder:
    ├── api/                # REST API Handlers
    ├── internal/
    │   ├── firewall/       # nftables Controller logic
    │   ├── coordinator/    # STUN & P2P Logic
    │   └── models/         # GORM Models (User, Device, Rule)
    ├── docs/
    │   └── API_SPEC.md     # KONTRAK API (Penting untuk migrasi ke PHP)
    └── main.go
    

Repo 2: nexus-dashboard-ui (Divisi Frontend & Mobile)

Repositori ini adalah antarmuka untuk pengguna akhir dan administrator.

  • Tech Stack: Vue.js 3, Vite, Pinia, Capacitor.js.
  • Tugas Utama:
    • Manajemen akun user dan registrasi perangkat.
    • Visualisasi status perangkat (Online/Offline) secara real-time.
    • Konfigurasi Firewall (Allow Internet, Port Forwarding, Peer Access).
    • Build ke Web dan Android APK (via Capacitor).
  • Struktur Folder:
    ├── src/
    │   ├── api/            # Service untuk konsumsi API Repo 1
    │   ├── views/          # Halaman Management & Monitoring
    │   └── store/          # State management (auth, device list)
    ├── capacitor.config.ts # Config untuk Android/iOS
    ├── android/            # Project Native Android
    └── package.json
    

Repo 3: nexus-device-agent (Divisi System/Embedded)

Repositori ini adalah aplikasi yang akan diinstal di perangkat (CCTV, Server, IoT).

  • Tech Stack: Go (Static Binary), wireguard-go (library), crypto/aes.
  • Tugas Utama:
    • Stealth Tunneling: Menjalankan WireGuard di dalam memori tanpa file config.
    • Hardware Fingerprinting: Mengunci perangkat berdasarkan HWID unik.
    • Key Rotation: Melakukan rotasi kunci otomatis sesuai instruksi Repo 1.
    • Auto-Healing: Mencoba reconnect otomatis jika jalur UDP terblokir.
  • Struktur Folder:
    ├── internal/
    │   ├── tunnel/         # In-memory WireGuard engine
    │   ├── identity/       # HWID & Registration logic
    │   └── crypto/         # AES Decryption untuk config API
    ├── agent.md            # Dokumentasi panduan untuk AI Agent dev
    └── main.go             # Nama binary disamarkan saat build
    

Skema Komunikasi Antar Repo

  1. Dashboard (Repo 2) ↔ Server Core (Repo 1):

    • Menggunakan REST API dengan JWT Authentication.
    • Dashboard mengirim request "Buka Port", Server Core mengupdate nftables.
  2. Device Agent (Repo 3) ↔ Server Core (Repo 1):

    • Menggunakan REST API dengan AES-Encrypted Payload.
    • Agent mengirim HWID, Server Core mengirim balik konfigurasi WireGuard yang sudah di-encrypt.
  3. Deployment (Gitea):

    • Ketiga repo di-host di Gitea.
    • Repo 3 memiliki CI/CD yang mem-publish binary ke Gitea Releases.
    • Installer script di perangkat mendownload binary dari Gitea menggunakan X-Token-Auth.

Master Prompt untuk Inisialisasi 3 Repo

Jika Anda memberikan instruksi ke AI untuk mulai membuat kode, gunakan prompt ini:

# Context: NexusGuard SD-WAN System
Please generate the initial boilerplate for 3 separate repositories:

1. REPO_SERVER: Go-Gin project. Focus on PostgreSQL schema for multi-tenant devices and firewall rules. Implement a service that manages 'nftables' sets for user isolation. Include a migration-ready documentation (docs/API_SPEC.md).

2. REPO_UI: Vue.js 3 + Capacitor project. Focus on the API service layer to communicate with REPO_SERVER. Create a dashboard for device monitoring and a firewall rule editor.

3. REPO_AGENT: Go project. Focus on 'wireguard-go' library integration (no config files). Implement HWID collection and an encrypted provisioning client that fetches keys from REPO_SERVER.

# Constraints:
- Use Zero Trust Isolation (Default DROP).
- Support UDP Hole Punching.
- Implement 30-day Key Rotation logic.
- Agent must be stealth (no standard WireGuard file traces).

Review Akhir Divisi:

  • Divisi Backend bisa fokus pada performa kernel dan database.
  • Divisi Frontend bisa fokus pada UX yang memudahkan user mengatur jaringan yang kompleks.
  • Divisi System bisa fokus pada kompatibilitas agent di berbagai OS (Linux ARM/x86).

Apakah pembagian 3 repositori ini sudah sesuai dengan struktur tim Anda?