How to build Nitro locally (Debian, Ubuntu, MacOS)
Arbitrum Nitro is the software that powers all Arbitrum chains. This how-to shows how you can build a Docker image, or binaries, directly from Nitro's source code. If you want to run a node for one of the Arbitrum chains, however, it is recommended that you use the docker image available on DockerHub, as explained in How to run a full node.
This how-to assumes that you're running one of the following operating systems:
Build a Docker image
Step 1. Configure Docker
For Debian/Ubuntu
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo service docker start
(Note that if you are running Ubuntu 22.04, you might get an Unable to locate package docker-buildx-plugin error. Try sudo apt install docker-buildx instead.)
For MacOS
Depending on whether your Mac has an Intel processor or Apple silicon, download the corresponding disk image from Docker, and move it into your Applications folder.
[Optional] Run docker from a different user
After installing docker, you might want to be able to run it with your current user instead of root. You can run the following commands to do so.
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
For troubleshooting, check Docker's section in their documentation
Step 2. Download the Nitro source code
git clone --branch v3.4.0 https://github.com/OffchainLabs/nitro.git
cd nitro
git submodule update --init --recursive --force
Step 3. Build the Nitro node Docker image
docker build . --tag nitro-node
That command will build a Docker image called nitro-node from the local source.
Build Nitro's binaries natively
If you want to build the node binaries natively, execute steps 1-3 of the Build a Docker image section and continue with the steps described here. Notice that even though we are building the binaries outside of Docker, it is still used to help build some WebAssembly components.