How to add an additional drive?

First, be aware that there’s a typo in the instructions on How to add an additional drive? In the Docker version, How to add an additional drive? - Storj Node Operator Docs This should read -p 127.0.0.1:14003:14002 instead of -p 172.0.0.1:14003:14002

I have two 4 Tb hard drive. The first one was a charm to setup, but after several hours, I need help with the other one.

Port forward for Web interface
STORj External 14002 Internal 14002 > 192.168.8.138
STORj2External 14003 Internal 14002 > 192.168.8.138

Port forward for Nodes
STORjNode1 External 28967 Internal 28967 > 192.168.8.138
STORjNode2 External 28968 Internal 28968 > 192.168.8.138

CLI-Set up the Storage Node
docker run --rm -e SETUP=“true” --mount type=bind,source=“C:\Users\STORj\AppData\Roaming\Storj\Identity\storagenode”,destination=/app/identity --mount type=bind,source=“D:\storjC1”,destination=/app/config --name storagenode storjlabs/storagenode:latest

docker run --rm -e SETUP=“true” --mount type=bind,source=“C:\Users\STORj\AppData\Roaming\Storj\Identity\storagenode”,destination=/app/identity --mount type=bind,source=“E:\storjC2”,destination=/app/config --name storagenode2 storjlabs/storagenode:latest

CLI-Run the Storage Nodes
storagenode1
docker run -d --restart unless-stopped --stop-timeout 300 -p 28967:28967/tcp -p 28967:28967/udp -p 127.0.0.1:14002:14002 -e WALLET=“redacted” -e EMAIL="rst@mac.com" -e ADDRESS=“redacted”:28967” -e STORAGE=“3.5TB” --mount type=bind,source=“C:\Users\STORj\AppData\Roaming\Storj\Identity\storagenode”,destination=/app/identity --mount type=bind,source=“D:\storjC1”,destination=/app/config --name storagenode storjlabs/storagenode:latest

storagenode2
docker run -d --restart unless-stopped --stop-timeout 300 -p 28968:28967/tcp -p 28968:28967/udp -p 127.0.0.1:14003:14002 -e ADDRESS=“redacted”:28968” -e WALLET=“redacted”” -e EMAIL="rst@mac.com" -e STORAGE=“3.5TB” --mount type=bind,source=“C:\Users\STORj\AppData\Roaming\Storj\Identity\storagenode”,destination=/app/identity --mount type=bind,source=“E:\storjC2”,destination=/app/config --name storagenode2 storjlabs/storagenode:latest

config.yaml for the first node
console.address: :14002
contact.external-address: “redacted”:28967”
operator.email: “rst@mac.com
operator.wallet: “redacted”
server.address: :28967
server.private-address: 127.0.0.1:7778
storage.allocated-disk-space: 3.50 TB

config.yaml for the second node
console.address: :14003
contact.external-address: "redacted”:28968”
operator.email: “rst@mac.com
operator.wallet: “redacted”
server.address: :28968
server.private-address: 127.0.0.1:7779
storage.allocated-disk-space: 3.50 TB

Can anyone spot my error?

Any errors in the log?

You don’t need to and should not forward these ports.

The mistakes above should not affect the nodes, only the dashboard could not reachable. First you forward port 14003 to 14002, which is the port of the dashboard of storagenode1 outside the container. The console.address you should leave at 14002. But again, don’t make the dashboard reachable from the Internet. Use a VPN if you need to access it from outside.

No need to change that port. This port is inside the container and can be the same for both storagenodes.

Edit: now I spotted the error

Leave that at 28967. This is the port inside the container.

2 Likes

Hello @rstonge,
Welcome to the forum!

Since you use docker, and do not use --network host, you should not modify config.yaml of these nodes at all.

So please reset the config for the second node to defaults.
To have an access to your dashboard from another devices you should not publish the dashboard port, use either this method: How to remote access the web dashboard - Storj Docs or [Tech Preview] Multinode Dashboard Binaries

this typo is fixed in the documentation, thank you!

1 Like

Thanks Alexey, I’ve removed the port forwarding for ports 4200 and 4300. Then I deleted the storagenode2 with:

docker stop -t 300 storagenode2
docker rm storagenode2

Then I ran this in the terminal:

docker run --rm -e SETUP=“true” --mount type=bind,source=“C:\Users\STORj\AppData\Roaming\Storj\Identity\storagenode”,destination=/app/identity --mount type=bind,source=“E:\storjC2”,destination=/app/config --name storagenode2 storjlabs/storagenode:latest

After that:

docker run -d --restart unless-stopped --stop-timeout 300 -p 28968:28968/tcp -p 28968:28968/udp -p 127.0.0.1:14002:14003 -e ADDRESS=“redacted:28968” -e WALLET=“redacted” -e EMAIL="rst@mac.com" -e STORAGE=“3.5TB” --mount type=bind,source=“C:\Users\STORj\AppData\Roaming\Storj\Identity\storagenode”,destination=/app/identity --mount type=bind,source=“E:\storjC2”,destination=/app/config --name storagenode2 storjlabs/storagenode:latest

