5.0 KiB
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):
nexus-guard-suite(Main/Meta Repo)nexus-server-core(App Server)nexus-dashboard-ui(App UI/Client)nexus-device-agent(App Device)
📂 Struktur Repositori (Git Submodules)
Struktur di dalam Gitea Anda akan terlihat seperti ini:
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:
# 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:
git clone http://git.datadunia.com/nexusguard/nexus-guard-suite.git
cd nexus-guard-suite
2. Menghubungkan Submodules (Hanya dilakukan sekali):
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:
git clone --recursive http://git.datadunia.com/nexusguard/nexus-guard-suite.git
✅ Review Akhir & Keuntungan Struktur Ini:
- Versi Terkunci: Jika tim UI melakukan update yang merusak (breaking change),
nexus-guard-suiteakan tetap menggunakan versi UI yang lama sampai Anda secara manual mengupdate submodulnya. Ini sangat stabil untuk produksi. - Kemudahan CI/CD: Gitea Actions dapat dipicu di setiap repo submodul, lalu repo utama (
nexus-guard-suite) bisa melakukan build final/release. - 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.