Synchronization Hub

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's volume details
- Geographic Map
- Storages / Channels Explorer

Volume Details
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
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
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

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

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

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.