Synchronized Storage

A storage, or Network Attached Storage (NAS), is a device accessible by the hub through the network using the SSH protocol. It can be located behind an Internet service provider or in a data center.
Storage Main Panel
The storage's main panel is divided into 4 sections:

Geographic Map
This map shows the location of the storages, their hub and the links between them. It is centered on the current storage. The localization of the storage is approximated according to its specified hostname, using a IP2GEO service.
Note
The localization can be specified manually using the geoloc key (see below).
Channels Explorer
This interface let you explore the configured synchronisation channels between the storage and its hub. Multiple channels can be expanded to read several channels at a glance using the and buttons.
An channel's status is shown using a (activated) or a (deactivated) icons. You can toggle a channel on and off by pressing this button.
The direction of the transmission is shown using up (upload) and down (download) arrow icons. The current transmission activity is shown using a blinking arrow, and the color of the arrows fades with time.

Note
Some important rsync options are shown on the link line like the eraser icon which means that the --delete rsync option is used for that link.
Note
Mouse over the up or down arrows to see when the link finished and how long it took to process
upload finished on 23-12-15 11:19:03+00:00
duration 9"
Read the rsync filters and the rsync options sections for more details about the links and how to configure them.
Rsync Options
This interface let you configure the rsync options on the volume scope. These options will be used on every links that connects the volume. You can specify some options for a specific direction only.

Read the rsync options section for more details.
Health Status

Storage Parameters

The parameters are described below.
Name (system)
Note
A short code name used to identify this volume among the other storages of the project. This name is a string from 3 to 16 character long containing lowercase characters and numbers. The exact accepted regex pattern is ^[a-z0-9_]{3,16}$.
Tip
Example:
1prod
Long Name
Note
A longer name, often the real long name with no size limit, used for the titles in documents.
Tip
Example:
Studio 1 - Producer
Short Name
Note
A shorter name, used when the display needs a more consise form.
Tip
Example:
Studio1 Prod
Identifier
Note
An automatically generated string to identify the storage of the form: vol_# where # is a Universally Unique Lexicographically Sortable Identifier.
Tip
Example:
vol_01FWEWD03P3J2H98TQ0Y4AXF3H
Host Name
Note
Host name or IP address of the machine host.
Tip
Example:
81.212.56.8
or
studio1.yourdomain.com
SSH Port Number
Note
The network port configured to access the storage using the SSH protocol. 22 is the default SSH port. You can indicate another port number if it is different from the default port.
Note
:shield: In a normal configuration, this port will only be accessed by the project's server hub. To increase security you can authorize its IP address only in your firewall configuration.
User Name
Note
User account on the machine host.
Note
Install the provided public SSH key under .ssh/authorized_keys in the user's home directory. This key is used by the hub to access the storage without password.
Note
The rsync command must be installed on the system and accessible through this user's shell.
Path
Note
The configured path to access the storage's files.
Tip
Example:
/folder/
Note
A file named .SyncPlanetVolumeRoot in the storage's root folder is mandatory to start the file transfers. This allows the synchronization agents to verify that the folder is ready and mounted.
Shell
Note
A command to use in place of the native shell. This is useful if the service is ran inside a docker container.
Tip
Example:
/share/bin/docker exec -i centos-1 bash
Programming Interface
The storages are described as JSON objects that you can modify using the API.
{
"_id": "vol_01FWEWD03P3J2H98TQ0Y4AXF3H",
"agentExitTime": "2023-10-05 13:33:39+00:00",
"agentStartTime": "2023-10-05 15:05:29+00:00",
"agentStatus": "on",
"author": "support",
"bytesRemaining": 18691697672,
"bytesTotal": 43980465111,
"bytesUsed": 25288767438,
"comment": "\n",
"hostname":"yourstudio.eu",
"image": "syncplanet/sync2:1.1.1",
"enable": true,
"error": 0,
"geoloc": [2.38333,48.91667],
"lastConnectionStatusChange": 1696512782000,
"lastErrorStatusChange": 1696512782000,
"longName": "Studio 1 - Producer",
"name": "1prod",
"port":3222,
"rsync_args": "",
"shell": "",
"shortName": "Studio1 Prod",
"time": 1603117017286,
"username": "sync",
"version": "1.1.1"
}
You can read environment setup page and API for details about how to setup a client and start programming.
Storage Setup
A connected storage is a standard volume configured to be accessible from the remote synchronization agents running on the hub. The volume sould be sized accordingly to the project needs, expandable or shrinkable later on the fly.
1. Configure a Server
It consists in a machine running:
The rsync command should be accessible in the user's shell.
2. Open a Network Port
Please open a port for SSH on your firewall to the machine you will use to serve the files.
Note
The central hub server is the only remote machine to access the volume and you may authorize only this server to increase security.
Please indicate the port number you will open if it is different from the default port 22.
Once each step is completed we have a complete URL to access the storage:
ssh://username@hostname:port/folder
3. Configure the synchronization
- Install the central synchronization hub's public ssh key (into the user's
authorized_keysunder the user account) - Create an empty file named
.SyncPlanetVolumeRootin the volume's root folder
Note
We don't use passwords, to improve security.
Note
The .SyncPlanetVolumeRoot file allows the synchronization agents to verify that we are in the right folder. is mandatory to start the synchronization process.
Next
You might continue reading:
- Try a demo storage
- Continue reading the documentation about the channels
- Continue reading about the hubs
- Read the troubleshooting to debug a storage