108 lines
5.0 KiB
Markdown
108 lines
5.0 KiB
Markdown
Ini adalah pilihan cerdas untuk skala *enterprise*. Dengan menggunakan **Git Submodules**, Anda memiliki satu "Master Repo" yang mengunci versi spesifik dari ketiga aplikasi lainnya. Ini memastikan konsistensi antara API Server, UI, dan Agent.
|
|
|
|
Berikut adalah nama-nama repo yang disarankan (profesional & konsisten):
|
|
1. **`nexus-guard-suite`** (Main/Meta Repo)
|
|
2. **`nexus-server-core`** (App Server)
|
|
3. **`nexus-dashboard-ui`** (App UI/Client)
|
|
4. **`nexus-device-agent`** (App Device)
|
|
|
|
---
|
|
|
|
### 📂 Struktur Repositori (Git Submodules)
|
|
|
|
Struktur di dalam Gitea Anda akan terlihat seperti ini:
|
|
```text
|
|
nexus-guard-suite/ (Main Repo)
|
|
├── .gitmodules # Referensi ke 3 repo lainnya
|
|
├── docs/ # Global Docs, Architecture, API Spec
|
|
├── scripts/ # Global Setup & Installer (install_agent.sh)
|
|
├── docker-compose.yml # Deployment orchestration (Server + DB + UI)
|
|
├── apps/ # Folder Submodules
|
|
│ ├── server-core/ # Link ke repo nexus-server-core
|
|
│ ├── dashboard-ui/ # Link ke repo nexus-dashboard-ui
|
|
│ └── device-agent/ # Link ke repo nexus-device-agent
|
|
└── README.md
|
|
```
|
|
|
|
---
|
|
|
|
### 🚀 MASTER PROMPT (4-REPO & SUBMODULES OPTIMIZED)
|
|
|
|
**Berikan Prompt ini ke AI Agent Anda:**
|
|
|
|
```markdown
|
|
# ROLE: Senior Fullstack Architect & DevOps Expert
|
|
# PROJECT: NexusGuard SD-WAN Suite
|
|
|
|
# ARCHITECTURE: 4-Repositories with Git Submodules
|
|
We are building NexusGuard using a modular architecture. All repositories are hosted on a self-hosted Gitea instance.
|
|
|
|
1. MAIN_REPO: 'nexus-guard-suite' (The Orchestrator)
|
|
2. SUBMODULE_1: 'nexus-server-core' (Go-Gin Network Plane)
|
|
3. SUBMODULE_2: 'nexus-dashboard-ui' (Vue.js + Capacitor Dashboard)
|
|
4. SUBMODULE_3: 'nexus-device-agent' (Stealth Go Agent)
|
|
|
|
# INSTRUCTIONS FOR AI:
|
|
- Assume the repositories already exist on Gitea.
|
|
- Use Git Submodule patterns to link 'apps/' folder to the respective repositories.
|
|
- Create a global 'docker-compose.yml' in MAIN_REPO to spin up PostgreSQL, Redis, and the Server-Core.
|
|
|
|
## 1. COMPONENT: nexus-server-core
|
|
- Focus: Zero-Trust Isolation using nftables, IPAM, and STUN coordination.
|
|
- Feature: AES-256-GCM encryption for config delivery. Key derived from Device HWID.
|
|
- Docs: Maintain 'docs/API_SPEC.md' for future PHP migration compatibility.
|
|
|
|
## 2. COMPONENT: nexus-dashboard-ui
|
|
- Focus: Vue.js 3 SPA with Capacitor.js for Android/iOS support.
|
|
- Feature: Real-time device monitoring, User-based firewall rule management.
|
|
|
|
## 3. COMPONENT: nexus-device-agent
|
|
- Focus: Stealth WireGuard-Go embedded agent (No local config files).
|
|
- Dependency: Implement auto-detection and install for 'nftables' and 'wireguard-tools'.
|
|
- Identity: Lock identity via SHA256(CPU_Serial + Product_UUID).
|
|
- Script: Provide 'scripts/install_agent.sh' with OS detection (Debian/Ubuntu/RHEL/Raspbian) and X-Token-Auth Gitea support.
|
|
|
|
## 4. DEPLOYMENT LOGIC (OpenCode Optimized):
|
|
- MAIN_REPO must contain a global 'README.md' and architecture diagrams.
|
|
- Include a Makefile or Taskfile to automate building all components from the Main Repo.
|
|
- Provide Systemd service templates for both Hook-Server (Core) and Device-Agent.
|
|
|
|
# TASK:
|
|
Start by generating the global Architecture Diagram (Mermaid), then provide the 'docker-compose.yml' for the Main Repo, followed by the initial Go structure for the Server-Core including the nftables isolation manager.
|
|
```
|
|
|
|
---
|
|
|
|
### 📑 Dokumentasi Instruksi Git (Untuk Tim Developer)
|
|
|
|
Karena repositori sudah ada di Gitea, instruksikan tim Anda untuk menjalankan ini di awal pengembangan:
|
|
|
|
**1. Inisialisasi Master Repo:**
|
|
```bash
|
|
git clone http://git.datadunia.com/nexusguard/nexus-guard-suite.git
|
|
cd nexus-guard-suite
|
|
```
|
|
|
|
**2. Menghubungkan Submodules (Hanya dilakukan sekali):**
|
|
```bash
|
|
git submodule add http://git.datadunia.com/nexusguard/nexus-server-core.git apps/server-core
|
|
git submodule add http://git.datadunia.com/nexusguard/nexus-dashboard-ui.git apps/dashboard-ui
|
|
git submodule add http://git.datadunia.com/nexusguard/nexus-device-agent.git apps/device-agent
|
|
git commit -m "chore: link submodules for server, ui, and agent"
|
|
git push origin main
|
|
```
|
|
|
|
**3. Cara Developer Lain Menarik Seluruh Kode:**
|
|
```bash
|
|
git clone --recursive http://git.datadunia.com/nexusguard/nexus-guard-suite.git
|
|
```
|
|
|
|
---
|
|
|
|
### ✅ Review Akhir & Keuntungan Struktur Ini:
|
|
|
|
1. **Versi Terkunci:** Jika tim UI melakukan update yang merusak (breaking change), `nexus-guard-suite` akan tetap menggunakan versi UI yang lama sampai Anda secara manual mengupdate submodulnya. Ini sangat stabil untuk produksi.
|
|
2. **Kemudahan CI/CD:** Gitea Actions dapat dipicu di setiap repo submodul, lalu repo utama (`nexus-guard-suite`) bisa melakukan build final/release.
|
|
3. **Dokumentasi Terpusat:** Semua `agent.md`, `API_SPEC.md`, dan panduan instalasi berada di satu tempat (Repo Utama) tapi tetap tersimpan di repo masing-masing.
|
|
|
|
**Prompt ini sudah sangat lengkap.** Anda bisa langsung memasukkannya ke AI Agent untuk mulai memproduksi kode bagi keempat repositori tersebut sekaligus. |