StorJ node installation guide on Raspberry Pi 4B
I write this little guide that I will update to explain how to mount a StorJ node with a Raspberry Pi 4B in the easiest and fastest way possible (this method can be applied to 3, 3B and 4 as well). I have all the slightly more technical documentation saved in Google Drive and I can share it with anyone who is interested. Here for now I will simplify and answer questions if they arise.
First of all, the hardware that I have needed to assemble this system is the following:
- Raspberry Pi 4B.
- Geekworm x735 module.
- Geekworm x825 module.
- Geekworm x825 case.
- SanDisk Extreme microSD card, 64GB, class A2.
- HDD SATA III Seagate Barracuda, 2TB, 2.5", 5400rpm.
- Ethernet network cable RJ45, cat6, 1Gbit/s.
The cost of the first four components, purchased together at Geekworm, has been around €170: https://geekworm.com/products/raspberry-pi-4-x825-board-x825-case-x735-board-dc-5v-4a-power-supply-kit?_pos=2&_sid=c41b4f7cd&_ss=r
The cost of the microSD, bought on Amazon, was €14: https://www.amazon.es/SanDisk-Extreme-Tarjeta-microSDXC-adaptador/dp/B07FCMBLV6/ref=sr_1_1?__mk_es_ES=%C3%85M%C3%85%C5%BD%C3%95%C3%91&dchild=1&keywords=sandisk+extreme+64gb&qid=1589740331&sr=8-1
The cost of the HDD, bought on Amazon, has been €89: https://www.amazon.es/Seagate-Barracuda-Ordenador-Abre-f%C3%A1cil-ST2000LMZ15/dp/B07D99S8Z7/ref=dp_ob_image_ce
The cost of the network cable, bought on Amazon, has been €6: https://www.amazon.es/AmazonBasics-Cable-Ethernet-conectores-RJ45/dp/B00N2VILDM/ref=sr_1_5?__mk_es_ES=%C3%85M%C3%85%C5%BD%C3%95%C3%91&dchild=1&keywords=ethernet+rj45&qid=1589740394&s=computers&sr=1-5
The total cost of the system has been: €279.
- Once the components have been assembled, the first step I have done has been to install the Raspbian Operating System on the microSD, recommended by Raspberry, following the official guide through https://www.raspberrypi.org/documentation/installation/installing-images/README.md . In this guide there are several ways to install the OS, I have done it with the Raspberry Pi Imager program, which I have downloaded and installed on a separate PC. From this PC, connecting the microSD I have mounted and installed the Raspbian image.
- After this, I have assembled the component system. There is a Geekworm tutorial video where they show how the components are attached: RPI4B + microSD + x735 + x825 + HDD ( https://www.youtube.com/watch?v=ZMdGqjdThSo ).
- The next step is to configure the mounted system so that it can be accessed securely and on demand whenever required. Remote access in my case is essential, since I will not have the node connected to a monitor or peripherals. In fact, I suppose that almost all of us want to have a node in this way. So there are several ways to remotely access the system: https://www.raspberrypi.org/documentation/remote-access/ . I recommend having at least two gateways, which are SSH and VNC. By default, with the latest version of Raspbian these two ways of connecting are already installed and you just need to activate them. Of course, the PC from which I connect also has to have a way to enter.
- Next I have made the system a bit more secure. That is, I have changed the default password of the user (pi), I have updated the software and I have installed a firewall. https://www.raspberrypi.org/documentation/configuration/security.md . The firewall configuration is important in order to allow certain ports that are necessary to work with the node. Specifically, I have allowed the ports of SSH, VNC and the one required by default of StorJ.
- With that done, I've already followed the official StorJ guide to mount a node on a Linux system. The first thing is to configure port forwarding and have a static private IP established for the node. Static IP is very easy to set and can be done in the first place by following this document: https://www.raspberrypi.org/documentation/configuration/tcpip/README.md . You have to indicate the network interface on which the static IP is configured (in this case, eth0).
- Port forwarding is also simple, you just have to enter the router configuration (here in Spain it is usually 192.168.1.1), find the option to open ports and open the one that StorJ needs (28967) for the private IP of the node.
- Apart from this, and as the StorJ guide indicates, you have to configure a DDNS in case the public IP changes. I have done it with NoIP and installing the DUC (Dynamic Update Client) in the system, as described in the guide. There is a point where it is indicated that if you have the option to configure DDNS in the router, do it too. I have the option and I have done it: https://www.noip.com/support/knowledgebase/how-to-configure-ddns-in-router/ .
- Then, I have generated the identity and authorized it with the token provided by StorJ for the account: https://documentation.storj.io/dependencies/identity . Of course I have made a backup of it on my PC (copy via VNC).
- I have followed a tutorial on this website to install Docker: https://phoenixnap.com/kb/docker-on-raspberry-pi .
- The last steps in which I am waiting for the HDD to arrive on Tuesday are to download and install the storagenode image and run it to get the node up and running: https://documentation.storj.io/setup/cli/storage-node . (I'll update this section as soon as I've done it)
As for the backup copies of the node, first I have made a full backup of the microSD. This copy is very easy to do: we insert a pendrive into one of the system's USB ports and run the SD copier tool pre-installed with Raspbian. I will schedule the HDD backup once the node is up and running using rsync. (I will update this section on how to backup HDD to other external device)
I hope it helps, thank you very much.
Piece of guide, congratulations!
I save it for one day to mount the raspi4 that I have stopped inside the windows node box and have both working in the same space.
Thank you very much!
Is it worth setting up a raspberry to use it as a node or is it more worthwhile to set up a pc? I say performance for consumption / gains (I don't know if the gain will be less with the raspberry), I'm considering buying a raspberry to make a node
Have you been able to mount the node without problems? , I am trying it with the Raspi 4 and as far as I can see everything is fine, but the only issue is that it is always offline.
I have opened the ports on the Router, and the Debian "ufw" is also driving me crazy.
I don't know if it has something to do with it but I already have an active donation in Windows 10 without a problem, I don't know if it will be something with the IP? I hope you can comment on your experience.
Finally you can do it, the problem was the most obvious and dumb but one that maybe I should mention to help others:
At the time of opening the ports on the router, since I already had 28967 open on my first node. And the setup was;
Node1 => External: 28967 Internal: 28967
So what I was doing on node 2 was:
Node2 => External: 28968 Internal: 28967
But when checking if port 28968 was open from outside in :
The result was negative, and I didn't understand why, if the order inside the router was clear, open port 28968 from the outside and keep 28967 internal, (no?)
Well, it wouldn't open, so I decided to try:
Node2 => External: 28968 Internal: 28968
With the Docker configuration:
docker run -d --restart unless-stopped --stop-timeout 300
-p 28968:28967 => the 28968 external and 28967 internal
-e EMAIL="[email protected]"
-e ADDRESS="mydomain.com:28968" => the external 28968
--name storagegenode storjlabs/storagenode:beta
And Oleeeee perfect working and without problem ....
I hope if anyone is going through the same thing this helps.
I was just registering to tell you that it cannot have the same listening port, the Pi4 arrives tomorrow to mount the node.
I'm glad it works for you.
I will put an external HD instead of putting the module.
Geekworm x825 module
No, but it was clear that I had to change the port, only that I did it in the wrong way in the router.
I also have it mounted on a 2TB external drive on a 4GB Raspi 8, but you're going to need this adapter.
UGREEN USB 3.0 to SATA III Adapter with UASP, SATA USB Cable for 3,5" 2,5" HDD SDD, Hard Drive Reader, Compatible with PC, Macbook, PS4, Xbox One, 16TB MAX (12V Power Adapter Included ) https://www.amazon.es/dp/B016UBXH3O/ref=cm_sw_r_cp_api_i_LRK3Eb9S6BQP0
To be able to power the hard drive since the USB does not pull with a 2TB drive.
That's in case you didn't know it but good as it is info, surely it helps more people, so keep it in mind.
the rise of all usb in theory is 1.2A right? this one that I have at the start I have measured and it gives me 0.40A then in use it is about 0.25-0.35A, on the sticker it says 5V 1A, well, thanks for the info, it is 1TB 2.5, because almost then it is better to get one 3.5"
I would say that it is better to have it because at the time of a rush the system could be unstable.
What would cause it to be relocated, what is certain is that with a 2TB of 3,5, only the data 3 to USB cable would not work.
Relocate = Reboot!!! hehehehe
In theory the p4 already gives 1.2A the voltage regulator it has, for the 4 usb, if you don't have a keyboard or anything you should throw away the HDD (only USB HDD).
Neither HDMI, nor anything punctured, well tomorrow I'll tell you xD, if not another option could be a USB 3.0 Hub with a power adapter, and try if it runs a Raid 1 by usb.
Let us know how it went hehe...
Mine is super stable and now it will be about 4 to 6 months macerating hahaha to see the results, the good thing is that with a Raspi you don't go over 8w of electricity consumption. More would say 4w of the Disco much lower than with W10.
In my node 1 that I have with Windows, the entire system consumes 33w, which is not that much either.
Then tell us how it went, "LUCK" with the installation.
I already have the node working, with the HD only by USB, it is 1Tb that is a few years old but it was what I had left over from the store I had. hehe and that on the sticker it says 5V at 1A but I already told you at the start it didn't even come close.
We'll see if it's stable.
I'll tell you. In any case, I've got a type of cable when it arrives from Ali I'll do some tests, the data cable to the Pi, the other power cable to a 2A mobile USB adapter and the cable from the HD to the female.
Excellent, so here we are 2 with StorJ nodes mounted on Raspberry Pi 4 !!! Go commenting to follow up.
Mine is going well for now we'll see at the end of the month.
As a question: I've been interested in the Pi4 for a long time to make a NAS server capable of running with little power consumption but only using two 2.5 1tb disks since I already have them circulating around, it would only be to buy the addin or card, but I have seen cards capable of receiving up to 4 3.5 sata disks, making the case is not a problem, it's just a matter of getting creative with a bit of acrylic. Now my question would be: a StoreJ node with 4 4tb drives is profitable, what cables would I need to go from the card to the 3.5 drives?