Using NextCloud’s support for S3 compatible primary storage is the best way to integrate Tardigrade with NextCloud. This will deliver higher performance, and circumvent the doubling of bandwidth cost that occurs when an app uses the S3 gateway instead of the uplink API.
Since the NextCloud community is particularly conscious about data privacy and security, leveraging Tardigrade Cloud Storage means that data is encrypted in-transit (to Tardigrade) and at-rest with AES-256. The data does not leave your NextCloud server without being encrypted with a passphrase that is only known to you. This is a big win for zero-knowledge, encrypted cloud storage.
Create a Tardigrade account on the Satellite closest to you.
Create a new project. In this case we name our project “decentralizedstorage”. “Pioneer” beta accounts are limited to one project, but you can have numerous buckets under each project, which NextCloud can leverage in a multi-bucket configuration.
Create an API key for the project. This API key is used by the S3 gateway on your NextCloud server to authenticate to the Tardigrade satellite. Keep it safe for the next step.
Install the S3 gateway for Linux in the
/opt directory, or other directory of your choice.
cd /optcurl -L https://github.com/storj/storj/releases/latest/download/gateway_linux_amd64.zip -O && unzip gateway_linux_amd64.zip
cd /optcurl -L https://github.com/storj/storj/releases/latest/download/gateway_linux_arm.zip -O && unzip gateway_linux_arm.zip
Configure the S3 gateway by selecting the Satellite and entering your Tardigrade API key.
Using a utility such as screen, run the S3 gateway daemon in the background. For real world usage, a systemd service should be set up so that the daemon starts after each restart.
When the Minio API key and secret are displayed in the terminal, record them for Step 7.
Follow the usual steps to install NextCloud after adding the following configuration file to config/storage.config.php. We tested this configuration with NextCloud 17.0.2.
‘use_path_style’=> true is crucial for configuring Tardigrade with NextCloud, otherwise you will encounter an Internal Server Error when setting up with errors like “”Could not create object urn:oid” in data/nextcloud.log.
Also pay attention that
'use_ssl' => false because the Minio S3 gateway listens on localhost port 7777 so SSL is not necessary. These are the two main points that are different for setting up Tardigrade Cloud Storage versus Amazon S3, Wasabi, or other object stores with NextCloud.
<?php$CONFIG = ['objectstore_multibucket' => ['class' => 'OC\\Files\\ObjectStore\\S3','arguments' => ['num_buckets' => 64,'bucket' => 'storj','autocreate' => true,'key' => 'AAAAAAAAAAAAAAAAAAAAAAAA','secret' => ' AAAAAAAAAAAAAAAAAAAAAAAA','hostname' => '127.0.0.1','port' => 7777,'use_ssl' => false,'region' => '',// required for some non Amazon S3 implementations'use_path_style'=> true,],],];
Be patient (and do not close the browser window or refresh) after you click finish on the NextCloud setup wizard while it creates the objects for the initial user account on Tardigrade Cloud Storage. It can take a few minutes due to the decentralized nature of Tardigrade storage. The performance should improve as Tardigrade ramps up its network as production launches.
This is how the objects stored in the S3 backend by NextCloud using Tardigrade looks like.
You can start uploading files into your personal storage vault with NextCloud – now decentralized with the power of Tardigrade Cloud Storage and the Storj coin.
Like with other object storage providers, all future NextCloud user accounts created on this instance will have their user data stored on Tardigrade Cloud Storage. Only in this case, the storage backing is decentralized and resilient, based on sharding the data to 30 storage nodes using Reed-Solomon erasure coding and Ethereum blockchain technology.