diff --git a/README.md b/README.md index 5ef52e7..6050c69 100644 --- a/README.md +++ b/README.md @@ -32,4 +32,10 @@ https://github.com/StarWhiz/docker_deployment_notes/tree/master/seafile https://github.com/StarWhiz/docker_deployment_notes/tree/master/wordpress #### Rocket.chat -https://github.com/StarWhiz/docker_deployment_notes/tree/master/rocketchat \ No newline at end of file +https://github.com/StarWhiz/docker_deployment_notes/tree/master/rocketchat + +#### Zoneminder +https://github.com/StarWhiz/docker_deployment_notes/tree/master/zoneminder + +#### ShinobiCCTV +https://github.com/StarWhiz/docker_deployment_notes/tree/master/shinobi \ No newline at end of file diff --git a/shinobi/README.md b/shinobi/README.md new file mode 100644 index 0000000..442f95e --- /dev/null +++ b/shinobi/README.md @@ -0,0 +1,145 @@ +# WIP +Not finished yet. Docker-compose was generated by the follow script below. You should install shinobi via the script below. Not the docker-compose that was shown further down. + +# ShinobiInstall.sh +``` +#!/bin/bash +if ! [ -x "$(command -v docker)" ]; then + echo "You are missing Docker" + echo "docker not found!" + echo "Get it here : https://docs.docker.com/engine/install/" + exit 1 +else + docker -v +fi +if ! [ -x "$(command -v docker-compose)" ]; then + echo "You are missing Docker Compose" + echo "docker-compose not found!" + echo "Get it here : https://docs.docker.com/compose/install/" + exit 1 +else + docker-compose -v +fi + +PLUGIN_LIST='' +PLUGIN_YMLS=(); + +SSL_TOGGLE="$(echo "$1" | awk '{print tolower($0)}')" +if [ "$SSL_TOGGLE" = "true" ]; then + SSL_TOGGLE='true' +else + SSL_TOGGLE='false' +fi + +echo "Shinobi - Do you want to Install Object Detection? (TensorFlow.js)" +echo "(y)es or (N)o" +read -r TENSORFLOW_PLUGIN_DOCKER_ADDON_AGREE +TENSORFLOW_PLUGIN_DOCKER_ADDON_AGREE="$(echo "$TENSORFLOW_PLUGIN_DOCKER_ADDON_AGREE" | awk '{print tolower($0)}')" +if [ "$TENSORFLOW_PLUGIN_DOCKER_ADDON_AGREE" = "y" ]; then + TENSORFLOW_PLUGIN_KEY=$(head -c 1024 < /dev/urandom | sha256sum | awk '{print substr($1,1,29)}') + PLUGIN_YMLS+=('"Tensorflow":"'$TENSORFLOW_PLUGIN_KEY'"') + PLUGIN_LIST+=$(cat <<-END + + shinobiplugintensorflow: + image: shinobisystems/shinobi-tensorflow:latest + container_name: shinobi-tensorflow + environment: + - PLUGIN_KEY=$TENSORFLOW_PLUGIN_KEY + - PLUGIN_HOST=Shinobi + volumes: + - $HOME/Shinobi/docker-plugins/tensorflow:/config + restart: unless-stopped +END + ) +fi + +# Join Plugin Keys +PLUGIN_YMLS=$(printf ",%s" "${PLUGIN_YMLS[@]}") +PLUGIN_YMLS=${PLUGIN_YMLS:1} +PLUGIN_YMLS="{$PLUGIN_YMLS}" +cat > docker-compose.yml <<- EOM +version: "3" +services: + shinobi: + image: shinobisystems/shinobi:dev + container_name: Shinobi + environment: + - PLUGIN_KEYS=$PLUGIN_YMLS +# - SSL_ENABLED=$SSL_TOGGLE + volumes: + - ./config:/config + - ./customAutoLoad:/home/Shinobi/libs/customAutoLoad + - ./database:/var/lib/mysql + - ./videos:/home/Shinobi/videos + - ./plugins:/home/Shinobi/plugins + - /dev/shm/Shinobi/streams:/dev/shm/streams + - /etc/localtime:/etc/localtime:ro +# ports: +# - 8080:8080 + restart: unless-stopped + +networks: + default: + external: + name: caddy_net +$PLUGIN_LIST +EOM +cat docker-compose.yml +docker-compose up -d +# rm docker-compose.yml +``` + +# Minimum File Structure +``` +/home/ +└── ~/ + └── docker/ + └── shinobi/ + ├── docker-compose.yml +``` + +# Caddyfile +``` +shinobi.yourdomain.com { + reverse_proxy shinobi:8080 +} +``` + +# docker-compose.yml + +``` +version: "3" +services: + shinobi: + image: shinobisystems/shinobi:dev + container_name: Shinobi + environment: +# - PLUGIN_KEYS={"Tensorflow":"KEYGENERATEDBY SCRIPT!!!!"} +# - SSL_ENABLED=false + volumes: + - ./config:/config + - ./customAutoLoad:/home/Shinobi/libs/customAutoLoad + - ./database:/var/lib/mysql + - ./videos:/home/Shinobi/videos + - ./plugins:/home/Shinobi/plugins + - /dev/shm/Shinobi/streams:/dev/shm/streams + - /etc/localtime:/etc/localtime:ro +# ports: +# - 8080:8080 + restart: unless-stopped + + shinobiplugintensorflow: + image: shinobisystems/shinobi-tensorflow:latest + container_name: shinobi-tensorflow + environment: +# - PLUGIN_KEY=KEYGENERATEDBY SCRIPT!!!! + - PLUGIN_HOST=Shinobi + volumes: + - /home/taidao/Shinobi/docker-plugins/tensorflow:/config + restart: unless-stopped + +networks: + default: + external: + name: caddy_net +``` \ No newline at end of file