[Tech Preview] Linux Installer Part 2

For the first tech preview, we had to build the installer ourselves. This step is not needed anymore. We have an apt repository for you. With the following 3 commands, you can install a storage node.

echo "deb [trusted=yes] http://deb.storj.io buster-staging main" > /etc/apt/sources.list.d/storjlabs.list
sudo apt-get update
sudo apt-get install storagenode

Disqualification Warning
Don’t migrate docker nodes yet. It would require a surprising number of manual modifications. If you miss one your node will get disqualified. We are working on a guide that explains how to migrate a docker or windows node.

11 Likes

Fantastic! Cant wait to try this when I setup a new node. A couple of questions though…

1 - Do we need to do anything for existing Linux nodes we have already installed manually?
2 - Where will the config file be located which we need to edit to configure the node?

And what is the process for generating an identity? :slight_smile:

I would describe the Linux installer as a tool for people that don’t know much about Linux yet. It will help creating a linux service for storage node and updater. If you are able to create these services yourself I would recommend to not use the Linux installer. If you want to add a second node you are forced to do that manually anyway. So better get used to that as early as possible. With the Linux installer we hope to onboad less experiences Linux users and hopefully give them the knowledge that they need the Installer only once as some kind of template that they can study and reproduce later.

I believe /etc/storagenode/

2 Likes

Ah, so the installer doesn’t automate that process.
Thank you :slight_smile:

So there’s no support for having multiple nodes yet?

You can run the installer for your first node and just replicate the service files the installer has created for you.

1 Like

Do I need a separate updater service for every node on the machine or is the one enough?

From my experiments it looks like you need separate executables and updaters for every node. Unless I’m missing some configuration that can simplify this?

Does not work.
The installation does not complete.

Great. Can it be used also with Debian Bullseye?
And is there an idea of the moment there will be a migration documentation from a storage node running in docker?

1 Like

This installer doesn’t work with Ubuntu
It has ended with an error:

...
Setting up storagenode (0.0.0-1) ...
dpkg: error processing package storagenode (--configure):
 installed storagenode package post-installation script subprocess returned error exit status 30
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Errors were encountered while processing:
 storagenode
E: Sub-process /usr/bin/dpkg returned an error code (1)

Any update? Is it production-ready and compatible with Debian 12? Any guide to migrate from docker?

The migration is limited to provide a correct path to the identity and data.
Do you have any issues?

@Alexey where can I find documentation?
Or maybe you may help with converting this to config for deb-based storj installation?

docker run -d --restart unless-stopped -p 443:28967/tcp -p 443:28967/udp \
    -p 80:14002     -e WALLET="0xd***" \
    -e EMAIL="d***@g***.su"     -e ADDRESS="**.storj.ix.gs:443" \
    -e BANDWIDTH="4096TB"     -e STORAGE="250TB" \
    --mount type=bind,source="/opt/storj/id",destination=/app/identity \
    --mount type=bind,source="/opt/storj/data",destination=/app/config  \
    --mount type=bind,source="/opt/storj/db",destination=/db \
    --mount type=bind,source="/opt/storj/orders",destination=/orders \
    --name storagenode storjlabs/storagenode:latest

This package is not well built, it’s missed deps definitions as a minimum for wget and unzip, you must install this manually before storagenode package.

In general - you need to install all packages, provide all required parameters and use your local paths for the identity and data (for data you need to point to /opt/storj/data/storage), stop the service, then modify config.yaml to use your other local paths for orders and databases, then start the service.

You may also use this method: