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.
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.
1. Navigate to the Shinobi directory. Default is /home/Shinobi.
2. Run the Update script.
3. Restart Shinobi
pm2 restart all
You may need to update manually if the UPDATE.sh script does not exist. In which case please follow this article https://hub.shinobi.video/articles/view/LTVqL3I8f8kIzsX
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 https://hub.shinobi.video/articles/view/bp4CWlGcXNHHHAL
Sorry Docker Fans
If you are using one of the old official images you have 2 options.
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.
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.
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.