Skip to content

Latest commit

Β 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›‘οΈ NYX NVR (Next-Gen Network Video Recorder)

NYX NVR Logo Node.js Version Fastify TypeScript YOLOv8 ONNX Platform

Next-Generation Edge CCTV & AI Surveillance Platform
Platform perekam video CCTV pintar, super ringan, hemat daya, dan bebas biaya lisensi bulanan. Dirancang khusus untuk berjalan mulus di komputer Windows harian maupun perangkat edge murah seperti STB Android TV bekas (HG680-P / B860H RAM 2GB) bertenaga Armbian Linux.

Fitur Utama β€’ Detail Optimasi Performa β€’ Dukungan Kamera CCTV β€’ Instalasi Windows β€’ Instalasi Armbian / STB β€’ API Docs


πŸ“‘ Daftar Isi

  1. Arsitektur & Keunggulan
  2. Fitur Utama
  3. Detail Rekayasa Optimasi Performa (Low-Spec & STB Ready)
  4. Dukungan Perangkat CCTV & Panduan RTSP
  5. Kebutuhan Sistem (Hardware & Software)
  6. Panduan Instalasi Windows (Pemula-Friendly)
  7. Panduan Instalasi Armbian / STB HG680-P / B860H (Pemula-Friendly)
  8. Pengelolaan Background Service (Jalan Otomatis Saat Boot)
  9. Fitur Cerdas: Deteksi Port Bentrok Otomatis
  10. Mesin Auto-Delete & Retensi Penyimpanan
  11. Spesifikasi REST API & WebSocket
  12. Cara Uninstall & Pembersihan
  13. Pertanyaan Sering Diajukan (FAQ)

πŸ—οΈ Arsitektur & Keunggulan

NVR tradisional sering membuat komputer atau STB hang karena mere-encode video berulang kali. NYX NVR menggunakan teknik Single Ingestion:

Setiap kamera RTSP hanya disedot 1 kali oleh FFmpeg ke dalam memori, lalu dipecah langsung menjadi 3 jalur tanpa re-encoding (Direct Stream Copy):

flowchart TD
    CAM["πŸ“Ή IP Camera: V380 / Franwell / Tapo / Ezviz / ONVIF"] -->|"Single RTSP Stream"| FFMPEG["βš™οΈ FFmpeg Ingestion Engine"]
    
    FFMPEG -->|"Jalur 1: fMP4 Fragments"| WS["⚑ WebSocket Server: /ws/live/:id"]
    FFMPEG -->|"Jalur 2: Stream Copy H.264"| DISK["πŸ’Ύ Storage Lokal: /storage/recordings"]
    FFMPEG -->|"Jalur 3: Raw RGB 640x360 @ 2fps"| FILTER["πŸ” Stage 1: MotionFilter Pixel Diff"]
    
    WS -->|"Low Latency di bawah 500ms"| BROWSER["πŸ’» Web Browser HTML5 MSE Player"]
    
    FILTER -->|"Ada Gerakan Nyata"| AI["🧠 Stage 2: AI Worker Thread YOLOv8n ONNX 640x640"]
    FILTER -.->|"Kondisi Sunyi - Tanpa Gerakan"| IDLE["πŸ’€ Lewati AI - 0% Beban CPU"]
    
    AI -->|"Objek Terdeteksi di Zona ROI"| EVT["🚨 Simpan Log SQLite WAL + Snapshot JPG"]
    EVT -->|"Kirim Notifikasi Real-time"| BROWSER
    
    RETENTION["⏱️ Retention Worker"] -->|"Cek Retensi Jam atau Hari"| CLEANUP["πŸ—‘οΈ Auto-Delete Video & Snapshot Expired"]
Loading

