Synchronization Hub

demohubmap.png

The central server is a hub which organizes 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.

Hub Main Panel

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

Hub main panel screenshot

Volume Details

hub_title.png Hub's Long Name, space gauge, used space, total space, free space

Note

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

Geographic Map

2024-01-03-132618_334x199_scrot.png The map shows the hub as a blue marker , the connected storages as green markers and a red marker means that there is an error.

Note

The markers are positioned using an automated IP-address-to-geolocalization 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 is an interactive user interface that lets you explore the storages and the syncs beneath them. The transmission activity is shown as a blinking icons and multiple syncs can be expanded to read several filters at a glance.

Hub Parameters

Hub parameters screenshot

Long Name

Note

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

Tip

Example: Movie Production

Short Name

Note

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

Tip

Example: Demo {.is-success}

Name (system)

Note

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, to know the project among others if you have multiple projects. The shorter system name possible is a good way, 3 letters could be sufficient.

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.

Tip

Example: you could choose the name leg if your project's name is Les Légendaires.

Identifier

Note

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

Note

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

Rsync Options and Filters

2025-01-10-095540_588x544_scrot.png

Using rsync options and filters you can control many aspects of the file transfers. The options and filters specified in the hub scope are applied on every rsync commands for every storages and links.

Rsync Options

Note

The options specified in the context of the hub are set on every file transfers involving this hub. Read more on the Rsync Options page.

Tip

An example for safe options on hub scope:

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

Rsync Filters

Note

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

The documentation have dedicated Rsync Options and Rsync Filters pages.

Write Permissions Table

SyncPlanet is multi-user: only the users specified as authors can write and update an object.

Note

If a user is not proposed in the table, it means that you first have to connect him/her to the project

Note

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.

Notifications

Note

Notify events such as a storage disconnections to users (usually administrators) using a list of email adresses and/or to a Discord channel using a webhook.

Hub Graph

2024-01-03-122358_1161x512_scrot.png

A view of the current's hub connections.

Hub Programming Interface

Note

The hubs are 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": ""
}

You can read Environment-Setup and API for details about how to setup a client for Python, Javascript and Shell scripting.

Next

You can try the hub demo interface or continue reading the documentation about the storages and the channels.