Skip to content

Camera Configuration

Cameras can be initially defined in config.yaml. Upon the first server boot, RUSEON Core migrates cameras and tags from config.yaml into embedded BadgerDB and purges them from the YAML file (MigrateFromConfig), allowing full dynamic management via REST API without server restarts.

Camera Parameters

FieldTypeDefaultDescription
idstringRequiredUnique identifier (e.g. cam-01). Used in API paths and archive directories.
urlstringRequiredRTSP stream endpoint (e.g. rtsp://user:pass@192.168.1.100:554/stream1).
recordboolfalseEnables continuous fMP4 archive recording on disk.
retention_daysint0Per-camera archive retention period (days). 0 inherits server.record_retention_days.
tags[]string[]List of tag IDs assigned to this camera.
folder_idstring""Folder ID for logical hierarchy grouping.
commentstring""Human-readable location description or notes.
sim_phonestring""Cellular phone number for 4G/LTE edge cameras.
sim_iccidstring""SIM card ICCID identifier.
lazy_hlsboolfalseOn-demand HLS muxing. Shuts down after 60s inactivity; wakes up with 4s prebuffer on request.
transportstring"tcp"RTSP transport protocol: "tcp", "udp", or "auto".
token_authboolfalseEnforces short-lived 60-second stream tokens on HLS and WebRTC endpoints.
traffic_limituint640Monthly bandwidth quota in bytes (0 = unlimited).
traffic_useduint640Current monthly accumulated bandwidth in bytes.
disabledboolfalseAdministratively stops the RTSP client and video ingestion.
disable_reasonstring""Reason: "technical", "requested", or "payment".

Example config.yaml Setup

yaml
global_tags:
  - id: "outdoor"
    name: "Outdoor / Perimeter"
    color: "#dc3545"
  - id: "warehouse"
    name: "Warehouse Area"
    color: "#007bff"

cameras:
  - id: "cam-gate"
    url: "rtsp://admin:pass@192.168.1.50:554/ch0"
    record: true
    retention_days: 30
    tags: ["outdoor"]
    folder_id: "main-site"
    comment: "Main entrance barrier gate"
    transport: "tcp"
    lazy_hls: false
    token_auth: true

  - id: "cam-forklift-01"
    url: "rtsp://10.200.1.15:554/live"
    record: true
    retention_days: 7
    tags: ["warehouse"]
    comment: "Mobile Forklift 4G LTE"
    sim_phone: "+79998887766"
    sim_iccid: "8970102000000000000"
    traffic_limit: 107374182400 # 100 GB limit
    lazy_hls: true
    transport: "udp"

Dynamic State

Once RUSEON Core has booted and migrated cameras to BadgerDB, use the REST API or CLI to manage cameras in real time without restarting the daemon.

Released under the MIT License.