Watch this 3-minute demo to see how NEPI connects sensors, runs AI at the edge, and gets you from install to dashboard in minutes.
We would love for you to try NEPI. It is free, and the tutorials below will get you running in minutes. NEPI runs as a container, which means it installs on top of your existing system without replacing anything on your device.
Not sure which path to choose? Here is a quick guide:
Pull the NEPI container and run it in seconds. Nothing is installed on your system. The fastest way to see NEPI in action.
Automated setup script. Installs Docker, NEPI management tools, and shortcuts for you. No Linux expertise needed.
Full OS integration for permanent production deployments. Manages network, SSH, and system services at the OS level.
This tutorial will walk you through setting up, configuring, and running a NEPI Docker Lite Installation on a supported device.
SUPPORTED DEVICES: Ubuntu PC, NVIDIA Jetson
NEPI Docker Lite Installations are recommended for PC-based installations, trial edge-compute processor installations, and NEPI Software development. With fully-automated NEPI Docker setup processes, it is also recommended for non-experienced Linux users.
After testing with the Lite installation, you can upgrade your system to a Full installation for production deployments with support for both local and remote real-time management of operating system services through User Interface and API controls. See the NEPI Docker Full Setup instructions.
This step will set up NEPI Docker required user accounts on your device. Log into a user account on the device with 'Administrator' privileges, or 'nepihost' if it exists.
Open a Terminal window by right-clicking on the desktop and selecting the "Open in Terminal" option.
Make sure your system has internet access by running the following command:
ping -c 1 google.comUpdate the Git application:
sudo apt update && sudo apt install -y gitClone the NEPI Setup repo:
cd /home/${USER}
git clone https://github.com/nepi-engine/nepi_setup.gitRun the NEPI Docker Lite setup script:
cd /home/${USER}/nepi_setup/scriptsThen, if prompted, enter y or yes:
source ./docker_lite_setup.shPower cycle your system when complete.
The Docker Lite setup script will run through the following steps: NEPI Docker Lite Environment Setup, NEPI Docker Lite Config Setup, and NEPI Docker Init Setup.
This step will configure the NEPI Docker installation using the default settings. You can change settings later in the 'NEPI Docker Customization' section.
This step will configure the NEPI Docker installation using the default settings. You can change settings later in the 'NEPI Docker Customization' section.
This process will create (if not already created) and set up the following NEPI folders:
/mnt/nepi_storage, along with several user subfolders. This is where NEPI processes store user files such as: data (saved data), ai_models (AI models), nepi_images (import/export Docker images), user_cfg (user saved configurations)./mnt/nepi_docker. This is where NEPI Docker Images are stored./mnt/nepi_config, along with several config subfolders.This section will initialize and test your NEPI Docker installation. Log back into nepihost using password 'nepi'.
Check for internet connection:
ping -c 1 google.comRun the NEPI Docker Storage Initialization script (sudo password is now 'nepi'):
source /home/nepihost/nepi_setup/scripts/docker_storage_init.shRun the NEPI Docker Image Initialization script (sudo password is now 'nepi'):
source /home/nepihost/nepi_setup/scripts/docker_image_init.shRun the NEPI Docker Import command (sudo password is now 'nepi'):
nepiimportAfter the import completes, you can print the current installed NEPI Docker Image by typing:
dimgnepistart = Start the NEPI docker container.
nepidev = Start the NEPI docker container in a dev mode with no processes running, and an OPTIONAL_RUN_COMMAND.
nepistop = Stop the running NEPI docker container.
nepilogin = Log into the running NEPI container as user 'nepi'.
nepiloginroot = Log into the running NEPI container as user 'root'.
nepiswitch = Switch to Inactive NEPI container on next boot or restart.
nepicommit = Commit the running NEPI container with provided COMMIT_DESCRIPTION, restarts nepi using new commit unless RESTART=0 is passed.
nepiinit = Reset, clear, and import new NEPI Image.
nepiimport = Import a NEPI image .tar file. Optional: Enter a file name or full file path.
nepiexport = Export the running NEPI container to a .tar file. Enter a file name or full file path.
nepiload = Import a NEPI image .archive.tar file. Optional: Enter a file name or full file path.
nepisave = Save the active NEPI Image with all commits to a .archive.tar file. Enter a file name or full file path.
nepitag = Update the Software Description field in the active NEPI container.
nepienable = Enable NEPI Docker service on next boot.
nepidisable = Disable NEPI Docker service on next boot.
nepirestart = Restart NEPI docker service.
nepistatus = Show the systemctl status for nepi_docker service.
nepilogs = Show live NEPI Docker service journal file.
nepibld = Build or Update the NEPI Docker File System from source code in ${NEPI_BUILD_REPO_FOLDER}.
nepiupdate = Run NEPI Docker bash, folders, files, and config update processes.
nepicreate = Export and Import a new NEPI Docker Image from running container.
nepiprint = Print current NEPI DOCKER and SYSTEM configuration settings.
# Type nepihelp to see all NEPI Software command line shortcutsThis section will start and test your NEPI Docker solution. First, refresh your .bashrc file:
source ~/.bashrcStart your NEPI container running:
nepistartThe start script will let you know if the installed NEPI Image started successfully.
Open Chromium web browser. Check that the NEPI Resident User Interface (RUI) is running by opening the Chromium browser and entering the following in the search bar:
localhost:5003This will take you to the NEPI RUI dashboard. Once the NEPI core software system is running, you should see a blinking green indicator and messages.
If everything is working, you can enable the NEPI Docker Service which will automatically start the NEPI container and software on boot:
nepienable # You can disable the NEPI Docker Service with 'nepidisable'Power cycle your system when complete. Log back into nepihost using password 'nepi'. Check that your NEPI container is running after reboot:
dps
#If your container is not running, try to debug NEPI Docker Service issues with the following commands:
nepirestart
nepistatus
nepilogsWhile most NEPI device settings like static, alias, and NTP IP addresses are configurable in real time through the RUI (Resident User Interface), some settings such as User Password, Folders, and SSH Keys must be configured prior to run time. You may also want to factory reset a NEPI Docker configuration.
Run the NEPI Docker Host configuration script by typing:
nepisetupMake any changes you want using the menu options presented, then choose 'APPLY SETTINGS' to apply changes, or 'FACTORY RESET' to factory reset your installation.
/mnt/nepi_config/system_cfg/etc/nepi_system_config.yaml. For production environments, you can replace this file with a production-ready file, or create a custom production script that makes any required changes.nepisetup_remote and nepisetup_host respectively.Optional. If you want to get, update, and build NEPI Software from source code, this section will walk you through the process.
Check or set up an SSH key for your GitHub account by typing the following:
nepigithubnepi_engine_ws repo will be cloned to your home folder at ~/nepi_engine_ws.Additional command line NEPI GitHub commands are available:
nepiclone = Clone the latest NEPI source-code repo
nepiclonedev = Clone the latest NEPI Development branch source-code repo
nepipull = Update to the latest NEPI source-code repo
nepimain = Switch to the NEPI source-code main repo branch
nepidev = Switch to the NEPI source-code develop repo branch
nepidpl = Deploy nepi source-code to nepi device
nepipush = Push current repo (or submodule repo) if you have push permissionsOther useful NEPI development command line shortcuts:
sshn = SSH into the running NEPI Software Container
sshnh = SSH into the NEPI Software Host SystemOptional. If you want to connect to your NEPI device from a remote network-connected PC, set up and test a remote connection following these instructions.
Test that you can connect to your running container from a network-connected PC. See the tutorial at Connecting and Setup.
/mnt/nepi_storage and /mnt/nepi_config.Learn more about using and configuring the NEPI software, as well as building and deploying custom AI models. See the documentation, tutorials, videos, and community forum available at nepi.com.
Before proceeding, make sure your device has the minimum free space (60 GB) required for NEPI Docker installation and run-time processes.
If your NEPI Image failed to start, you can try to run it in dev mode without any NEPI services started:
nepidev
# Then log into the running NEPI container to check NEPI process statuses by typing:
nepilogin
# Once inside the container, start the NEPI services running:
/nepi_start_all
# Once inside the container, start and stop the NEPI software:
nepistatus
# Check if any of the NEPI services are not running in the printout. If any are not running,
# you can examine the process messages by running one of the following status commands:
nepistatus_engine
nepistatus_rui
nepistatus_license
nepistatus_ssh
# To debug issues with the core NEPI Engine software process, you can start and stop NEPI Engine
# to visually look for run-time errors:
nepistop
nepistart
# Some additional NEPI Software command line shortcuts are:
nepihome = change to NEPI home dir
nepistart = start the NEPI processes
nepistop = stop the NEPI processes
nepibld = Build NEPI bash, config, code repos, and RUI
codebld = Build NEPI code repos only
ruibld = Build the RUI only
nepistatus = Print running status of all NEPI processes
nepistatus_engine = Print tail of nepi_engine process
nepistatus_rui = Print tail of nepi_rui process
nepistatus_license = Print tail of nepi_license process
nepistatus_ssh = Print tail of nepi_ssh processThis tutorial will walk you through setting up, configuring, and running a NEPI Docker Demo Installation on a supported device.
SUPPORTED DEVICES: Ubuntu PC, NVIDIA Jetson
NEPI Docker Demo Installations are recommended for a quick demo of the NEPI Software Container for experienced Linux users. Note: If you are not an experienced Linux user, you may want to try the NEPI Docker Lite installation which includes a fully automated setup process. See the NEPI Docker Lite Setup instructions.
Log into a user account on the device with 'Administrator' privileges. Open a Terminal window by right-clicking on the desktop and selecting the "Open in Terminal" option.
Check that Docker is installed on your device by typing:
dockerCheck that a Chromium web browser is installed on your device by typing:
chromiumCreate NEPI required system folders on your device, and add your user to required system groups:
sudo -vThen run:
CONFIG_USER=$(id -un) && USER_1000=$(id -nu 1000)
sudo mkdir /mnt/nepi_config
sudo chown 1000:1000 /mnt/nepi_config
sudo mkdir /mnt/nepi_storage
sudo chown 1000:1000 /mnt/nepi_storage
sudo usermod -aG sudo $CONFIG_USER
sudo adduser ${CONFIG_USER} dialout
sudo usermod -aG dialout ${CONFIG_USER}
sudo usermod -aG tty ${CONFIG_USER}
sudo usermod -aG i2c ${CONFIG_USER}
sudo usermod -aG video ${CONFIG_USER}
sudo usermod -aG docker ${CONFIG_USER}
sudo usermod -aG ${USER_1000} ${CONFIG_USER}
exec su -l $CONFIG_USERInstall the latest NEPI Docker Image for your device.
For NO GPU or RADEON GPU support:
sudo docker pull numurusnepi/nepi:latestRetag the image as nepi:
sudo docker tag numurusnepi/nepi:latest nepi:latest
sudo docker rmi numurusnepi/nepi:latestFor NVIDIA GPU support or NVIDIA Jetson GPU support:
sudo docker pull numurusnepi/nepi:latest-cudaRetag the image as nepi:
sudo docker tag numurusnepi/nepi:latest-cuda nepi:latest-cuda
sudo docker rmi numurusnepi/nepi:latest-cudaInstall the latest NEPI Storage Files which include sample data, AI model, and configuration files:
sudo -vThen run:
cd /mnt/nepi_storage
storage_latest_link='https://www.dropbox.com/scl/fi/za3sz2q7e0pbcj6m89d8h/nepi_storage-latest.zip?rlkey=eq6u97w6qpqiqblcudqnwj8ud&st=hj0yewy3&dl=0'
storage_latest_zip=nepi_storage-latest.zip
sudo rm ${storage_latest_zip} 2> /dev/null
sudo wget ${storage_latest_link} -O ${storage_latest_zip}
sudo -v && sudo unzip -o -q $storage_latest_zip
sudo rm ${storage_latest_zip} 2> /dev/null
sudo chown -R 1000:1000 ${NEPI_STORAGE}
ls ./This section will start and test your NEPI Docker solution. Start your NEPI container running with the following command.
For NO GPU or RADEON GPU support:
sudo docker run -d --privileged --rm -e UDEV=1 --ipc=host --user 0:0 \
--mount type=bind,source=/mnt/nepi_storage,target=/mnt/nepi_storage \
--mount type=bind,source=/mnt/nepi_config,target=/mnt/nepi_config \
--mount type=bind,source=/dev,target=/dev \
--mount type=bind,source=/etc/udev,target=/etc/udev \
--cap-add=SYS_TIME --volume=/var/empty:/var/empty \
-v /etc/ntpd.conf:/etc/ntpd.conf -e DISPLAY=:0 \
--net=host -p 2222:22 -p 9091:9091 -p 9092:9092 -p 11311:11311 \
-p 137:137/udp -p 138:138/udp -p 139:139/tcp -p 445:445/tcp \
nepi:latest /bin/bash -c '/nepi_start_all'For NVIDIA GPU support:
sudo docker run -d --privileged --rm -e UDEV=1 --ipc=host --user 0:0 \
--mount type=bind,source=/mnt/nepi_storage,target=/mnt/nepi_storage \
--mount type=bind,source=/mnt/nepi_config,target=/mnt/nepi_config \
--mount type=bind,source=/dev,target=/dev \
--mount type=bind,source=/etc/udev,target=/etc/udev \
--cap-add=SYS_TIME --volume=/var/empty:/var/empty \
-v /etc/ntpd.conf:/etc/ntpd.conf -e DISPLAY=:0 \
--net=host -p 2222:22 -p 9091:9091 -p 9092:9092 -p 11311:11311 \
-p 137:137/udp -p 138:138/udp -p 139:139/tcp -p 445:445/tcp \
--gpus all --runtime nvidia -v /tmp/.X11-unix/:/tmp/.X11-unix
nepi:latest /bin/bash -c '/nepi_start_all'For NVIDIA Jetson GPU support:
sudo docker run -d --privileged --rm -e UDEV=1 --ipc=host --user 0:0 \
--mount type=bind,source=/mnt/nepi_storage,target=/mnt/nepi_storage \
--mount type=bind,source=/mnt/nepi_config,target=/mnt/nepi_config \
--mount type=bind,source=/dev,target=/dev \
--mount type=bind,source=/etc/udev,target=/etc/udev \
--cap-add=SYS_TIME --volume=/var/empty:/var/empty \
-v /etc/ntpd.conf:/etc/ntpd.conf -e DISPLAY=:0 \
--net=host -p 2222:22 -p 9091:9091 -p 9092:9092 -p 11311:11311 \
-p 137:137/udp -p 138:138/udp -p 139:139/tcp -p 445:445/tcp \
--gpus all --runtime nvidia -v /tmp/.X11-unix/:/tmp/.X11-unix
-v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp
-v /usr/bin/nvargus-daemon:/usr/bin/nvargus-daemon
nepi:latest /bin/bash -c '/nepi_start_all'Open Chromium web browser. Check that the NEPI Resident User Interface (RUI) is running by opening the Chromium browser and entering the following in the search bar:
localhost:5003This will take you to the NEPI RUI dashboard. Once the NEPI core software system is running, you should see a blinking green indicator and messages.
You can also access the NEPI admin page for managing NEPI software configurations by entering the following in the search bar:
localhost:5003/adminThe default admin password is: nepiadmin
cd /mnt/nepi_storage/dataTo learn more about using, configuring, and building NEPI software, see the documentation, tutorials, videos, and community forum available at nepi.com.
This tutorial will walk you through setting up, configuring, and running a NEPI Docker Full installation on a supported device.
SUPPORTED DEVICES: Ubuntu PC, NVIDIA Jetson
NEPI Docker Full Installations are recommended for embedded edge-compute processor installations, production deployments, and NEPI Software development.
If you want to first try a Lite installation with no NEPI managed operating system services but all of the other functionality, see the NEPI Docker Lite Setup instructions.
If you choose to proceed, make sure you have a way to reflash the device, or back up and restore your device's existing file system if needed.
This phase sets up the NEPI Docker required user accounts on your device. Log into a user account on the device with 'Administrator' privileges.
Open a Terminal window by right-clicking on the desktop and selecting the "Open in Terminal" option.
Make sure your system has internet access by running the following command:
ping -c 1 google.comUpdate the Git application:
sudo apt update && sudo apt install -y gitClone the NEPI Setup repo:
cd /home/${USER}
git clone https://github.com/nepi-engine/nepi_setup.gitRun the NEPI Docker user setup script (sudo password is #Nsetup4You):
cd /home/${USER}/nepi_setup/scripts
sudo suThen run:
./docker_full_user_setup.shPower cycle your system when complete.
This phase sets up the NEPI Docker required software environment. Log into the nepihost user using password 'nepi'.
Make sure your system has internet access by running the following command:
ping -c 1 google.comClone the NEPI Setup repo:
cd /home/${USER}
git clone https://github.com/nepi-engine/nepi_setup.gitRun the NEPI Docker environment setup script (sudo password is now 'nepi'). If prompted, enter y or yes:
/home/nepihost/nepi_setup/scripts/docker_full_env_setup.shScroll up through the process messages looking for any errors and correct them. Rerun the script if needed.
Power cycle your system when complete.
This phase will configure the NEPI Docker installation using the default settings. You can change settings later in the 'NEPI Docker Customization' section. Log into the nepihost user using password 'nepi' (sudo password is 'nepi').
This process will create (if not already created) and set up the following NEPI folders:
/mnt/nepi_storage, along with several user subfolders. This is where NEPI processes store user files such as saved data, AI models, import/export Docker images, and user saved configurations./mnt/nepi_docker. This is where NEPI Docker Images are stored./mnt/nepi_config, along with several config subfolders.ninet.Test that you can reconnect to the internet and sync clocks:
ninetCheck for internet connection:
pingipingi = ping internet test
nipa = Echo NEPI set IP address
naipa = Echo NEPI set IP alias addresses
nnipa = Echo NEPI set NTP IP addresses
nnet = Restart the network
ndhcp = Enable DHCP Internet Client
nclock = Sync clock
ninet = Restart network, connect to internet, and sync clock
cuda_version = Echos Cuda version number if cuda available or 0
fix_chromium = Fix any Chromium config issues
sbrc = Source the current user's bashrc files
# Type nepihelp to see all NEPI Docker command line shortcutsPower cycle your system when complete.
This phase will initialize and test your NEPI Docker installation. Log back into nepihost using password 'nepi'.
Check for internet connection:
ping -c 1 google.comRun the NEPI Docker Storage Initialization script (sudo password is now 'nepi'):
source /home/nepihost/nepi_setup/scripts/docker_storage_init.shRun the NEPI Docker Image Initialization script (sudo password is now 'nepi'):
source /home/nepihost/nepi_setup/scripts/docker_image_init.shRun the NEPI Docker Import command (sudo password is now 'nepi'):
nepiimportAfter the import completes, you can print the current installed NEPI Docker Image by typing:
dimgnepistart = Start the NEPI docker container.
nepidev = Start the NEPI docker container in a dev mode with no processes running, and an OPTIONAL_RUN_COMMAND.
nepistop = Stop the running NEPI docker container.
nepilogin = Log into the running NEPI container as user 'nepi'.
nepiloginroot = Log into the running NEPI container as user 'root'.
nepiswitch = Switch to Inactive NEPI container on next boot or restart.
nepicommit = Commit the running NEPI container with provided COMMIT_DESCRIPTION, restarts nepi using new commit unless RESTART=0 is passed.
nepiinit = Reset, clear, and import new NEPI Image.
nepiimport = Import a NEPI image .tar file. Optional: Enter a file name or full file path.
nepiexport = Export the running NEPI container to a .tar file. Enter a file name or full file path.
nepiload = Import a NEPI image .archive.tar file. Optional: Enter a file name or full file path.
nepisave = Save the active NEPI Image with all commits to a .archive.tar file. Enter a file name or full file path.
nepitag = Update the Software Description field in the active NEPI container.
nepienable = Enable NEPI Docker service on next boot.
nepidisable = Disable NEPI Docker service on next boot.
nepirestart = Restart NEPI docker service.
nepistatus = Show the systemctl status for nepi_docker service.
nepilogs = Show live NEPI Docker service journal file.
nepibld = Build or Update the NEPI Docker File System from source code in ${NEPI_BUILD_REPO_FOLDER}.
nepiupdate = Run NEPI Docker bash, folders, files, and config update processes.
nepicreate = Export and Import a new NEPI Docker Image from running container.
nepiprint = Print current NEPI DOCKER and SYSTEM configuration settings.
# Type nepihelp to see all NEPI Software command line shortcuts/mnt/nepi_storage./mnt/nepi_storage/nepi_images.Start your NEPI container running:
nepistartThe start script will let you know if the installed NEPI Image started successfully.
Open Chromium web browser. Check that the NEPI Resident User Interface (RUI) is running by opening the Chromium browser and entering the following in the search bar:
localhost:5003This will take you to the NEPI RUI dashboard. Once the NEPI core software system is running, you should see a blinking green indicator and messages.
If everything is working, you can enable the NEPI Docker Service which will automatically start the NEPI container and software on boot:
nepienablePower cycle your system when complete. Log back into nepihost using password 'nepi'. Check that your NEPI container is running after reboot:
dps
#If your container is not running, try to debug NEPI Docker Service issues with the following commands:
nepirestart
nepistatus
nepilogsWhile most NEPI device settings like static, alias, and NTP IP addresses are configurable in real time through the RUI (Resident User Interface), some settings such as User Password, Folders, and SSH Keys must be configured prior to run time. You may also want to factory reset a NEPI Docker configuration.
Run the NEPI Docker Host configuration script by typing:
nepisetupMake any changes you want using the menu options presented, then choose 'APPLY SETTINGS' to apply changes, or 'FACTORY RESET' to factory reset your installation.
/mnt/nepi_config/system_cfg/etc/nepi_system_config.yaml. For production environments, you can replace this file with a production-ready file, or create a custom production script that makes any required changes.Set up and test a network-connected PC connection to your NEPI device following these instructions.
Test that you can connect to your running container from a network-connected PC. See the tutorial at Connecting and Setup.
/mnt/nepi_storage and /mnt/nepi_config.Test that you can connect your PC to the NEPI device's nepi_storage folder using your PC's File Manager application. See the tutorial at Accessing the User Storage Drive.
SSH into either your NEPI Host device or NEPI running container by following the tutorial at NEPI SSH Setup.
Learn more about using and configuring the NEPI software, as well as building and deploying custom AI models. See the documentation, tutorials, videos, and community forum available at nepi.com.
You can update or customize the NEPI software running in a NEPI Docker Container from source code, then export it as a new shareable NEPI Docker Container. See the NEPI Container Customization instructions.
If you need to build a NEPI Docker Container from scratch for a particular installation environment, you can do so starting with a suitable Ubuntu container for the device's environment. See the NEPI Container Build instructions.
The NEPI Docker system provides a full-featured AI and automation software environment that installs on top of your host device's native operating system. To achieve this, the NEPI Docker solution interacts with the device's configuration. While the NEPI Docker installation provides functions for reverting back to your original system configurations, it is recommended that you create a backup of your current device's hard drive to a separate backup SSD card to ensure you are able to recover your original system if issues arise. This can be done using a low-cost SSD cloning device such as the Rosewill SSD Cloner as long as you are cloning to the same SSD card type.
Before proceeding, make sure your device has the minimum free space (60 GB) required for NEPI Docker installation and run-time processes.
If your NEPI Image failed to start, you can try to run it in dev mode without any NEPI services started:
nepidev
# Then log into the running NEPI container to check NEPI process statuses by typing:
nepilogin
# Once inside the container, start the NEPI services running:
/nepi_start_all
# Once inside the container, start and stop the NEPI software:
nepistatus
# Check if any of the NEPI services are not running in the printout. If any are not running,
# you can examine the process messages by running one of the following status commands:
nepistatus_engine
nepistatus_rui
nepistatus_license
nepistatus_ssh
# To debug issues with the core NEPI Engine software process, you can start and stop NEPI Engine
# to visually look for run-time errors:
nepistop
nepistart
# Some additional NEPI Software command line shortcuts are:
nepihome = change to NEPI home dir
nepistart = start the NEPI processes
nepistop = stop the NEPI processes
nepibld = Build NEPI bash, config, code repos, and RUI
codebld = Build NEPI code repos only
ruibld = Build the RUI only
nepistatus = Print running status of all NEPI processes
nepistatus_engine = Print tail of nepi_engine process
nepistatus_rui = Print tail of nepi_rui process
nepistatus_license = Print tail of nepi_license process
nepistatus_ssh = Print tail of nepi_ssh process