Configuring storage - norkator/open-intelligence GitHub Wiki

This article goes trough fairly complicated process for configuring camera folders and mounting drives to gain access to /output folder where all your image data relies. Article expects that your storage is Windows machine with samba cifs share.

This article is written for Docker use case where whole application is running in Docker host, as example Ubuntu Server 20.04.

Mounting drives and configuring docker-compose.yml

Mount camera folders

This one is most painful to do. Open-Intelligence is limited to have only one root folder which under you can find folders, one for each camera like camera_1, camera_2 and so on. Open docker-compose.yml -> open-intelligence-app-py section and make configuration as follows:

    volumes:
      - E:/CAMERA_SOURCE:/input_test

where E:/CAMERA_SOURCE is REAL path where contents are stored at and /input_test is where it's mapped inside container.

Then open config.ini and make your configuration as follows:

[camera]
cameras_root_path=/input_test
camera_names=Camera1,Camera2,
camera_folders=/camera_1/,/camera_2/
  • cameras_root_path is one which got mapped in container.
  • camera_folders specified separating with comma are actual separate camera folder names.

Yes.. this is currently complicated to understand but once you get it working it makes sense.

Mount storage for /output

  • Output is main folder for Open-Intelligence to put all image data.
  • Recommended way is to have dedicated storage space somewhere which is possibly mirrored with RAID.

Docker host machine mount setup

  1. sudo mkdir /mnt/oi-output-mount
  2. sudo mount -t cifs -o user=<your-user-account> //<storage-server-address>/output /mnt/oi-output-mount
  3. open docker-compose.yml and in open-intelligence-front section -> make sure you have following:
    volumes:
      - /mnt/oi-output-mount/:/usr/src/output/

Getting output mount work with processing python nodes is bit more complicated. This instruction is for Linux host.

Edit your config.ini and make output_folder variable something like this:

[app]
output_folder=/output/

then open docker-compose.yml and edit each of -py section volume configuration as follows:

    volumes:
      - ./:/app
      - /mnt/oi-output-mount:/output

This will map earlier added storage mount /mnt/oi-output-mount into now at config.ini configured /output folder. My case is more complicated because Windows machine hosts cifs mount which is mounted to Linux host running docker containers which then mount this mount. It's mountception.