▶️Installation
Step 1: Update system and install dependencies
sudo apt update -y && sudo apt upgrade -y && sudo apt install -y curl openssh-server git certbot nginx sqlite3 build-essential && sudo systemctl enable ssh && curl -sSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list && sudo apt-get update -y && sudo apt-get install -y yarn && curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash && source ~/.bashrc && sudo ufw allow 22 80 443 && sudo ufw enable
Step 2: Install Docker
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /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
Step 3: Install Node Version Manager
nvm install 20.11.1 && nvm use 20.11.1
Step 4: Clone ar.io repository
git clone -b main https://github.com/ar-io/ar-io-node
cd ar-io-node
Step 5: Modify your .env
GRAPHQL_HOST=arweave.net
GRAPHQL_PORT=443
START_HEIGHT=0
RUN_OBSERVER=true
ARNS_ROOT_HOST=<your-domain>
AR_IO_WALLET=<your-gateway-wallet-address>
OBSERVER_WALLET=<hot-wallet-public-address(you can use same wallet)>
AO_CU_URL=https://cu.ardrive.io
ARNS_NAME_LIST_CACHE_MISS_REFRESH_INTERVAL_SECONDS=60
Note : Export your wallet from wander and place in the wallets directory (your_wallet.json).
Step 6: Edit DNS Records on Cloudflare.

Don’t forget to change “Type” and switch off “Proxy”.
Step 7: Get acme_challange token for DNS Records.
sudo certbot certonly --manual --preferred-challenges dns --email <your-email-address> -d <your-domain> -d '*.<your-domain>'
Note : Change email by your email and domain by your domain.
Step 8: Configure nginx on Server
sudo nano /etc/nginx/sites-available/default
# Force redirects from HTTP to HTTPS
server {
listen 80;
listen [::]:80;
server_name <your-domain>.com *.<your-domain>;
location / {
return 301 https://$host$request_uri;
}
}
# Forward traffic to your node and provide SSL certificates
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name <your-domain> *.<your-domain>;
ssl_certificate /etc/letsencrypt/live/<your-domain>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<your-domain>/privkey.pem;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
}
}
sudo nginx -t
There'll be ok status if all nginx settings was correct.
sudo service nginx restart
Step 9: Run the node
sudo docker compose up -d
Step 10: Stop the node
sudo docker compose down
Last updated
Was this helpful?