⚑ Fitur Utama

  • πŸš€ HTML5 MSE Player Real-time (<500ms): Nonton siaran langsung CCTV dari browser tanpa plugin, tanpa WebRTC yang rumit (tidak butuh STUN/TURN server), dan tanpa jeda HLS yang lambat.
  • 🧠 Deteksi AI Dua Tahap (Two-Stage AI 640x360 Widescreen):
    • Tahap 1 (Motion Pre-filter 640x360): Mendeteksi perubahan pixel pada frame raw RGB 640x360 (2 fps) dengan algoritma komputasi ringan berkecepatan tinggi. Jika kondisi ruangan sunyi, AI inference dilewati sehingga CPU tetap 0%.
    • Tahap 2 (YOLOv8n ONNX Worker 640x640): Begitu ada gerakan, frame 640x360 resolusi tajam langsung dialirkan ke worker thread YOLOv8n ONNX tanpa perlu decode ulang, mendeteksi manusia, kendaraan, hewan, dll. dengan akurasi tinggi bahkan untuk objek yang jauh.
    • ROI Polygon Mask: Atur area deteksi langsung di layar (misal: hanya pantau pintu gerbang, abaikan jalan raya umum).
  • πŸŽ›οΈ Dynamic Adaptive Load Governor (SBC & Potato Optimization): Sistem cerdas yang memantau latensi AI dan otomatis mengadaptasi tingkat sampling komputasi (Tier: 🟒 Performance, 🟑 Balanced, πŸ”΄ Eco / Potato) untuk mencegah thermal throttling pada STB ARM / Mini PC Celeron.
  • 🎯 Dynamic AI Tuning & COCO 80 Class Filtering: Slider interaktif untuk Confidence Threshold (10% - 95%) dan IoU NMS Threshold (10% - 90%) dengan preset sekali klik (πŸ›‘οΈ Security, πŸ“± Smart Home, 🌐 All 80 Classes).
  • πŸ”Œ Deteksi Port Bebas Otomatis (Auto-Port Detection): Jika port 3000 sedang dipakai oleh aplikasi lain, NYX NVR otomatis mencari dan menggunakan port kosong berikutnya (3001, 3002, dst.) tanpa error atau crash.
  • ⏱️ Auto-Delete Rekaman Berdasarkan Waktu:
    • Tentukan lama penyimpanan dalam Jam atau Hari (misal: 6 jam, 24 jam, 3 hari, 7 hari, 14 hari, 30 hari).
    • Opsi otomatis membersihkan file foto snapshot AI (.jpg) dan log riwayat lama.
    • Tombol "Purge Expired Now" untuk menghapus rekaman basi secara instan.
    • Proteksi darurat ambang disk (otomatis menghapus rekaman tertua jika disk mencapai 90%).
  • 🎨 Tampilan Industrial Brutalist: Tema gelap bertema hazard amber yang elegan, hemat daya layar, responsif di HP/Tablet/Komputer, dengan grid fleksibel (1x1, 2x2, 3x3, 4x4) dan mode fokus kamera tunggal.
  • πŸ“‘ Auto-Discovery Kamera: Pindai jaringan Wi-Fi/LAN lokal otomatis untuk mendeteksi kamera ONVIF & SSDP dalam 1 klik.

🏎️ Detail Rekayasa Optimasi Performa (Low-Spec & STB Ready)

NYX NVR dirancang secara khusus untuk berjalan stabil 24/7 di perangkat hemat daya (seperti STB HG680-P / B860H Quad-Core ARM Cortex-A53 RAM 2GB) tanpa overheating dan tanpa memory leak. Berikut rincian rekayasa optimasi yang diterapkan:

1. 🟒 Adaptive Load Governor (src/core/LoadGovernor.ts)

Sistem secara real-time menghitung rolling average durasi inferensi AI dan responsivitas event loop Node.js untuk mengatur beban operasional ke dalam 3 tier adaptif:

Tier Operasional Kondisi Latensi Sampling Rate AI Interval Heartbeat Strategi Throttling
🟒 PERFORMANCE $&lt; 120\text{ ms}$ 2.0 FPS $1000\text{ ms}$ Full burst mode, latency prioritas tinggi
🟑 BALANCED $120 - 250\text{ ms}$ 1.5 FPS $1500\text{ ms}$ Dynamic pacing, keseimbangan CPU & FPS
πŸ”΄ ECO / POTATO $&gt; 250\text{ ms}$ 1.0 FPS $2500\text{ ms}$ Cooldown diperpanjang, proteksi over-temperature

