📋 Prerequisites
Please read carefully as there can be many points of failure when installing/deploying everything into a clean environment.
🖥️ OS Requirements
Please note that the OSes mentioned below are the versions we support, whatever is not listed here is not supported, and we will not provide support for.
- Linux OS (Ubuntu 24.04 LTS+, Debian 10+ preferred, or RHEL 9+).
- Windows 11+/Windows Server 2022+ (Requires WSL 2.0 installation and the installation of an Ubuntu image, for a working setup, follow this guide to get going, and get back here when things are working).
- macOS 15+ (Sequoia).
🧰 Software requirements (Linux/macOS)
Software required on machine (the minimum/basics to get demos running):
- make
- git + git-lfs
- Docker
- python3.11
🔐 Other requirements (User Permissions/Firewall)
- a Linux account with 'admin' rights, if possible, if not, you will need to get your IT team to take a look at this README and install the packages for you using the steps below (make sure they look at [Docker rootless installation steps](https://docs.docker.com/engine/security/rootless))
- firewall allow-listing of the following addresses:
- https://github.com/
- https://hub.docker.com/
- https://docker.io
- http://download.docker.com
- https://huggingface.co/
- https://www.nltk.org
- https://pypi.org/
- https://pypi.python.org
- https://Files.pythonhosted.org
- https://pythonhosted.org
⚙️ Installation steps
For a machine with no internet access, use the separate Air-gapped NiFi deployment guide. The steps below assume the machine can reach package repositories, Git hosting, Git LFS storage, and container registries.
Assuming you are the system admin, meaning you have sudo rights.
You can use the script located at scripts/installation_utils/install_docker_and_utils.sh; it can be used on Debian(10+)/Ubuntu(22.04+)/RedHAT RHEL 8/9 only. Run it once and everything should be set up. The script resolves its helper files relative to its own location, so it can be run from any directory.
Execute the following commands in the root directory of the repo:
git-lfs pull- (OPTIONAL, if you already have the software in this section installed)
bash ./scripts/installation_utils/install_docker_and_utils.sh, and wait for it to finish. It may take a while to get all the packages, and it will prompt forsudowhen needed. cd deploymake git-update-submodulesmake init-security- check that docker works correctly :
docker pull hello-world - if no errors, run:
docker run --rm hello-world, it should run without issues - if there are any issues check the below warning section
Warning
Run git-lfs pull to download all repository assets, including larger files.
Warning
Ensure all Git submodules are initialized and updated with make git-update-submodules.
Warning
If Docker fails to install or docker pull hello-world does not work:
- Follow the official Docker installation steps.
- Ensure your user is in the Docker group.
- For non-sudo users, check Docker rootless mode and the Linux post-install steps.
⚠️ Essential Elasticsearch Requirement
Warning
Elasticsearch may fail to start unless vm.max_map_count is increased.
If this value is too low, Elasticsearch will exit with the error:
bootstrap checks failed
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
If you did not run the installation script, set it manually.
Temporary (until reboot):
sudo sysctl -w vm.max_map_count=262144
Permanent (persists across reboots):
Add the line below to /etc/sysctl.conf:
vm.max_map_count=262144
Or use this one-liner:
sudo sh -c "echo 'vm.max_map_count=262144' >> /etc/sysctl.conf"
Then apply it:
sudo sysctl -p
The install_docker_and_utils.sh script configures this automatically; set it manually only if the script was skipped.
🏅 Deploying services
If everything up to this point is running fine, then, congratulations, you should now be able to start looking at the deployment section