oleg-st / DevSync

DevSync is a tool for real-time one-way files synchronization
MIT License
16 stars 5 forks source link

DevSync

DevSync is a tool for real-time one-way files synchronization
The realsync alternative.
DevSync uses its own synchronization protocol instead of rsync. It works much faster than realsync.

Requirements

.NET Core 3.1+ runtime on the client and server.
Supported operating systems are Linux, macOS or Windows (the same as .NET Core).

Installation:

Download DevSync.zip file from Releases and unzip to any place.
Run using dotnet DevSync.dll (all platforms) or DevSync (windows).

Mac OS (brew):
brew install --cask dotnet

Install DevSync for .NET 5:
brew install oleg-st/devsync/devsync5

or install DevSync for .NET 6:
brew install oleg-st/devsync/devsync6

Run using the DevSync command

You must have private key file to use public key authentication.
To automatically configure public key authentication, you can use the --authorize-key option. You will need to log in with the password once. If you do not have key pairs, they will be generated.

Usage

Synchronize source directory to destination directory with exclude file:
dotnet DevSync.dll <source> <destination> <exclude file>

Synchronize using .realsync config file:
dotnet DevSync.dll --realsync <source>

Examples:

dotnet DevSync.dll --realsync /home/user/project
DevSync.exe "d:\work\project" user@server.dev:/home/user/project exclude-list.txt

How it works

DevSync runs on the client, it monitors file changes and sends data to DevSyncAgent.
DevSyncAgent runs on the server, executes DevSync commands, applies the changes.
DevSyncAgent is deployed to ~/.devsync on the server (requires about 45kb).

You can use an external ssh client using the --external-ssh switch.
External ssh launch command:
ssh -T -o 'EscapeChar none' -o 'ServerAliveInterval 30' -i <key path> -l <username> <server name>