Dilengkapi dengan Hysteresis Hold-Time (5 detik) untuk mencegah osilasi/flapping antar-tier saat terjadi lonjakan komputasi sesaat.

2. ⚑ Conditional Decoding & Pure Remux Passthrough

  • Zero Re-encoding Ingestion: Jalur perekaman ke disk dan pengaliran live ke WebSocket 100% menggunakan flag -c:v copy (tanpa encode/decode CPU).
  • Conditional Motion Pipe: Jalur ekstraksi frame video decoding FFmpeg (-vf fps=2,scale=160:120 pipe:3) hanya diaktifkan jika saklar AI kamera bernilai ON (ai_enabled = 1). Jika AI mati, kamera murni berjalan dalam mode passthrough murni dengan konsumsi CPU $&lt; 0.5%$.

3. 🌐 Anti-Stutter MSE Player & Smooth Micro-Rate Sync

  • Bukan Hard Seeking: Pemutar video browser menghindari hard seek jump (currentTime = end - 0.2) yang sering merusak buffer GOP dan menyebabkan video macet setiap 2 detik.
  • Dynamic Micro-Rate Sync: Player mempercepat pemutaran secara mikro (playbackRate = 1.08x) jika keterlambatan buffer $&gt; 2.0$ detik, dan kembali ke 1.0x begitu latensi turun ke $&lt; 0.6$ detik. Hasilnya: siaran langsung tetap real-time, mulus, dan bebas jeda (zero stuttering).
  • Clean Lifecycle & Memory Revocation: Saat berpindah tab navigasi, instance MSE dan WebSocket di-teardown secara bersih dan Blob Object URL dicabut (URL.revokeObjectURL) untuk mencegah akumulasi memori browser.

4. πŸ’Ύ SQLite WAL Engine & Metadata Deduplication

  • Write-Ahead Logging (WAL): Operasi penulisan log event dan segmen video tidak pernah mengunci (lock) operasi pembacaan dashboard.
  • Zero-Sweep Indexing: Metadata segmen video diekstrak langsung dari log stderr FFmpeg saat file selesai ditulis, tanpa melakukan pemindaian direktori disk (directory sweep) berulang yang memicu lonjakan I/O harddisk.
  • Unique Constraint Indexing: Indeks unik idx_recordings_filepath memastikan integritas database tanpa baris duplikat.

5. πŸ›‘οΈ Resilient Reconnection Backoff

  • Kamera offline atau jaringan terputus ditangani dengan Exponential Backoff ($3\text{s} \to 6\text{s} \to 11\text{s} \to 20\text{s} \to 35\text{s} \to \max 60\text{s}$) dengan batas waktu socket probe ketat (2s analyze / 5s timeout) agar koneksi yang putus tidak menimbulkan lonjakan 100% CPU.

πŸ“Ή Dukungan Perangkat CCTV & Panduan RTSP

NYX NVR mendukung SEMUA MERK KAMERA IP & CCTV di pasaran yang memiliki fitur RTSP (Real-Time Streaming Protocol) atau ONVIF standar industri.

