PHPackages                             nawasara/cctv - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. nawasara/cctv

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

nawasara/cctv
=============

Public CCTV monitoring for the Nawasara superapp framework — Dahua camera registry, live WebRTC/HLS view via go2rtc sidecar, health monitoring, and recording playback.

v0.1.5(3w ago)036MITPHPPHP ^8.1

Since May 14Pushed 3w agoCompare

[ Source](https://github.com/nawasara/cctv)[ Packagist](https://packagist.org/packages/nawasara/cctv)[ RSS](/packages/nawasara-cctv/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (6)Versions (7)Used By (0)

nawasara/cctv
=============

[](#nawasaracctv)

Monitoring CCTV publik untuk framework superapp Nawasara. Mendukung kamera **Dahua** via RTSP, ditampilkan ke browser lewat sidecar **go2rtc**(RTSP → WebRTC/HLS), dengan health monitoring dan kerangka playback rekaman.

Kenapa butuh sidecar
--------------------

[](#kenapa-butuh-sidecar)

Browser tidak bisa memutar RTSP secara langsung. `go2rtc` adalah service terpisah (container) yang menerima RTSP dari kamera dan mem-publish ulang sebagai WebRTC/HLS/MSE yang browser bisa konsumsi. Laravel **tidak pernah**menyentuh RTSP — ia hanya bicara ke HTTP API go2rtc.

```
Kamera Dahua  --RTSP-->  go2rtc (sidecar)  --WebRTC/HLS-->  Browser
                              ▲
                              │ HTTP API (register stream, query status)
                         Laravel (paket ini)

```

Status v0.1.0
-------------

[](#status-v010)

FiturStatusRegistry kamera + CRUD (kredensial terenkripsi)✅ siapLive view (grid + single focus) via go2rtc✅ siapHealth monitoring (TCP probe, badge online/offline)✅ siapSinkronisasi stream ke go2rtc✅ siapTabel + UI playback rekaman✅ siap (UI)**Engine perekaman** (record RTSP ke disk)⏳ menyusul — butuh keputusan retention/storageUI Recordings sudah lengkap; begitu engine perekaman diaktifkan di versi berikutnya, halaman itu langsung berfungsi tanpa perubahan.

Setup
-----

[](#setup)

### 1. Sidecar go2rtc (docker-compose)

[](#1-sidecar-go2rtc-docker-compose)

Sudah ditambahkan di `docker-compose.dev.yml` sebagai service `go2rtc`(image `alexxit/go2rtc`), berada di network `nawasara-dev` yang sama dengan app. Container menjangkau kamera di LAN lewat routing Docker host — tidak perlu `network_mode` khusus selama host bisa me-route ke subnet kamera.

Reverse-proxy `/go2rtc/` → `go2rtc:1984` sudah disiapkan di `docker/nginx.conf` (pakai `resolver` + variabel `proxy_pass` supaya nginx tidak gagal boot kalau sidecar belum up).

### 2. Environment

[](#2-environment)

```
CCTV_GO2RTC_API_URL=http://go2rtc:1984      # internal, dipakai Laravel
CCTV_GO2RTC_PUBLIC_URL=/go2rtc              # dipakai browser (via proxy)
CCTV_GO2RTC_MODE=webrtc
```

### 3. Migrasi + permission

[](#3-migrasi--permission)

```
php artisan migrate
php artisan db:seed --class="Nawasara\\Cctv\\Database\\Seeders\\PermissionSeeder"
```

Keamanan kredensial kamera
--------------------------

[](#keamanan-kredensial-kamera)

Username/password kamera disimpan **terenkripsi at-rest** (cast `encrypted`di model `Camera`), disembunyikan dari serialisasi (`$hidden`), dan tidak pernah ditulis ke log. URL RTSP lengkap (dengan kredensial) hanya dibangun sesaat untuk dikirim ke go2rtc, tidak pernah ditampilkan ke user.

> ⚠️ Saat menambah kamera, masukkan kredensial lewat form CRUD — **jangan**hardcode di config/repo.

Console commands
----------------

[](#console-commands)

CommandFungsiJadwal`cctv:probe`TCP-probe semua kamera aktif, update status online/offlinetiap 5 menit`cctv:sync-go2rtc`Daftarkan ulang semua kamera ke go2rtc (jaring pengaman bila sidecar restart)tiap jamPermissions
-----------

[](#permissions)

PermissionUntuk`cctv.camera.view`Lihat live view + daftar kamera`cctv.camera.create`Tambah kamera`cctv.camera.update`Edit kamera`cctv.camera.delete`Hapus kamera`cctv.recording.view`Lihat + putar rekaman`cctv.recording.delete`Hapus rekaman

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance95

Actively maintained with recent releases

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

6

Last Release

22d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/16914951?v=4)[Pringgo J. Saputro](/maintainers/pringgojs)[@pringgojs](https://github.com/pringgojs)

![](https://www.gravatar.com/avatar/edcf770bde3babcc9fa554e305e361b8614c1e505470e75842de75ea3e502548?d=identicon)[nawasara](/maintainers/nawasara)

---

Top Contributors

[![pringgojs](https://avatars.githubusercontent.com/u/16914951?v=4)](https://github.com/pringgojs "pringgojs (14 commits)")

---

Tags

laravelWebRTCrtspCCTVNawasaradahuago2rtcvideo-monitoring

### Embed Badge

![Health badge](/badges/nawasara-cctv/health.svg)

```
[![Health](https://phpackages.com/badges/nawasara-cctv/health.svg)](https://phpackages.com/packages/nawasara-cctv)
```

###  Alternatives

[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.7k](/packages/nasirkhan-laravel-starter)[venturedrake/laravel-crm

A free open source CRM built as a package for laravel projects

39910.0k](/packages/venturedrake-laravel-crm)[livewire/flux

The official UI component library for Livewire.

9466.8M119](/packages/livewire-flux)[psalm/plugin-laravel

Psalm plugin for Laravel

3325.1M337](/packages/psalm-plugin-laravel)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.2k](/packages/tomshaw-electricgrid)[fleetbase/core-api

Core Framework and Resources for Fleetbase API

1232.2k16](/packages/fleetbase-core-api)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
