Storage Node

The Docker container that has the software you need to run your Storage Node.

Download the Storage Node Docker Container

docker pull storjlabs/storagenode:latest

Storage Node Concepts

Before running your Storage Node for the first time, please note the Storage Node concepts to be used.

Concepts

Description

-p

How to specify ports - which are points through which information flows between your Node and the Storj network.

-p 28967:28967 is the core port used to connect with the network.

-p 14002:14002 is the port used for the storage node GUI dashboard.

WALLET

A wallet address to receive STORJ token payouts for running the node. Learn how to obtain a valid payout address.

EMAIL

Email address so that we can notify you when a new version has been released. (recommended)

ADDRESS

External IP address or the DDNS you configured and the port you opened on your router <ip>:<port>

If you are using a custom port other than 28967, you have to change the -p 28967:28967 to -p <port>:28967

STORAGE

How much disk space you want to allocate to the Storj network

Be sure not to over-allocate space! Allow at least 10% extra for overhead. If you over-allocate space, you may corrupt your database when the system attempts to store pieces when no more physical space is actually available on your drive. The minimum storage shared requirement is 500 GB, which means you need a disk of at least 550 GB total size to allow for the 10% overhead.

<identity-dir>

Replace it to the location of your identity files. You can copy the absolute path from the output of the identity commands you ran earlier.

<storage-dir>

Replace it to the local directory where you want files to be stored on your hard drive for the network.

Please, consider to use a subfolder instead of the root of the disk, it could prevent starting from scratch if the disk is disappearing.

The network-attached location could work, but it is neither supported nor recommended!

Note: the current database backend is BoltDB, which requires mmap, hence you have to use a file system which supports mmap.

Running the Storage Node

The network-attached storage location could work, but it is neither supported nor recommended!

Previous versions of thedocker runcommand that used the -v rather than the --mount option will not work properly. Copy the updated command below.

Windows
Linux
macOS
Windows

1. Copy the command into a text editor:

docker run -d --restart unless-stopped --stop-timeout 300 -p 28967:28967 -p 127.0.0.1:14002:14002 -e WALLET="0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -e EMAIL="user@example.com" -e ADDRESS="domain.ddns.net:28967" -e STORAGE="2TB" --mount type=bind,source="<identity-dir>",destination=/app/identity --mount type=bind,source="<storage-dir>",destination=/app/config --name storagenode storjlabs/storagenode:latest
Linux

Linux Users: You must static mount via /etc/fstab. Failure to do so will put you in high risk of failing audits and getting disqualified. Here's how to do that.

1. Copy the command into a text editor:

docker run -d --restart unless-stopped --stop-timeout 300 \
-p 28967:28967 \
-p 127.0.0.1:14002:14002 \
-e WALLET="0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-e EMAIL="user@example.com" \
-e ADDRESS="domain.ddns.net:28967" \
-e STORAGE="2TB" \
--mount type=bind,source="<identity-dir>",destination=/app/identity \
--mount type=bind,source="<storage-dir>",destination=/app/config \
--name storagenode storjlabs/storagenode:latest
macOS

1. Copy the command into a plain text editor (do not use any word processors include Notes):

docker run -d --restart unless-stopped --stop-timeout 300 \
-p 28967:28967 \
-p 127.0.0.1:14002:14002 \
-e WALLET="0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-e EMAIL="user@example.com" \
-e ADDRESS="domain.ddns.net:28967" \
-e STORAGE="2TB" \
--mount type=bind,source="<identity-dir>",destination=/app/identity \
--mount type=bind,source="<storage-dir>",destination=/app/config \
--name storagenode storjlabs/storagenode:latest

2. Edit the WALLET, EMAIL, ADDRESS, STORAGE, <identity-dir>, and <storage-dir> with your parameters.

3. Copy the updated command.

4. Run it in a terminal window.

5. You're officially a Storage Node operator! 🎉

You can also check to see if the node was started properly by by running the following command in the terminal

docker ps -a

Check the status of your node

You can check the status of your node, along with many other statistics by running the web dashboard. It will look like this: