Nodeflux Central
Media Servers

Manajemen Server

Daftarkan, kelola, dan uji koneksi Media Server (NVR) — tambah server baru, edit konfigurasi host dan port, serta hapus server yang tidak lagi digunakan dari satu halaman terpusat.

Pengenalan

Halaman Media Servers (/media-servers/servers) adalah pusat manajemen seluruh NVR dan Media Server yang terhubung ke Lenz Dashboard. Dari halaman ini, administrator dan integrator dapat mendaftarkan server baru, memperbarui konfigurasi koneksi, menguji status kesehatan server, serta menghapus server yang tidak lagi aktif.

Setiap Media Server yang terdaftar menjadi sumber data untuk fitur lain di sistem — termasuk Recorded Streams, Playback, dan pemantauan stream aktif. Server yang tidak dapat dijangkau atau salah dikonfigurasi akan memengaruhi keseluruhan pipeline perekaman dan pemutaran ulang.

Sistem mendukung dua kategori backend: Visionaire Media (SRS-based, dikembangkan oleh Nodeflux) dan NVR generik seperti Hikvision. Pemilihan tipe server menentukan fitur apa saja yang tersedia — misalnya, backend Hikvision tidak mendukung fitur live stream melalui antarmuka Lenz.

Halaman ini memerlukan permission RBAC NVR_SERVERS. Jika menu tidak muncul, hubungi administrator sistem untuk mengatur hak akses yang sesuai.


Cara Menggunakan

Menambah Media Server Baru

Buka dialog tambah server

Di bagian atas halaman daftar server, klik tombol Tambah Server Media. Dialog formulir akan terbuka dan meminta Anda mengisi detail konfigurasi server.

Dialog Tambah Server Media: nama, URL host, tipe (srs/hikvision), port API, port playback, dan tombol Periksa Kesehatan.
Dialog Tambah Server Media: nama, URL host, tipe (srs/hikvision), port API, port playback, dan tombol Periksa Kesehatan.

Isi formulir konfigurasi

Lengkapi field berikut pada formulir:

  • Nama Server — nama deskriptif untuk identifikasi server, misalnya NVR Gedung A atau Visionaire-Lobby.
  • URL Host — alamat IP atau domain tempat server di-deploy, tanpa nomor port. Contoh: http://192.168.1.100 atau https://nvr.example.com. Alamat IP server dapat berbeda dari alamat IP dashboard.
  • Tipe — pilih tipe backend server: srs untuk Visionaire Media, atau hikvision untuk NVR Hikvision.
  • Port API (opsional) — port yang digunakan untuk komunikasi API. Jika dikosongkan, sistem menggunakan port default (9080).
  • Port Playback (opsional) — port yang digunakan untuk streaming playback. Jika dikosongkan, sistem menggunakan port default yang sama dengan Port API.

Uji koneksi server

Sebelum menyimpan, klik tombol Periksa Kesehatan untuk memverifikasi bahwa server dapat dijangkau dari jaringan. Sistem akan mencoba terhubung ke endpoint {host}:{port}/api/v1/health.

  • Server sehat dan dapat dijangkau — server siap digunakan, Anda dapat langsung membuat server.
  • Server tidak dapat dijangkau — muncul dialog konfirmasi. Anda masih dapat melanjutkan pembuatan, tetapi fitur stream dan rekaman mungkin tidak berfungsi hingga server aktif.

Simpan konfigurasi

Klik Buat Server untuk menyimpan. Server baru akan langsung muncul dalam daftar dengan status kesehatan yang dapat diperiksa kapan saja.


Mengedit Media Server

Pilih server yang ingin diedit

Pada baris server di daftar, klik ikon Edit (atau aksi Edit server media dari menu aksi). Dialog formulir edit akan terbuka dengan nilai yang sudah terisi dari konfigurasi saat ini.

Perbarui field yang diperlukan

Ubah field yang perlu diperbarui — misalnya Host URL jika server dipindahkan ke IP baru, atau Port API jika terjadi perubahan konfigurasi jaringan. Semua field mengikuti aturan yang sama dengan formulir penambahan server.

Uji ulang koneksi (direkomendasikan)

Setelah mengubah Host atau Port, disarankan untuk klik Periksa Kesehatan kembali untuk memastikan server masih dapat dijangkau dengan konfigurasi baru sebelum menyimpan perubahan.

Simpan perubahan

Klik Perbarui Server untuk menyimpan. Perubahan akan langsung berlaku untuk seluruh fitur yang menggunakan server ini.


Menghapus Media Server

Buka dialog konfirmasi hapus

Pada baris server, klik ikon Hapus atau pilih aksi Hapus server media. Dialog konfirmasi akan muncul menampilkan nama server yang akan dihapus.

Konfirmasi penghapusan

Baca pesan konfirmasi dengan seksama. Penghapusan server bersifat permanen dan tidak dapat dibatalkan. Klik Hapus untuk melanjutkan, atau Batal untuk membatalkan.

Menghapus Media Server akan menghilangkan server tersebut dari seluruh sistem. Rekaman yang sudah ada di server tidak ikut terhapus dari storage fisik, namun tidak lagi dapat diakses melalui Lenz Dashboard. Pastikan tidak ada proses rekaman aktif sebelum menghapus server.


Tipe Server yang Didukung

Visionaire Media adalah Media Server berbasis SRS (Simple Realtime Server) yang dikembangkan oleh Nodeflux. Ini adalah tipe server yang direkomendasikan untuk deployment bersama Lenz Dashboard karena mendukung seluruh fitur yang tersedia.

Konfigurasi yang diperlukan:

  • type: srs
  • api_port: port API SRS (default: 9080)
  • playback_port: port playback HLS (default: sama dengan api_port)

