2 changed files with 152 additions and 1 deletions
@ -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 |
||||||
|
``` |
||||||
Loading…
Reference in new issue