TypeError: s.getConfigWithBranding is not a function
Generally the issue is that the Node.js version on the machine is too old. The new requirement is version 16.
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)
Updated Dev branch and suddenly got this error
You will need to run the v2 to v3 update one time. This script will restart Shinobi when it is complete. This will also update Node.js to version 16.
sh UPDATE-v2-to-v3.sh
Updating Node.js for Shinobi
Node.js version 16 is the currently recommended version. You may follow this article to update.
https://hub.shinobi.video/articles/view/JX1o76s8R8Lm56D
Updating PM2
1. Updating PM2 daemon.
npm i pm2@latest -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.
sh UPDATE.sh
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.
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.
Related
- https://www.reddit.com/r/ShinobiCCTV/comments/iki42l/cannot_get_to_web_ui_after_latest_update/
- https://www.reddit.com/r/ShinobiCCTV/comments/imhqx0/issues_since_recent_update/
- https://hub.shinobi.video/articles/view/LTVqL3I8f8kIzsX
- https://gitlab.com/Shinobi-Systems/Shinobi/-/tree/dev/Docker
- https://hub.docker.com/r/migoller/shinobidocker/tags
- https://github.com/nvm-sh/nvm/blob/master/README.md#about