# Shared pipeline configuration for the oko clip system. # Each node maps binary -> flags (the same flags as the binaries' -help). # The pipeline routes: runCam -> mofin -> terp -> coordinator (Matrix storage). # Nodes that listen must be started backend-first. pipeline: runCam: binary: "runCam" flags: mofin: "localhost:8083" min-cam: 0 max-cam: 10 clip-duration: "10s" rescan-interval: "10s" user: "oko" camera-id: "front" video-fps: 5 # processed clip FPS; 0 = device native rate video-width: 0 # capture width in px (0 = device default) video-height: 0 # capture height in px (0 = device default) passphrase: "change-me" # empty disables clip encryption auth-token: "change-me" # shared with every node (or OKO_AUTH_TOKEN) pbkdf2-iters: 600000 # lower = less CPU on weak devices (e.g. 50000 on a Pi Zero W) mofin: binary: "mofin" flags: listen: ":8083" terp: "localhost:8081" threshold: 30 # pixel-value sensitivity 0-255 (drop no-motion clips) passphrase: "change-me" auth-token: "change-me" pbkdf2-iters: 600000 terp: binary: "terp" flags: listen: ":8081" sendoff: "localhost:8082" classifiers: "classifiers/*.xml" motion-percent: 0 # 0 = forward all motion clips to coordinator passphrase: "change-me" auth-token: "change-me" pbkdf2-iters: 600000 coordinator: binary: "coordinator" flags: listen: ":8082" matrix-homeserver: "https://matrix.example.org" matrix-user: "@okobot:matrix.example.org" matrix-token-file: "matrix.token" # or OKO_MATRIX_TOKEN clips-room: "!yourclips:example.org" detections-room: "!yourdetections:example.org" view-room: "!yourview:example.org" # clips with a one-line caption only, no JSON passphrase: "change-me" auth-token: "change-me" pbkdf2-iters: 600000