# Running Shinobi CCTV in Docker on Ubuntu Server

## What is Shinobi?

> Shinobi is Open Source, written in Node.js, and real easy to use. It is the future of CCTV and NVR for developers and end-users alike. It is catered to by professionals and most importantly by the one who created it. -https://shinobi.video/

## Installing Docker

1. Log into the Linux based device
2. Run the following commands in the terminal
   # install prerequisites
   sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg-agent -y
   # add docker gpg key
   curl -fsSL https://download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release)/gpg | sudo apt-key add -
   # add docker software repository
   sudo add-apt-repository "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release) $(lsb_release -cs) stable"
   # install docker
   sudo apt install docker-ce docker-compose containerd.io -y
   # enable and start docker service
   sudo systemctl enable docker && sudo systemctl start docker
   # add the current user to the docker group
   sudo usermod -aG docker $USER
   # reauthenticate for the new group membership to take effect
   su - $USER

## Running the Shinobi Container

1. Now that Docker is installed, run the following commands to setup the Shinobi Docker container and run it
   # create working directories
   sudo mkdir /home/$USER/docker/shinobi/config -p && sudo mkdir /home/$USER/docker/shinobi/data && sudo mkdir /home/$USER/docker/shinobi/videos
   # run the Run Shinobi docker container
   docker run -d -p 8080:8080 -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro -v /home/$USER/docker/shinobi/config:/config -v /home/$USER/docker/shinobi/data:/var/lib/mysql -v /home/$USER/docker/shinobi/videos:/opt/shinobi/videos -v /dev/shm/shinobiDockerTemp:/dev/shm/streams migoller/shinobidocker
2. Open a web browser and navigate to http://DNSorIP:8080/super
3. Login with the username admin@shinobi.video and password admin
4. Select Preferences from the top navigation menu
5. Change the admin user email address and enter and confirm a new password
6. Click Save at the top of the page
7. Welcome to Shinobi

Documentation: https://registry.hub.docker.com/r/migoller/shinobidocker/