[Tech Preview] Linux Installer

Same deal as with the multinode dashboard preview. We don’t have a pre build installer yet. The following comands include building the installer on your machine. This one should be a bit easier to execute and doen’t require as much skill as the multinode dashboard.

First build the installer we need to install debhelper for that:

apt-get update
apt-get install debhelper -y

git clone https://github.com/storj/storagenode-deb $HOME/storagenode-deb
cd $HOME/storagenode-deb/packaging
dpkg-buildpackage -us -uc -b

Now it is time to run the installer:

cd $HOME/storagenode-deb
dpkg -i storagenode_<some version number>.deb

The installer should request a bunch of information. The installer should fail to download the storage node and storagenode-updater binaries. As a workaround you can download these from our github release page. Even when the installer failes it should still create a config file and service files with the given information. We would love to get your feedback if that part is working.

The service files are located under /etc/systemd/system/multi-user.target.wants/storagenode.service and storagenode-updater.server

I am not an linux expert myself. In this situation I better let you figure out what else needs to be changed.

If you notice any bugs please report them here: GitHub - storj/storagenode-deb: Debian Packaging for Storj Storage Node

4 Likes

Did a really quick test on this on a Proxmox LXC container using the Debian 10 Buster template. It wasn’t the best test since I didn’t have an identity generated and I didn’t have 550GB space on this node.

The installer failed to download the binary as indicated in the OP. Having said that, no config file was generated in /etc/storagenode. Also, from the systemd service files in /lib/systemd/system it appears that the binaries are supposed to be in /var/lib/storagenode. This is also the default location indicated in the installer for stored data. Is it intended for the binaries to live with the data rather than a more typical location such as /usr/bin/? Or is /var/lib/storagenode the binary location even if I choose a different location for stored data?

Either way, I think it’s exciting that a deb installer is coming along! Thanks!

2 Likes

Looking at the dpkg postinst file answers all my above questions regarding what the installer will do if it could successfully download the binary:

  • Will symlink binaries into /usr/bin after downloading to /var/lib/storagenode.
  • Will copy identity files into /etc/storagenode/identity
  • Will run storagenode setup with the parameters stored from the installer questions

I understand how the deb is intended to work now. Thanks!

2 Likes

I see that this method does not support multiple nodes on a single system yet, unless the user configures it manually? Feels like /etc/storagenode.d/«nodename» coupled with systemd template unit files would be a nice approach. This is how the tinc package works and it’s pretty nice.

5 Likes

Good thought! We will discuss this feature with team, and might include this change in future. Thanks!

7 Likes

/etc/systemd/system/multi-user.target.wants/storagenode.service and storagenode-updater.server

Has there been any consideration for including the binary in the deb and maintaining an apt repo with versioned deb files? Or will the deb continue to be a skeletal installer-only package?

1 Like

I’m not a Storj engineer, but I suspect that Storj wants to keep the feature of staged releases, which would be difficult for a plain apt repository.

Yes, that makes sense.