How tmtygnz/corvette-core works
Corvette Core is a residential/small-business network video recorder. Its principal workflow loads configured camera records, starts RTSP recording and AI-frame processing, tracks generated segments in SQLite, and exposes camera and playback APIs. The graph also preserves the documented AI-detection capability. Source excerpts support the startup wiring and recording flow; camera HTTP routing and some playback cleanup behavior are visible only at subsystem level, so uncertain internal links are omitted.
Main entry points: main.go Application startup · camera_service.go Camera service · recording_service.go Recording service · handler.go Camera runner
Components 21
Runtime and API
- Application startup
cmd/main.go - Configuration
internal/config/config_io.go - HTTP server
internal/platform/handler/http.go - Camera API
internal/platform/handler/handlers/camera_http.go - Playback API
internal/platform/handler/handlers/playback_http.go
Camera operation
- Camera service
internal/services/camera_service.go - Camera vendor mapping
internal/vendors/vendor.go - RTSP streamer mapping
internal/streamer/streamer.go - Camera registry
internal/camera/registry.go - Camera runner
internal/camera/handler.go - RTSP recording and frames
internal/streamer/rtsp.go
Recording and playback
- Segment watchdog
internal/playback/watchdog.go - Playback cleanup
internal/playback/cleanup.go - Recording service
internal/services/recording_service.go
Persistence and models
- Camera domain
internal/domains/camera.go - Recording domain
internal/domains/recording.go - SQLite queries
internal/database/recording.sql.go - SQLite provider
internal/platform/provider/sqlite.go
AI detection
- Detection model
internal/object_detection/model.go - Inference handler
internal/object_detection/handler.go
Other components
- NVR operator
Connections 28
- NVR operator → Camera API: manages cameras
README.md - NVR operator → Playback API: requests playback
README.md - Application startup → Configuration: loads
cmd/main.go - Application startup → SQLite provider: creates
cmd/main.go - Application startup → Camera service: creates
cmd/main.go - Application startup → Recording service: creates
cmd/main.go - Application startup → Playback cleanup: runs cleanup
cmd/main.go - Application startup → Detection model: creates
cmd/main.go - Application startup → Camera vendor mapping: loads camera vendors
cmd/main.go - Application startup → RTSP streamer mapping: creates streamers
cmd/main.go - Application startup → Segment watchdog: starts watcher
cmd/main.go - Application startup → Camera registry: creates and starts
cmd/main.go - Application startup → HTTP server: starts
cmd/main.go - Application startup → Camera API: registers routes
cmd/main.go - Application startup → Playback API: registers routes
cmd/main.go - Camera vendor mapping → Camera service: lists cameras
internal/vendors/vendor.go - Camera registry → Camera runner: runs registered cameras
internal/camera/handler.go - Camera runner → RTSP recording and frames: starts recording and frames
internal/camera/handler.go - Camera runner → Inference handler: passes frames
internal/camera/handler.go - Camera runner → Camera service: updates status
internal/camera/handler.go - RTSP recording and frames → Segment watchdog: writes video segments
- Segment watchdog → Recording service: creates and updates metadata
internal/playback/watchdog.go - Playback cleanup → Recording service: cleans metadata
- Recording service → SQLite queries: queries recordings
internal/services/recording_service.go - Camera service → SQLite queries: queries cameras
internal/services/camera_service.go - Recording service → Recording domain: maps records
internal/services/recording_service.go - Camera service → Camera domain: maps cameras
internal/services/camera_service.go - Inference handler → Detection model: runs inference
internal/object_detection/handler.go