# .env — SECRETS & deployment-specific values ONLY (never commit real credentials). # Canonical config lives in config.yaml (paths, modes, counting knobs, batch, camera). # Zone polygons live in zones.json. Tracker hyperparams live in cfg/tracker.yaml. # # Legacy keys (MODEL_PATH, MODEL_MODE, BATCH_MODE_FILE, *_PATH overrides) are # still honoured when set, but deprecated — prefer config.yaml. # --- Output paths (override config.yaml output.* when set; legacy) --- OUTPUT_DIR=/opt/jetson-counter DB_PATH=/opt/jetson-counter/jetson_counter.db STATE_FILE=/opt/jetson-counter/current_batch.json LIVE_STREAM_FRAME_PATH=/dev/shm/jetson-counter/live_frame.jpg # --- Identity / batch day --- CAMERA_NAME=CC1 OBJECT_LABEL=karung-pakan DAILY_CUTOFF_TIME=06:00 BATCH_MERGE_THRESHOLD_SECONDS=300 # --- Dashboard (canonical home for these; read from env, NOT config.yaml) --- SECRET_KEY=change-me-in-production DASHBOARD_HOST=0.0.0.0 DASHBOARD_PORT=5000 OFFICE_PORT=5721 FLASK_DEBUG=false SITE_NAME=LIVE # --- Stream (canonical home; read from env, NOT config.yaml) --- RTSP_URL=rtsp://user:pass@192.168.192.209:8554/camera_stream_640 # --- Batch clip download (motionEye; dashboard /api/batch-clip only) --- MOTIONEYE_URL=http://192.168.192.253:8765 # motionEye base URL for batch clip download; empty disables MOTIONEYE_CAMERA_ID=2 # motionEye camera id (1 = default camera) MOTIONEYE_CLIP_PAD=3 # seconds trimmed before/after the batch window (float) MOTIONEYE_OSD_ALIGN=1 # 1 = OCR-correct OSD clock drift at cut points, 0 = filename-based offsets only # --- Deprecated: model pipeline mode now lives in config.yaml models.active_mode. # Dashboard switches persist there (atomic write, comments preserved) and apply # on next `karung-counter` restart. Only set this to temporarily override. # MODEL_MODE=C