Synchronisation Hub

Table of contents

Introduction

The central server is a hub which organises the file transfers between the connected storages. It is usually installed on a high availability physical machine in a datacenter to provide an optimal and continuous service.

The Hub page is divided into five tabs:

Hub main panel screenshot

Hub Overview

The main tab of the hub's graphical user interface is divided into 3 sections:

Storage Details

hub_title.png There you can find useful information such as the hub's long name, its space gauge, currently used space, total space, and free space.

Note

Developpers can access these values by reading the keys: longName, bytesRemaining, bytesTotal, bytesUsed

Geographic Map

2024-01-03-132618_334x199_scrot.png

The hub's location is shown as a blue marker on the map . Its connected storages are shown as green markers . Red markers indicate an error.

Note

The markers are positioned using an automated IP-address-to-geolocalisation service. This is approximate. A authenticated user with write permission (see below) can update the geoloc key to put a precise location if needed.

Storages / Channels explorer

2024-01-03-132046_583x445_scrot.png

This interface lets you explore the connected storages and synchronisation channels. Multiple channels can be expanded using the and buttons, allowing you to consult the details of several items.

An item's status is shown using a (activated) or a (deactivated) icons. You can toggle a channel on and off by clicking this button.

The direction of the transfer is shown using up (upload) and down (download) arrow icons. The current transfer activity is shown using a blinking arrow.

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.

Hub Parameters

The tab is divided into three sections:

Parameters

Hub parameters screenshot

Long name

A longer name, often the real long name with no size limit, used for the titles in documents.

Tip

Example: Movie Production

Short name

A shorter name, used when the display needs a more consise form.

Tip

Example: Demo

Name (system)

A short hub or project's code name used to identify the project among the other projects. The format accepts a string from 3 to 16 characters long, containing lowercase characters and numbers only (regexp = ^[a-z0-9_]{3,16}$).

Tip

Example: demo

Note

This name is used to name the project's configuration directory on disks and as a prefix for the docker containers that will be running. This is like a codename for your project, which helps you find the project among others if you have multiple projects. Try and use the shortest system name possible, 3 letters should be enough.

Tip

Example: you can choose the name sth if your project's name is Stitch Head. This way you will have a concise sth short and good name for the directory holding the configuration files.

Identifier

An automatically generated string to identify the hub of the form: hub_# where # is a Universally Unique Lexicographically Sortable Identifier .

Tip

Example: hub_01FX33ZYB78E9F5FTZMKC96A4P

SSH public key

The public part of the key used to make the SSH connections to the connected volumes. This key is dedicated to the hub and to the project.

Tip

Example: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC5Zg7MsLg4frCpHnuVY79Ne/6wxb2Ft/FCqnDPBdI5C demohub@syncplanet

Write permissions table

SyncPlanet is meant to be used by multiple users. This list contains all the users authorised to write and update an object. Developers can access the permissions table under the author key which can have a single user string value or have multiple user names in an array of username strings.

Note

If a user is not listed in the table, it means that you must first connect them to the project

Rsync options and filters

This interface at the bottom of the parameters lets you configure the rsync options for the hub to control many aspects of the file transfers. These options will be used on every link and storage connected to the hub. You can specify some options for a specific direction only.

2025-01-10-095540_588x544_scrot.png

Please check the rsync options page for further details.

Tip

An example for safe options on hub scope:

--recursive --times --update --omit-dir-times --stop-after=120

Rsync filters

The hub's rsync filters are also global and used on each rsync transfer. Visit the rsync filters page section for more details.

Tip

Here are the basic filters that could be applied on a typical project:

# Global RSYNC Filter Rules
# The filters below are applied first
# on every directions and volumes

# skip hidden files
- .*

# skip backup files
- *~

# skip potential malware
- *.dll
- *.exe

Notifications

Use these fields to receive notifications when errors occur. You can receive these notifications via e-mail or discord using a webhook.

Graph

This graph gives a visual overview of the current hub's connexions. It is dynamic and interactive.

2024-01-03-122358_1161x512_scrot.png

Hub Notes

This tab is used for personal notes regarding the hub.

Hub Programming Interface

This is the programming interface for the hub. The hub is described as JSON objects that you can modify using the API.


{
"_id": "hub_01FX33ZYB78E9F5FTZMKC96A4P",
"author": "support",
"bytesRemaining": 39450477204,
"bytesTotal": 57174604644,
"bytesUsed": 17724127439,
"comment": "# Movie Production Demo\n\nThis example is showing the data flows for a fictional 3D animated\nmovie production.",
"enable": true,
"error": 0,
"filters": "# Global RSYNC Filter Rules\n# The filters below are applied first\n# on every directions and volumes\n\n# skip hidden files\n- .*\n\n# skip backup files\n- *~\n\n# skip potential malware\n- *.dll\n- *.exe",
"geoloc": [3.17456,50.69421],
"hostname": "",
"image": "syncplanet/run:1.0.32",
"longName": "Movie Production",
"name": "demo",
"path": "/projects/demo/",
"rsaPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAXACAQBYinfRa2J3Yst6TzAwB3mZ7a/yD4VplB/g4QWAJ8C/CkPEtCOArlFj9kAD1rbsRwq1qPb5HqFf6bMM/OQeYxNMf2HGjwBnFxQujVlb10hkrncKUL9wvKhtwjsLd5lGLTqH7A7ioUHjepLFRd6ntitvDAPI9JlCZoELyCZNEGYAgtBflazTXSlgYGZO23xzfFDZt22I9F1FmN7iDG2NxYHrmHa2B0D1VgqLtHbgQEzsh6PtQNAoTCMI25lt9Sy2inSMqS18IfJIe1OaBGo7tCPwFFzk7EwqHaa7ECHGmh6tHLO4XJ/Sgc7VCJiW9OV1nMlc1HRA8KeVDcCqIWZXagBy3DzIj0+7Ul/rxuY9KHh4XynWRRW8gtUVDlDbnbUOnbCl51D7I4HfQJWEJrZP6ModX/baQRkTi9XufsogWaRNTPKDvFFT3kP316DMdrwuy/guNlpnWEQq/UG13+z8JoJPe60wiUn6qMuk5L4Ftq7pqDaVsMTKlZnUzvRkEBA1sUKlBJSIX4lX5B6Ol0AxOEOlP9wME2+Vaf3qu8XMMmymTQlTSIksc3Ltc5PTsHUBkK6WWE5+T3Z+ZEE9MyBYhqsXLyaxuGCybuBIk9VUislYPk+1y43o2qRIBSop4TA1kEQ89xeAwS8afuSMJ5a7Af3jX4IaGE1YAooPRolgliQT2w== demohub@syncplanet",
"rsync_args": "--times --update --omit-dir-times --recursive --compress",
"shortName": "Demo",
"time": 1639134611215,
"webhookURL": ""
}

Please see Environment-Setup and API for details on how to setup a client for Python, Javascript and Shell scripting.

Hub Setup

To set up a new hub, please see the following article on how to set up a hub

Next

Further reading: