🚀 Quick Start

Get OKITO running in 5 minutes. Installation, first camera, basic configuration.

📋 Requirements

🐧

OS

Ubuntu 20.04/22.04 LTS
Debian 11/12
CentOS/RHEL 8/9

🐍

Python

Python 3.12+
pip, venv

🎮

GPU

NVIDIA GPU 4+ GB VRAM
CUDA 11.8+
cuDNN 8.5+

💾

Resources

RAM: 8+ GB
Disk: 50+ GB for archive
Up to 10 cameras

📦 Installation

  1. Extract archive

    Extract the downloaded archive to a convenient directory:

    # Linux
    tar -xzf okito-linux.tar.gz
    cd okito
  2. Install dependencies

    Create a virtual environment and install dependencies:

    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
  3. Run

    Start the server:

    python main.py

    Interface will be available at: http://localhost:8787

⚙️ Services Setup

Redis and Celery are required for notifications and background tasks.

🗄️

Redis

Task queue storage
Port: 6379

Celery

Notification processing
Queue: hyperdvr_alerts

1. Install Redis

# Ubuntu/Debian
sudo apt install redis-server
sudo systemctl enable redis-server
sudo systemctl start redis-server

2. Create systemd services

Create file /etc/systemd/system/hyperdvr-celery.service:

[Unit]
Description=HyperDVR Celery Worker
After=network.target redis-server.service
Requires=redis-server.service

[Service]
Type=simple
User=root
WorkingDirectory=/opt/web

Environment=PYTHONUNBUFFERED=1
Environment=CELERY_BROKER_URL=redis://127.0.0.1:6379/0
Environment=CELERY_RESULT_BACKEND=redis://127.0.0.1:6379/1
Environment=CELERY_TASK_QUEUE=hyperdvr_alerts
Environment=HYPERDVR_ALERT_QUEUE=celery
Environment=HYPERDVR_ALERT_QUEUE_ENABLED=1

ExecStart=/root/miniconda3/envs/yolo/bin/celery \
-A hyperdvr.celery_support:celery_app \
worker -Q hyperdvr_alerts -l info --concurrency=16

StandardOutput=append:/var/log/hyperdvr/celery.log
StandardError=append:/var/log/hyperdvr/celery.log
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

3. Start services

# Create log directory
sudo mkdir -p /var/log/hyperdvr

# Enable and start services
sudo systemctl daemon-reload
sudo systemctl enable redis-server hyperdvr-celery
sudo systemctl start redis-server hyperdvr-celery

# Check status
sudo systemctl status redis-server
sudo systemctl status hyperdvr-celery
Important: Without Redis and Celery, notifications will not work. Core functionality (detection, archive) works without them.

📹 First Camera

  1. Open interface

    Navigate to http://localhost:8787

  2. Add camera

    Click + ADD NEW SOURCE in the top menu

  3. Configure source

    # RTSP camera
    rtsp://192.168.1.100:554/stream

    # Local camera
    0
  4. Select detection classes

    Go to Classes tab and enable required classes:

    • ✓ person — human
    • ✓ cell phone — phone
    • ✓ smoking — smoking
  5. Save

    Click SAVE & APPLY

For testing, use a local webcam (source 0) or a video file.

⚙️ Basic Configuration

All settings are configurable via the web interface. Values shown are defaults.

🎯

Model

Detection Model — default model
Device: cuda:0 or cpu

📐

Size

ImgSize: 1536
Larger = more accurate but slower

🎚️

Sensitivity

High — minimum false positives
Medium — balanced
Low — maximum detections

📹

Archive

Path: ./archive
Segments: 2 sec
FPS: 20

✅ Verification

  1. Open Dashboard

    A camera card with preview should appear on the main page

  2. Check detection

    Bounding boxes with classes should appear in the camera view

  3. Check archive

    Click HISTORY — there should be recording segments

  4. Check API

    curl http://localhost:8787/api/stats

📚 Next Steps