3. Prasyarat
Daftar Isi
- 3.1 Server Tactical RMM
- 3.2 Development environment
- 3.3 Akses & kredensial
- 3.4 Environment variables yang akan dipakai
- 3.5 Verifikasi cepat
- 3.6 Checklist sebelum lanjut
3.1 Server Tactical RMM
Anda butuh akses ke instance TRMM yang sudah berjalan. Untuk Hermes Network Inc., sudah tersedia di:
| Komponen | URL |
|---|---|
| Backend Django | https://api.hermesnetwork.cloud |
| MeshCentral | https://mesh.hermesnetwork.cloud |
| Frontend dashboard | https://rmm.hermesnetwork.cloud |
Kalau Anda perlu instance baru (mis. staging), ikuti panduan resmi: https://docs.tacticalrmm.com/install_server/
3.1.1 Membuat API key
- Login ke
https://rmm.hermesnetwork.cloudsebagai super-admin - Pergi ke Settings → Global Settings → API Keys
- Klik Add API Key
- Pilih user yang akan dipakai (rekomendasi: bikin user dedicated
hermes-app-svcdengan permission terbatas) - Salin key yang dikeluarkan — hanya ditampilkan satu kali
Penting: API key ini hanya boleh disimpan di Supabase Edge Function, jangan pernah embed di desktop client. Detail di Bab 7.
3.1.2 Menentukan client_id & site_id
TRMM mengelompokkan agent ke dalam:
Client (top-level, mis. "Hermes Network Inc.")
└── Site (anak, mis. "Jakarta Office", "Remote Workers")
└── Agent (endpoint, mis. "JADE-PC")
Untuk multi-tenant, Anda butuh mapping user → client_id → site_id. Cara dapat ID-nya:
# Pakai API key dari step sebelumnya
curl -H "X-API-KEY: YOUR_API_KEY" https://api.hermesnetwork.cloud/api/v3/clients/
# Output:
# [
# { "id": 34, "name": "Hermes Network Inc.", "sites": [...] },
# ...
# ]
Catat ID-nya untuk dipakai di Supabase Edge Function (lihat Bab 6).
3.2 Development environment
3.2.1 Tooling .NET
| Tool | Versi minimum | Catatan |
|---|---|---|
| .NET SDK | 8.0 | Pakai 8.0.x latest stable |
| Avalonia | 11.x | Sudah ada di project |
| JetBrains Rider | 2024.x | Atau Visual Studio 2022 17.8+ |
| Git | 2.40+ |
Verifikasi:
dotnet --version
# Output: 8.0.x
3.2.2 NuGet packages baru yang dibutuhkan
Tambahkan ke HermesNetwork/HermesNetwork.csproj:
<ItemGroup>
<!-- Layer 1: HTTP client utilities -->
<PackageReference Include="System.Net.Http.Json" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="8.0.0" />
<!-- Logging utility (kalau belum ada) -->
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.0" />
<!-- Untuk WebSocket TRMM real-time events (opsional, fase 2) -->
<!-- <PackageReference Include="System.Net.WebSockets.Client" Version="4.3.2" /> -->
</ItemGroup>
Tidak butuh NuGet untuk crypto, ECDH, AesGcm, ServiceController — semua sudah di stdlib
System.Security.CryptographydanSystem.ServiceProcess.
3.2.3 Tooling backend (Supabase Edge Function)
| Tool | Versi minimum | Catatan |
|---|---|---|
| Supabase CLI | 1.150+ | npm i -g supabase |
| Deno | 1.40+ | Otomatis terinstall via Supabase CLI |
| Node.js | 20.x | Untuk tooling local |
Verifikasi:
supabase --version
# Output: 1.x.x
Login ke project Supabase Anda:
supabase login
supabase link --project-ref YOUR_PROJECT_REF
3.3 Akses & kredensial
Pastikan Anda punya akses ke:
- Repo
Hermes-Network-Inc/HermesNetwork360Guarddi GitHub (write access) - Supabase project (admin role untuk deploy edge function)
- TRMM dashboard (super-admin untuk generate API key + cari client/site ID)
- SSH access ke server TRMM (kalau butuh debug NATS/Celery)
3.4 Environment variables yang akan dipakai
Untuk desktop client (akan dipanggil saat startup):
| Variable | Contoh | Asal |
|---|---|---|
HNGUARD_SUPABASE_URL |
https://xxx.supabase.co |
Supabase dashboard |
HNGUARD_SUPABASE_ANON_KEY |
eyJ... |
Supabase dashboard |
HNGUARD_LOG_PUB_HEX |
(opsional) | dari LogReportService/log_pub.key |
Untuk Supabase Edge Function (set via supabase secrets):
| Variable | Contoh | Asal |
|---|---|---|
TRMM_API_URL |
https://api.hermesnetwork.cloud |
static |
TRMM_API_KEY |
your-api-key-here |
step 3.1.1 |
TRMM_DEFAULT_CLIENT_ID |
34 |
step 3.1.2 |
TRMM_DEFAULT_SITE_ID |
41 |
step 3.1.2 |
Set di Supabase:
supabase secrets set TRMM_API_URL=https://api.hermesnetwork.cloud
supabase secrets set TRMM_API_KEY=your-api-key-here
supabase secrets set TRMM_DEFAULT_CLIENT_ID=34
supabase secrets set TRMM_DEFAULT_SITE_ID=41
3.5 Verifikasi cepat
Sebelum mulai coding, test bahwa Anda bisa:
3.5.1 Akses TRMM API dengan API key
curl -sS -H "X-API-KEY: YOUR_API_KEY" \
https://api.hermesnetwork.cloud/api/v3/agents/ | head -c 500
Expected: JSON array of agents (atau [] kalau belum ada).
3.5.2 Build ulang HermesNetwork360-Avalonia
cd F:\Upwork\CharlesUSA\HermesNetwork360-Avalonia
dotnet restore
dotnet build -c Debug
Expected: Build sukses (dengan beberapa warning OK).
3.5.3 Deploy stub edge function
cd <your-supabase-project>
supabase functions new enroll-rmm
supabase functions deploy enroll-rmm
Expected: function muncul di Supabase dashboard di Functions section.
3.6 Checklist sebelum lanjut
Pastikan semua centang sebelum lanjut ke Bab 4:
- TRMM API key sudah dibuat dan disimpan di password manager
client_iddansite_idsudah dicatat- .NET SDK 8.0 terinstall, project bisa di-build
- Supabase CLI bisa login + link ke project
- Test cURL ke TRMM API berhasil HTTP 200
- Edge function stub berhasil di-deploy
- Anda punya akses write ke repo GitHub
HermesNetwork360Guard