Skip to content

A mirroring/sync tool without having an active connection between sender and receiver

Notifications You must be signed in to change notification settings

siegy22/synchronist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Diagram

Rails

Synchronist is mirroring/sync tool which allows to send increments without having an active connection between them.

Installation

Right now the only way to easily install synchronist would be using docker. You can howevery deploy it from source if you want to. However instructions for that are not covered here.

Before you start, make sure you have docker (or podman) set up with docker-compose. See https://docs.docker.com/get-docker/

Choose location

We'll use /opt/synchronist in this example:

$ mkdir /opt/synchronist
$ cd /opt/synchronist

Install script

Run the install script (or download it, for inspection and run it manually):

$ sh -c "$(curl https://raw.githubusercontent.com/siegy22/synchronist/main/setup-deployment.sh)"

You'll need to specify the folders that should be exposed to synchronist, use comma-separated values to have multiple values.

Further configuration

The installation script prepared a docker-compose.yml in the current working directory. With the values pre-filled. If you want to change those at any point, feel free! The script is only here to have a quick start.

You also might wanna put this behind a reverse proxy to support https, I recommend using jwilder/nginx-proxy

Starting up!

$ systemctl start synchronist

# Or if you want to have it always running also after rebooting:
$ systemctl enable --now synchronist

Acess the web interface

Visit your server name with your configured port in a web browser and configure the application!

FAQ

How?

  • Using a so-called payload, the receiver generates the current state of the storage that it currently holds.
  • The payload then needs to be sent to the sender (not covered by synchronist)
  • The payload is parsed by the sender which will diff their current state with the payload
  • The sender puts the increment into a configurable folder
  • The increment then needs to be put into the receive folder on the receiver's end.
  • The receiver will put all the received data into the storage folder.

About

A mirroring/sync tool without having an active connection between sender and receiver

Resources

Stars

Watchers

Forks

Packages

No packages published