Everything looks fine in the Docker Desktop App, but I get an Offline Node and a misconfigured QUIC.

Thanks,

You are not using the same identity for both nodes, are you?

Please never run this command for the worked node, you can destroy it, if you provide a wrong path to the identity or data location. Setup must be executed only once for the entire node’s life.

If you did provide the default values for what you have changed in the config.yaml, then these ports are wrong

they must be

-p 28968:28967/tcp -p 28968:28967/udp -p 127.0.0.1:14003:14002

You should change only host’s ports (left part before the colon), not container’s ports.

I wonder whether a better name for that SETUP variable would be CREATE_NEW_NODE, or something even more direct?

3 Likes

Sorry I meant to reply to the identity question from jammerdan > Yes!? Is it a bad thing?

Both are Online. Thanks!
Is there a way to start docker engine without starting the Docker Desktop at startup?

1 Like

Since you are on Windows, and uses Docker Desktop for Windows, it should be running to run docker containers.
You may configure a Windows Task Scheduler to run a Docker Desktop application on startup. But in this case the Docker Desktop UI would not be available anymore.

The alternative is to setup docker without a Docker Desktop in WSL2, CLI only. However, you would need to run wsl2 on startup. The other way is to use a Hyper-V Linux VM, install there docker and configure Hyper-V to start your VM automatically.

Okay, I’ll keep the Docker Desktop Window :wink:

Yes. Every node needs its own unique identity.
If you run multiple nodes with the same identity they get disqualified in no time.

1 Like

You may close the window, the Docker Desktop will be in your System Tray. Just make sure it’s running.

Yes, very bad. You must generate an own identity for each node and sign them with an own authorization token, otherwise it will be the same identity and will be disqualified within a hour.

Checkmark the first box to start docker desktop after login (you would have to configure your windows to auto-login after boot)
Also check the second last box on this page (not part of the screenshot) to start docker silently without showing the UI. You can still open the UI by clicking on the icon in the tray bar or what ever that is called in English.

2 Likes

I’ve made a FireWall rule for ports 28968, create a second identity, but my 2nd node is still Offline and QUIC don’t even show.

Can somebody check what I’ve missed?

docker run --rm -e SETUP=“true” --mount type=bind,source=“C:\Users\STORj\AppData\Roaming\Storj\Identity\storagenode2”,destination=/app/identity --mount type=bind,source=“E:\storjC2”,destination=/app/config --name storagenode2 storjlabs/storagenode:latest

docker run -d --restart unless-stopped --stop-timeout 300 -p 28968:28967/tcp -p 28968:28967/udp -p 0.0.0.0:14003:14002 -e ADDRESS=“Redacted:28968” -e WALLET=“Redacted” -e EMAIL="rst@mac.com" -e STORAGE=“3.5TB” --mount type=bind,source=“C:\Users\STORj\AppData\Roaming\Storj\Identity\storagenode2”,destination=/app/identity --mount type=bind,source=“E:\storjC2”,destination=/app/config --name storagenode2 storjlabs/storagenode:latest

Did you revert changes in the E:\storjC2\config.yaml file? You may rename this file and copy it from the first node, it should be almost empty or commented out except few lines.
However, if you did run a setup step with an absent config.yaml in that location, it should be created from scratch.

Now you need to make sure that you forwarded 28968 TCP+UDP ports on your router to 28968 TCP+UDP ports on your host.
Please also check your logs for errors: How do I check my logs? - Storj Node Operator Docs

It works, thanks! Now for the 3rd Node. I created a port forwarding for port 28969, a firewall rule and a 3rd identity. Can I ask you to validate my Docker run cmd for my 3rd node?

docker run --rm -e SETUP=“true” --mount type=bind,source=“C:\Users\STORj\AppData\Roaming\Storj\Identity\storagenode3”,destination=/app/identity --mount type=bind,source=“F:\storjC3”,destination=/app/config --name storagenode3 storjlabs/storagenode:latest

docker run -d --restart unless-stopped --stop-timeout 300 -p 28969:28967/tcp -p 28969:28967/udp -p 0.0.0.0:14003:14002 -e ADDRESS=“Redacted:28969" -e WALLET=“Redacted” -e EMAIL="rst@mac.com" -e STORAGE=“2.5TB” --mount type=bind,source=“C:\Users\STORj\AppData\Roaming\Storj\Identity\storagenode3”,destination=/app/identity --mount type=bind,source=“F:\storjC3”,destination=/app/config --name storagenode3 storjlabs/storagenode:latest

https://forum.storj.io/t/my-docker-run-commands-for-multinodes-on-synology-nas/22034

Check this, especialy the ports.

this should be changed, for example

-p 14004:14002

(I also removed the redundant 0.0.0.0 address)