Safe Network Node on ARM servers Installation Guide [Manjaro minimal] (Version 2)

Introduction

This guide will tell you how to install a safe network node on any server computer that runs on an ARM chip. Once running, you will earn safe network tokens. Good luck!

Note: The safe network is still in it’s testing phase, so all earned safe network tokens will be destroyed at the end of each test run.

Note: For those of you who are absolute beginners when it comes to server computers.
A server computer is not necessarily any different from a client computer. Any computer can be a server computer. What’s often different about ‘server computers’ is that they often lacks support for monitors, speakers and other components aimed at human sensors. Server computers sit in a corner and uploads data to whomever requests it.

Note: ARMv7 is not supported yet by this guide, for those of you who have ARMv7 servers, please follow the steps of the previous guide for now.

Requirements

Client computer

  • A Desktop or laptop

Server computer

Minimal

  • ARM computer (Raspberry Pi 4 in picture)
    • Motherboard
    • Case
    • Power Adapter
  • SD Card - (Endurable recommended)
  • SD Card reader
  • Ethernet cable

Highly recommended

  • A display-providing cable for your ARM server in case it loses connection:
    • Monitor with HDMI cable : USB-C in to HDMI out cable
    • Monitor with displayport cable : USB-C in to Disyplayport out cable (not in picture)
    • No monitor : Raspberry Pi Display (not in picture)
  • For those who use of the Raspberry Pi 4 as their server, the Raspberry Pi 4 Heatsink

Recommended (not in picture)

  • External storage

Steps

Step 1: Download, install and run Manjaro-arm-installer

For Manjaro Linux OS users

Simply install Manjaro ARM installer and run it:

sudo pacman -S manjaro-arm-installer
sudo manjaro-arm-installer

For Windows 10/11 users

Recommendation: Chocolately

Chocolately is a package manager, which is like an app store full of free adless software. Go to https://chocolatey.org/ and follow the instructions. Once you have downloaded and installed chocolately, downloaded, installed and started choco-gui, you can search for docker-gui and press install.

Open docker-gui and install safenetworkcommunity/manjaro-arm-installer.
Then start manjaro-arm-installer.

For Mac OS users

– Todo

For Arch Linux OS users

Open your terminal and type:

sudo pacman -S docker
docker pull safenetworkcommunity/manjaro-arm-installer
docker -it manjaro-arm-installer

For Debian Linux OS users

Open your terminal and type:

sudo apt install docker
docker pull safenetworkcommunity/manjaro-arm-installer
docker -it manjaro-arm-installer

For Fedora Linux OS users

Open your terminal and type:

sudo yum install docker
docker pull safenetworkcommunity/manjaro-arm-installer
docker -it manjaro-arm-installer

Note: During your next step you will encounter choosing the drive where you want to install the OS.
Make sure that you’re not choosing your laptop/desktop drive.
It happened to me once and despite stopping the application from destroying all my files and folders in time, I still ended up deleting everything I held near and dear during the cleanup. :sob:

Note: There’s no need for difficult passwords right away, because we’re going to use SSH keys and then via SSH we can change those passwords.

WARNING! If you are not careful with one of the steps during the procedure below, you can overwrite or delete your entire computer. This link leads to an example of what could happen if you are not careful enough.

Step 2: Install Manjaro Minimal onto your SD card

Insert your SD card into your SD card reader and your SD card into any USB port.

asciicast

Then choose the following:

YOUR_ARM_COMPUTER_MODEL 
minimal
YOUR_USERNAME 
wheel,sys,audio,input,video,storage,lp,network,users,power
YOUR_FULLNAME 
A_SIMPLE_PASSWORD 
REPEAT
A_SIMPLE_PASSWORD 
REPEAT
your_microSD_drive_usually_sdc_or_sdb <- [READ WARNING ABOVE!]
btrfs
YOUR_TIMEZONE
YOUR_LOCALE (default: en_US)
YOUR_TTY_KEYBOARD_LAYOUT (default: us) 
YOUR_HOSTNAME (default: Safenetwork-one)

Once the installment is finished, enter these commands (ROOT_MNJRO=ROOT_MNJRO):

curl https://link.tardigradeshare.io/s/julx763rsy2egbnj2nixoahpobgq/rezosur/safe_network_dev_environment_setup.sh?download -o safe_network_dev_environment_setup.sh
curl https://link.tardigradeshare.io/s/julx763rsy2egbnj2nixoahpobgq/rezosur/sshd_config?download -o sshd_config
mkdir /run/media/$USER/ROOT_MNJRO/@home/YOUR_USERNAME/{safe,safenetwork-node,.ssh} 
mv safe_network_dev_environment_setup.sh /run/media/$USER/ROOT_MNJRO/@home/YOUR_USERNAME/safe/
sudo mv -b sshd_config  /run/media/$USER/ROOT_MNJRO/@/ssh
ssh-keygen -t ed25519 -N <passphrase> -C "USER@HOSTNAME"
cat ~/.ssh/id_ed25519.pub | tee -a /run/media/$USER/ROOT_MNJRO/@home/YOUR_USERNAME/.ssh/authorized_keys

Step 3: Access your ARM server computer via SSH

Pull your Mirco SD card out of your reader and push it into your ARM server.
Connect the ethernet cable to your modem and turn your ARM server on.

On your client computer terminal type the following command to connect to your server:

ssh YOUR_USERNAME@YOUR_HOSTNAME

This should give you access to your server computer.

Next use a password manager (example: KeepassXC) for generating and managing passwords.
Then type these commands:

passwd
YOUR_PASSWORD
NEWLY_GENERATED_PASSWORD
REPEAT
sudo su
passwd
NEWLY_GENERATED_PASSWORD
REPEAT
exit

Run the safe network script which should download and setup docker on your server computer.
This requires a reconnect in order for Manjaro to provide new user permissions.

sudo sh ~/safe/safe_network_dev_environment_setup.sh
exit
ssh YOUR_USERNAME@YOUR_HOSTNAME

Step 4: Start the node

Pull the safenetwork-node image from docker.
It should immediately run the node once the build has been completed.

For those who have global IPv4 addresses

docker pull safenetworkcommunity/safenetwork-node
docker build -t safenetworkcommunity/safenetwork-node .

For those who have global IPv6-only addresses

Note: As of now there is IPv6 test network or community network set up, so this will only download the safe network node in docker.

docker pull safenetworkcommunity/safenetwork-node-ipv6
docker build -t safenetworkcommunity/safenetwork-node-ipv6 .

Congratulations and welcome to the club!
You can also run the safe command line interface from the server side and take a look inside at your hard earned money from running your server farm.

docker run -it safenetworkcommunity/safenetwork-node

Happy safe networking!

Reminder to myself to add LunarVim to this tutorial once neovim 0.5 is available on the manjaro/arch repositories. LunarVim currently is such a pain to install, I have to exclude it for now.
Reminder to myself to add windows screenshots for chocolately and docker-gui.
Reminder to add armv7 support to safenetworkcommunity/safenetwork-node
Reminder to add IPv6 support for those who have IPv6-only nodes.

18 Likes

This will be misleading to anyone new to the project. Maybe put “test safe network tokens” at least?
Thanks for the guide!

2 Likes