You might have an error like the one below. This article will help you fix that.

TypeError: s.getConfigWithBranding is not a function
    at /Users/user/Shinobi/libs/webServerPaths.js:109:76
    at Layer.handle [as handle_request] (/Users/user/Shinobi/node_modules/express/lib/router/layer.js:95:5)
    at next (/Users/user/Shinobi/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/Users/user/Shinobi/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/Users/user/Shinobi/node_modules/express/lib/router/layer.js:95:5)
    at /Users/user/Shinobi/node_modules/express/lib/router/index.js:281:22
    at Function.process_params (/Users/user/Shinobi/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/user/Shinobi/node_modules/express/lib/router/index.js:275:10)
    at /Users/user/Shinobi/libs/webServerPaths.js:74:9
    at Layer.handle [as handle_request] (/Users/user/Shinobi/node_modules/express/lib/router/layer.js:95:5)

Updating Node.js for Shinobi

Node.js version 16 is the currently recommended version. You may follow this article to update.

Updating PM2

1. Updating PM2 daemon.

npm i [email protected] -g

2. Run the following or Reboot the system to restart all scripts under the new version.

pm2 update

Updating Shinobi

1. Navigate to the Shinobi directory. Default is /home/Shinobi.

cd /home/Shinobi

2. Run the Update script.


3. Restart Shinobi

pm2 restart all

You may need to update manually if the script does not exist. In which case please follow this article

PM2 still uses the wrong Node version

Try this inside the Shinobi folder

npm install forever -g && pm2 kill && pm2 unstartup && pm2 save && forever start camera.js

Still not working?

Check the System logs, here is how

Sorry Docker Fans

If you are using one of the old official images you have 2 options.

  1. Force your docker image to remain on the "latest" tags build from last year. Build ID is 707bbb26-edf7-4ad3-811b-4419f18a9f96.
    • This method does not build with the source. The image will download Shinobi source upon container start with git.
  2. Update to the new official Docker image that follows the "proper" methodology.
    • This method is built with the original source of Shinobi. Every commit that is pushed to the repository is pushed to DockerHub as a new image.

I have been told #2 is the proper way, however I don't know which is correct as I have seen both methods used in many scenarios. Going forward I will use the "proper" way (#2) as the official vending method to closer adhere to installation persistence practices.

If you are using an image from MiGoller's stack I believe all that you need to do is update your image. Then restart the container or recreate it.

See all the current tags available in the MiGoller/shinobidocker repository.

These images map the important files to the host so that they may be harnessed by any Shinobi Docker image fairly easily. With that said you should create a backup of these mapped locations before making any changes.

Learn More about the new Docker Image.