Set Up Tardigrade with NextCloud Primary Storage

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 an Account

Create a Tardigrade account on the Satellite closest to you.

Create a Project

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

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

Install the S3 gateway for Linux in the /opt directory, or other directory of your choice.

macOS
Windows
Linux
macOS
insert here
Windows
insert here
Linux

AMD64

cd /opt
curl -L https://github.com/storj/storj/releases/latest/download/gateway_linux_amd64.zip -O && unzip gateway_linux_amd64.zip

ARM

cd /opt
curl -L https://github.com/storj/storj/releases/latest/download/gateway_linux_arm.zip -O && unzip gateway_linux_arm.zip

Configure the S3 Gateway

Configure the S3 gateway by selecting the Satellite and entering your Tardigrade API key.

macOS
Windows
Linux
macOS
uplink setup
Windows
./uplink_windows_amd64.exe setup
Linux

AMD64

./uplink_linux_amd64 setup

ARM

./uplink_linux_arm setup

Run the S3 Gateway

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.

macOS
Windows
Linux
macOS
./gateway_darwin_amd64 run
Windows
./gateway_windows_amd64.exe run
Linux

AMD64

./gateway_linux_amd64 run

ARM

./gateway_linux_arm run

Install NextCloud

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.

Tardigrade NextCloud Bucket object listing

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.

Tardigrade NextCloud login page
File stored on NextCloud with Tardigrade primary storage