πŸ’‘ CATATAN PENTING TENTANG PORT RTSP:

  • Port standar resmi protokol RTSP adalah 554. Karena sudah menjadi standar default, penulisan :554 pada URL bersifat opsional (contoh: rtsp://192.168.1.7/live/ch00_0 akan otomatis terhubung ke port 554 tanpa harus mengetik :554).
  • Jika kamera Anda dikonfigurasi menggunakan port khusus/custom (seperti 8554, 5544, dll.), barulah nomor port wajib dicantumkan secara eksplisit (contoh: rtsp://192.168.1.7:8554/live/ch00_0).
  • Jika kamera tidak menggunakan password, bagian admin:password@ dapat langsung dihilangkan.

Berikut panduan format URL RTSP untuk merk-merk CCTV populer:

πŸ“‘ Cheat Sheet URL RTSP Kamera Populer

Merk CCTV Format URL RTSP Standar / Rekomendasi Alternatif / Port Khusus Catatan & Tips Konfigurasi
V380 / V380 Pro / Macro-video rtsp://<IP_CCTV>/live/ch00_0
(atau rtsp://admin:pass@<IP_CCTV>/live/ch00_0)
rtsp://<IP_CCTV>:554/live/ch0
atau port 8554
Format ch00_0 adalah jalur Main Stream HD aktif bawaan firmware V380 Pro/Macro-video ODM. Port :554 tidak wajib ditulis.
Franwell / Bardi / Tuya / Smart Life rtsp://<IP_CCTV>/live/ch0
(atau rtsp://admin:pass@<IP_CCTV>/live/ch0)
rtsp://<IP_CCTV>:8554/live/ch0 Pada aplikasi Smart Life / Tuya / Bardi, aktifkan fitur PC View / ONVIF pada menu kamera untuk mengaktifkan akses RTSP.
TP-Link Tapo (C200, C310, TC70, dll.) rtsp://username:password@<IP_CCTV>/stream1 rtsp://username:password@<IP_CCTV>:554/stream2 Buat akun kamera di aplikasi Tapo (Settings -> Advanced Settings -> Camera Account). Gunakan stream1 (HD) atau stream2 (SD).
Ezviz & Hikvision rtsp://admin:VERIFIKASI@<IP_CCTV>/H.264/ch1/main/av_stream rtsp://admin:VERIFIKASI@<IP_CCTV>:554/h264/ch1/sub/av_stream Password bawaan Ezviz adalah Kode Verifikasi 6 huruf kapital pada stiker fisik di bagian bawah kamera.
Dahua & Imou (Ranger, Cue, Bullet) rtsp://admin:SAFETY_CODE@<IP_CCTV>/cam/realmonitor?channel=1&subtype=0 rtsp://admin:SAFETY_CODE@<IP_CCTV>:554/cam/realmonitor?channel=1&subtype=1 Password default Imou adalah Safety Code pada label stiker kamera. subtype=0 untuk Main Stream, subtype=1 untuk Sub Stream.
Xiaomi / Yi Home rtsp://<IP_CCTV>/ch0_0.h264 rtsp://<IP_CCTV>:554/ch0_0.h264 Memerlukan firmware modifikasi open-source (Yi-Hack / Xiaomi-Hack) agar port RTSP terbuka.
DVR / NVR Standalone (Generic H.264) rtsp://admin:password@<IP_DVR>/h264/ch1/main/av_stream rtsp://admin:password@<IP_DVR>:554/h264/ch1/main/av_stream Ganti ch1 sesuai nomor channel kamera yang ingin ditarik dari DVR/NVR.

πŸ’‘ TIPS MENGETAHUI IP ADDRESS & MENGETES STREAM KAMERA:

  1. Buka dashboard modem/router Wi-Fi Anda (biasanya 192.168.1.1 atau 192.168.0.1), lalu cek menu DHCP Client List.
  2. Atau gunakan aplikasi HP gratis seperti Fing (Android/iOS) untuk memindai IP perangkat di jaringan lokal.
  3. Coba tes URL RTSP terlebih dahulu di software VLC Media Player di komputer: Buka menu Media -> Open Network Stream -> Tempel URL RTSP Anda (misal: rtsp://192.168.1.7/live/ch00_0). Jika video tampil lancar di VLC, berarti URL tersebut 100% siap dipakai di NYX NVR!

πŸ’» Kebutuhan Sistem

Komponen Spesifikasi Minimum Rekomendasi Ideal
Hardware STB Android TV bekas (HG680-P / B860H) / Raspberry Pi 3/4 Komputer Mini PC Intel Celeron N5105 / Core i3 / Raspberry Pi 5
RAM 2 GB RAM 4 GB s/d 8 GB RAM
Penyimpanan MicroSD / Flashdisk 16 GB SSD SATA / NVMe 120GB+ atau Harddisk Eksternal USB
Sistem Operasi Windows 10/11 (64-bit), Armbian Linux, Ubuntu 20.04+, Debian Windows Server, Armbian Bullseye/Bookworm, Debian 12
Node.js v18.x s/d v22.x LTS v20.x LTS
FFmpeg v4.4 atau yang lebih baru v6.x dengan hardware acceleration

πŸͺŸ Panduan Instalasi Windows (Pemula-Friendly)

Panduan mudah langkah demi langkah untuk pengguna Windows tanpa perlu pusing dengan baris perintah yang rumit:

Langkah 1: Pasang Node.js

  1. Kunjungi situs resmi: https://nodejs.org/
  2. Unduh versi LTS (Long Term Support) yang direkomendasikan.
  3. Buka file instalasi .msi, klik Next, centang persetujuan lisensi, dan pastikan opsi "Add to PATH" tercentang.
  4. Klik Finish.

Langkah 2: Pasang FFmpeg

  1. Unduh FFmpeg siap pakai dari: https://gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip
  2. Ekstrak file zip tersebut, lalu ubah nama foldernya menjadi ffmpeg dan pindahkan ke drive C:\ sehingga lokasinya menjadi C:\ffmpeg.
  3. Buka menu pencarian Windows, ketik Edit environment variables for your account, lalu tekan Enter.
  4. Pada bagian User variables, pilih Path, klik Edit -> klik New -> ketikkan C:\ffmpeg\bin -> klik OK.
  5. Tes apakah sukses: Buka Command Prompt (CMD), ketik ffmpeg -version. Jika muncul informasi FFmpeg, berarti instalasi sukses!

Langkah 3: Eksekusi Installer Otomatis

  1. Masuk ke folder project NYXNVR.
  2. Klik ganda (double-click) file install.bat.
  3. Installer akan secara otomatis:
    • Mengecek ketersediaan Node.js dan FFmpeg.
    • Membuat seluruh folder penyimpanan (storage, models, data, logs).
    • Mengunduh dependensi dan meng-compile aplikasi.
    • Menanyakan apakah Anda ingin mendaftarkannya sebagai Windows Background Service (pilih Y).
  4. Selesai! Buka browser Anda dan kunjungi:
    http://localhost:3000
    
    (Jika port 3000 sedang terpakai aplikasi lain, perhatikan layar terminal karena sistem otomatis memakai port seperti http://localhost:3001).

πŸ“ Panduan Instalasi Armbian / STB HG680-P / B860H (Pemula-Friendly)

STB bekas IndiHome/FirstMedia seperti Fiberhome HG680-P atau ZTE B860H dengan harga Rp 100.000 – Rp 200.000 memiliki konsumsi daya listrik sangat rendah (hanya 4 s/d 7 Watt, hidup 24 jam nonstop hanya menghabiskan listrik sekitar Rp 5.000/bulan).

Langkah 1: Akses STB via SSH

Colokkan kabel LAN ke STB Armbian Anda, lalu buka software PuTTY (Windows) atau Terminal (Mac/Linux), dan login:

ssh root@<IP_STB_ANDA>
# Masukkan password root STB Anda

Langkah 2: Install FFmpeg & Node.js

Jalankan perintah berikut di terminal SSH:

# 1. Perbarui daftar paket linux
sudo apt-get update && sudo apt-get upgrade -y

# 2. Pasang FFmpeg, Git, dan Curl
sudo apt-get install -y ffmpeg git curl build-essential

# 3. Pasang Node.js v20 LTS resmi
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs

# 4. Verifikasi instalasi
node -v
ffmpeg -version | head -n 1

Langkah 3: Optimasi Memori Swap (Penting untuk STB RAM 2GB)

Agar STB dengan RAM 2GB tidak kehabisan memori (Out Of Memory) saat model AI dijalankan, buat swap file 2GB:

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Langkah 4: Unduh & Jalankan Installer Otomatis

# Pindah ke direktori home atau opt
cd /opt

# Copy atau clone repository project NYXNVR ke /opt/NYXNVR
# Masuk ke folder
cd /opt/NYXNVR

# Berikan izin eksekusi script installer
chmod +x install.sh uninstall.sh

# Jalankan installer otomatis dengan izin root
sudo ./install.sh

Installer Linux akan secara otomatis:

  • Mengompilasi seluruh kode TypeScript.
  • Membangun service systemd di /etc/systemd/system/nyxnvr.service.
  • Menyalakan service dan mengaturnya agar langsung otomatis hidup saat STB dinyalakan.

Buka browser dari laptop atau HP yang satu jaringan Wi-Fi dengan STB:

http://<IP_STB_ANDA>:3000

βš™οΈ Pengelolaan Background Service

NYX NVR dilengkapi dengan pengawas (Supervisor Daemon) yang memantau server di latar belakang. Jika server mati karena listrik padam atau terjadi error yang tidak terduga, supervisor akan otomatis menyalakan kembali aplikasi!

Perintah Cepat via Terminal / CMD:

# Cek status service (RUNNING / STOPPED, PID proses, Port aktif, lokasi log)
npm run service:status

# Menyalakan service di latar belakang
npm run service:start

# Mematikan service secara aman
npm run service:stop

# Mendaftarkan service ke sistem operasi
npm run service:install

# Menghapus service dari sistem operasi
npm run service:uninstall

Lokasi File Log:

Jika ingin melihat riwayat jalannya NVR di latar belakang, cukup periksa file log:

  • Windows / Linux: NYXNVR/logs/service.log

πŸ”Œ Fitur Cerdas: Deteksi Port Bentrok Otomatis

Banyak software lain (seperti Node.js dev server, Docker, React, Next.js, Grafana, dll.) menggunakan port 3000. Jika NYX NVR mendeteksi port 3000 telah terisi, fitur PortFinder akan langsung bekerja:

[INFO] 4. Starting Fastify Web & WebSocket Server (desired port: 3000)...
[WARN] [PortFinder] [PORT CONFLICT] Desired port 3000 is already occupied by another service.
[INFO] [PortFinder] Automatically scanning for the next available port starting from 3001...
[INFO] [PortFinder] [PORT ACQUIRED] Auto-selected available port: 3001
[INFO] NYX NVR Web Server listening at http://localhost:3001
====================================================
   NYX NVR IS RUNNING AND READY!
   Web Dashboard: http://localhost:3001 (auto-shifted from 3000)
====================================================

Frontend web dashboard dan koneksi WebSocket player secara otomatis menyesuaikan diri dengan port aktif yang terpilih tanpa perlu setting ulang!


⏱️ Mesin Auto-Delete & Retensi Penyimpanan

Di tab menu Storage & Retention pada dashboard, Anda memiliki kendali penuh atas penggunaan harddisk/flashdisk Anda:

  1. Preset Durasi Instan: Klik tombol instan: 6 Jam, 12 Jam, 24 Jam, 3 Hari, 7 Hari, 14 Hari, 30 Hari, atau masukkan angka bebas sesuai kapasitas harddisk Anda.
  2. Auto-Delete Snapshot AI: Centang opsi ini agar gambar foto snapshot hasil deteksi AI ikut dibersihkan saat usianya melampaui batas waktu retensi.
  3. Pembersihan Manual Instan: Klik tombol "Purge Expired Now" kapan saja untuk membersihkan file usang seketika.
  4. Emergency Disk Guard (Batas Aman 90%): Bila harddisk penuh melebihi 90% karena faktor lain, sistem retensi darurat otomatis menghapus rekaman video paling tua terlebih dahulu agar sistem CCTV tidak macet.

πŸ“‘ Spesifikasi REST API & WebSocket

πŸ“Ή Kamera

  • GET /api/v1/cameras β€” Daftar semua kamera terdaftar.
  • POST /api/v1/cameras β€” Tambah kamera baru (name, rtsp_url, is_enabled, ai_enabled).
  • PUT /api/v1/cameras/:id β€” Edit informasi kamera.
  • DELETE /api/v1/cameras/:id β€” Hapus kamera dan hentikan stream.
  • PATCH /api/v1/cameras/:id/ai β€” Saklar ON/OFF deteksi AI kamera.
  • PUT /api/v1/cameras/:id/roi β€” Simpan koordinat polygon zona deteksi ROI.

πŸŽ₯ Live Video & Realtime WebSocket

  • ws://<HOST>:<PORT>/ws/live/:cameraId β€” Stream video biner berkecepatan tinggi (fMP4 fragments) langsung ke MSE Video Tag.
  • ws://<HOST>:<PORT>/ws/events β€” Stream notifikasi event deteksi AI secara real-time.

πŸ“Ό Rekaman & Event AI

  • GET /api/v1/recordings β€” Query filter rekaman video (cameraId, date, limit, offset).
  • GET /api/v1/recordings/:id/stream β€” Download atau tonton rekaman video MP4.
  • GET /api/v1/events β€” Daftar riwayat log deteksi AI dengan pagination.
  • GET /api/v1/events/:id/snapshot β€” Ambil gambar foto snapshot kejadian.

πŸ’Ύ Penyimpanan & Sistem

  • GET /api/v1/storage/retention-status β€” Data status retensi, tanggal rekaman tertua, dan statistik ruang yang dibebaskan.
  • POST /api/v1/storage/purge β€” Trigger eksekusi pembersihan rekaman expired saat ini juga.
  • GET /api/v1/system/disk β€” Informasi kapasitas total, terpakai, dan sisa ruang disk.
  • GET /api/v1/system/metrics β€” Status real-time penggunaan CPU, RAM, dan stream aktif.
  • POST /api/v1/models/upload β€” Upload model ONNX kustom dengan fitur Hot-Reload tanpa restart server.

πŸ—‘οΈ Cara Uninstall & Pembersihan

Di Windows

Cukup klik ganda file uninstall.bat:

  • Menghentikan proses background daemon yang aktif.
  • Menghapus service startup Windows.
  • Memberi Anda pilihan: Apakah file video rekaman dan database ingin tetap disimpan atau ikut dihapus bersih.

Di Linux / Armbian STB

Jalankan perintah:

sudo ./uninstall.sh

❓ Pertanyaan Sering Diajukan (FAQ)

T: Apakah kamera CCTV saya merk V380 Pro / Franwell / Bardi bisa digunakan di NYX NVR?
J: Bisa 100%! Syaratnya hanya satu: kamera Anda dan server NVR (PC / STB) harus terhubung dalam satu jaringan Wi-Fi atau switch router yang sama. Cukup cari IP address kamera Anda dan gunakan format URL RTSP sesuai panduan Dukungan Kamera CCTV di atas.

T: Mengapa di VLC bisa diputar, tapi di web player NVR sempat loading?
J: Pastikan video codec kamera CCTV diatur ke format H.264 (format paling kompatibel dengan seluruh web browser modern). Jika kamera diatur ke codec H.265 murni, beberapa browser lama membutuhkan transcode.

T: Bagaimana cara melihat CCTV ini dari HP di luar rumah (Internet)?
J: Cara termudah dan paling aman tanpa perlu sewa IP Publik adalah menginstall Tailscale atau ZeroTier di PC/STB NVR Anda dan di HP Anda. Anda bisa langsung mengakses dashboard NVR dari mana saja secara gratis dan terenkripsi aman!


πŸ“„ Lisensi

Didistribusikan di bawah lisensi MIT License Β© 2026 NYX NVR & jnckcode. Bebas digunakan untuk keperluan pribadi, rumah tangga, toko kelontong, kantor, hingga proyek komersial.

About

Lightweight Edge Network Video Recorder with Single Ingestion, Dynamic Two-Stage AI, and Zero-Config UX

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages