TrueNAS SCALETrueNAS SCALE Nightly Development Documentation
This content follows experimental early release software. Use the Product and Version selectors above to view content specific to a stable software release.

Storj

This Community App article provides installation instructions using the legacy TrueNAS SCALE Applications screen. SCALE 23.10 (Cobia) introduces new Installed and Discover screens for applications. See Apps and Applications Screens to learn how to install applications using these screens.

Community applications are created and maintained by members of the TrueNAS community. Similarly, community members actively maintain application articles in this section. Click Edit Page in the top right corner to propose changes to this article.

Storj is an open-source decentralized cloud storage (DCS) platform. Storj permits a computer running this software to configure the system as a node and to rent unused system storage capacity and bandwidth to other users.

Before You Begin

Before you can configure your system to act as a Storj node:

  1. Review the Storj node hardware and bandwidth considerations at Storj Node.

  2. Update TrueNAS SCALE to the latest public release.

  3. Create a wallet address.

  4. Generate a Storj authentication token.

  5. Configure your router and firewall. Open ports on your router and configure port forwarding. Configure firewall rules to allow access for these ports.

    • Default 20988
    • Open 28967 for both TCP and UDP.
    • Open ports 7777 and 8888 for outbound communication.

    Alternatively, use a dynamic DNS (DDNS) service such as NoIP to to create a host name if you do not have a static IP address for the system nodes.

  6. Create a publicly-available domain name to access the Storj application. Point this to your router public IP address.

  7. Create a Storj identity and authorize it for every node. Every node must have a unique identifier on the network. Use NFS/SMB shares or or a file transfer service such as FTP to upload the credentials generated. If the identity is not present on the storage directory, it generates and authorizes one automatically. This can take a long time and consume resources of the system while it generates one.

  8. Install the Storj application in SCALE.

Storj provides a Quickstart Node Setup Guide with step-by-step instructions to help users create a Storj node.

Getting a Wallet Address

Use Google Chrome MetaMask extension to create a wallet address, or if you already have one, you can use the exiting wallet. See Storj Wallet Configuration.

Special considerations regarding how to protect and manage a wallet are outside the scope of this article.

Generating an Authentication Token for Storj

Open a browser window and go to Storj Host a Node. Enter an email address to associate with the account, select the I’m not a robot checkbox, then click Continue.

Storj Host a Node
Figure 1: Storj Host a Node

Copy the auth token to use later in this procedure. Keep this token in a secure location.

Configuring the Router and Firewall

To allow the Storj application to communicate with Storj and the nodes, configure your router with port forwarding and the firewall to allow these ports to communicate externally:

  1. Add a new port forwarding rule to your router for:
    • 28967 for both TCP and UDP protocols
    • 7777 for outgoing communication with the satellites
    • 8888 for outgoing communication while creating and signing the identities.
  2. Enter the internal IP address of your TrueNAS system in Destination Device.
  3. Enter 20988 in Public and Private ports for both TCP and UDP for the Protocol.

With the TrueNAS system up and running, then check your open port using something like https://www.yougetsignal.com/tools/open-ports/. If your port forwarding is working, port 20988 is open.

This enables QUIC, which is a protocol based on UDP that provides more efficient usage of the Internet connection with both parallel uploads and downloads.

Creating a DDNS Host Name

Create a DDNS host name that points to your router WAN IP address, and provide a domain name to use for access the Storj application. You can use a dynamic DNS service that allows you to set up a DDNS host name. You can use a service such as NoIP to create a domain name (i.e., name.ddns.net) and then point it at the WAN IP address of your router.

Use nislookup name.ddns.net to verfiy it works.

Creating the Storj Datasets on TrueNAS SCALE

Create three new datasets, one a parent to two child datasets nested under it.

  1. Log into TrueNAS SCALE, then go to Datasets and click Add Dataset to open the Add Dataset screen.
Add Dataset Storj SCALE
Figure 2: Add Dataset Storj SCALE
  1. Enter a name for the first dataset in Name. For example, storj-node, and click Save.

  2. Select the new dataset storj-node, click Add Dataset again to create a new child dataset. For example, config.

  3. Click Save.

  4. Select the storj-node dataset again, click Add Dataset and create the second child dataset. For example, identity.

  5. Click Save.

Nested Dataset Storj SCALE
Figure 3: Nested Dataset Storj SCALE

TrueNAS displays two nested datasets config and identity underneath the storj-node dataset.

Installing the Storj App

Go to Apps, click on Available Applications, then scroll down to the Storj application, and click Install to open the Storj configuration wizard.

Install Storj App SCALE
Figure 4: Install Storj App SCALE
  1. Accept the default name or enter a new name for your Storj application.

    You can enter a name for the Storj app using lowercase alphanumeric characters that begin and end with an alphanumeric characters. Do not use a hyphenas the first or last character. For example, storjnode, or storj-node, but not -storjnode or storjnode-.
Name Storj App SCALEL
Figure 5: Name Storj App SCALE
  1. Enter the wallet address in Configure Wallet for Storj.
Config Storj App SCALE
Figure 6: Config Storj App SCALE
  1. Enter the authentication token copied from Storj in Configure Auth token for Storj Node. Enter the email address associated with the token in Configure Email for Storj.

  2. Enter the storage domain (i.e., the public network DNS name) added for Storj in Add Your Storage Domain for Storj. If using Dynamic DNS (DDNS), enter that name here as well. For example, name.ddns.net.

  3. Accept the default values in Owner User ID and Owner Group ID.

  4. Configure the storage size (in GB) you want to share. Enter the value in Configure Storage Size You Want to Share in GB’s.

Allocate Storage Storj App SCALE
Figure 7: Allocate Storage Storj App SCALE
  1. Enter the host paths for the new datasets created for the Storj application. Select Enable Custom Host Path for Storj Configuration Volume and browse to the newly created dataset (config). Next, select Configure Identity Volume for Storage Node and browse to the second newly created dataset (identity).

  2. Enter the web port 28967 in Web Port for Storj, and 20988 in Node Port for Storj.

Network Settings Storj App SCALE
Figure 8: Network Settings Storj App SCALE
  1. Review your entries and then click Save.

The time required to install the Storj App varies depending on your hardware and network configuration. When complete, the Installed Applications screen displays the Storj app with the status of active.

Enviromental variables are optional. If you want to include additional variables, see Storj Environment Variables for a list. Click Add for each variable you want to add.

Using the Web Portal

Click the Web Portal button to view additional details about the application.

The Storj Node dashboard displays stats for the storage node. These could include bandwidth utilization, total disk space, and disk space used for the month. Payout information is also provided.