Fitur yang didukung:

  • Melihat daftar stream aktif yang sedang dipublish
  • Manajemen koneksi klien (kickout)
  • Recorded Streams — daftar stream dengan rekaman
  • Playback rekaman per segmen
  • Daily Playback dengan timeline 24 jam
  • Health check via /api/v1/health
  • Federation Mode (multi-instance)

NVR Hikvision adalah NVR generik dari vendor Hikvision. Tipe ini mendukung integrasi rekaman tetapi dengan keterbatasan fitur dibandingkan Visionaire Media.

Konfigurasi yang diperlukan:

  • type: hikvision
  • api_port: port API NVR Hikvision
  • playback_port: port untuk akses playback

Fitur yang didukung:

  • Recorded Streams — daftar rekaman yang tersimpan
  • Playback rekaman historis

Fitur yang tidak didukung:

  • Live stream preview melalui antarmuka Lenz (viewStreams dinonaktifkan)
  • Manajemen koneksi klien

Untuk NVR Hikvision, tombol Lihat Stream Media pada baris server tidak tersedia karena backend Hikvision tidak mendukung fitur ini melalui antarmuka Lenz.


Fitur Utama

Health Check Real-time

Uji koneksi ke server secara langsung sebelum menyimpan konfigurasi — sistem mencoba endpoint /api/v1/health dan melaporkan status dalam hitungan detik.

Deteksi Duplikasi URL

Saat menambah server baru, sistem mendeteksi apakah URL host yang dimasukkan sudah digunakan oleh server lain dan menampilkan peringatan agar tidak terjadi duplikasi konfigurasi.

Port Default Otomatis

Jika Port API dan Port Playback tidak diisi, sistem secara otomatis menggunakan nilai default (9080) sehingga integrator tidak perlu menghafal nilai port untuk deployment standar.

Status Kesehatan di Tabel

Setiap server dalam daftar menampilkan kolom Status Kesehatan yang dapat diperiksa secara on-demand — lihat server mana yang aktif dan berjalan (Aktif dan Berjalan) atau tidak tersedia saat ini.

Manajemen Multi-server

Daftarkan dan kelola beberapa Media Server sekaligus dalam satu tampilan tabel — cocok untuk deployment skala besar dengan banyak NVR di lokasi berbeda.

Federation Support

Dalam deployment multi-instance, parameter instance diteruskan ke seluruh operasi CRUD sehingga server dapat dikelola per-instance tanpa konflik data antar deployment.


API Reference

Semua endpoint memerlukan header Authorization: Bearer <Token>. Lihat Otentikasi untuk cara mendapatkan Token.


GET /api/nvr-servers

Mengambil daftar seluruh Media Server yang terdaftar di sistem.

Query Parameters:

Prop

Type

GET /api/nvr-servers
curl -X GET "${API_URL}/api/nvr-servers" \
  -H "Authorization: Bearer <Token>"

Contoh respons:

Respons GET /api/nvr-servers
{
  "ok": true,
  "data": [
    {
      "id": 1,
      "name": "NVR Gedung A",
      "host": "http://192.168.1.100",
      "type": "srs",
      "api_port": "9080",
      "playback_port": "9080",
      "created_at": "2026-01-10T08:00:00Z",
      "updated_at": "2026-04-01T12:00:00Z"
    },
    {
      "id": 2,
      "name": "NVR Parkir B",
      "host": "http://192.168.1.200",
      "type": "hikvision",
      "api_port": "8080",
      "playback_port": "8080",
      "created_at": "2026-02-15T09:00:00Z",
      "updated_at": "2026-03-20T14:30:00Z"
    }
  ]
}

Keterangan field NVRServer:

Prop

Type


POST /api/nvr-servers

Mendaftarkan Media Server baru ke sistem.

Request Body:

Prop

Type

POST /api/nvr-servers
curl -X POST "${API_URL}/api/nvr-servers" \
  -H "Authorization: Bearer <Token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "NVR Gedung A",
    "host": "http://192.168.1.100",
    "type": "srs",
    "api_port": "9080",
    "playback_port": "9080"
  }'

Contoh respons sukses:

Respons POST /api/nvr-servers
{
  "ok": true,
  "data": {
    "id": 3,
    "name": "NVR Gedung A",
    "host": "http://192.168.1.100",
    "type": "srs",
    "api_port": "9080",
    "playback_port": "9080",
    "created_at": "2026-04-30T10:00:00Z",
    "updated_at": "2026-04-30T10:00:00Z"
  }
}

PUT /api/nvr-servers/{id}

Memperbarui konfigurasi Media Server yang sudah ada.

Path Parameters:

ParameterTipeKeterangan
idnumberID numerik server yang akan diperbarui.

Request Body: Sama dengan POST — seluruh field wajib disertakan kembali.

PUT /api/nvr-servers/{id}
curl -X PUT "${API_URL}/api/nvr-servers/3" \
  -H "Authorization: Bearer <Token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "NVR Gedung A - Updated",
    "host": "http://192.168.1.105",
    "type": "srs",
    "api_port": "9080",
    "playback_port": "9080"
  }'

DELETE /api/nvr-servers/{id}

Menghapus Media Server dari sistem secara permanen.

Path Parameters:

ParameterTipeKeterangan
idnumberID numerik server yang akan dihapus.

Query Parameters:

Prop

Type

DELETE /api/nvr-servers/{id}
curl -X DELETE "${API_URL}/api/nvr-servers/3" \
  -H "Authorization: Bearer <Token>"

Respons sukses:

Respons DELETE berhasil
{
  "ok": true,
  "message": "NVR Server deleted successfully"
}

Tips & Troubleshooting


Selanjutnya

On this page