This system uses Docker containers to run DeepStack AI and process images from a watch folder, then fires a set of registered triggers to make web request calls, send MQTT events, and send Telegram messages when specified objects are detected in the images.
This project was heavily inspired by GentlePumpkin's post on ipcamtalk.com that triggers BlueIris video survelliance using DeepStack as the motion sensing system.
The following five steps are all that's required to start using AI to analyze images and then call a web URL, e.g. triggering a BlueIris camera to record.
- Install Docker
- Copy the
docker-compose.yml
,settings.json
andtriggers.json
files from the sampleConfiguration directory locally. - Edit the
docker-compose.yml
file to modify the mount point for source images and set the timezone. - Edit
triggers.json
to define the triggers you want to use. - Run
docker-compose up
from within the folder that contains yourdocker-compose.yml
file to start the system running.
Setting the timezone via the TZ
environment variable in docker-compose.yml
is important for
every thing to work smoothly. By default Docker containers are in UTC and that messes up
logic to skip existing images on restart. A list of valid timezones is available on
Wikipedia. Use any value
from the TZ database name
column.
Editing the .json files in Visual Studio Code or some other editor that understands JSON schemas is recommended: you'll get full auto-complete and documentation as you type.
Having trouble? Check the logs output from Docker for any errors the system may throw. The troubleshooting page has tips for resolving common deployment problems.
To enable the different push notifications handlers:
- Edit
settings.json
to specify specify the connection information for the service. - Edit
triggers.json
to add mqtt, Pushbullet, Pushover, or Telegram handlers.
The project wiki has complete documentation on:
- Configuring the system
- Defining triggers
- Deploying to Synology or Unraid
- Integrating with BlueIris
- Integrating with HomeAssistant
- Troubleshooting
The following tags are available in the Docker repository:
Tag name | Description |
---|---|
latest |
The latest released build. This lags slightly behind dev . |
dev |
The latest code as it is checked into the project's master branch. This may contain breaking changes that aren't documented yet. |
version-<version> |
The specific released version, e.g. version-1.5.0 . |