Watch and sync files from client to server using NodeJS Socket.io.
Simple to configure - doesn't use SSH, just a secret text.
A single server can be connected to from multiple clients.
Install it both on client and the server:
npm install socket-file-syncsfs [mode] <[options]>-
mode[string](required)One of two:serversHost where files are uploaded toclientcHost where files are uploaded from, and watched for changes
This can also be provided as as a switch:
--mode server(instead of the 1st argument) -
secret[string](required)Secret to use for authentication.
client related options:
cwd[string](default:process.cwd())Current directory (on client) where files are watched onserver[string](required)The server address to which the client connects toserverDir[string](required)Base dir on the server w.r.t. to which files uploaded are written to
Common to both: These settings are common to both server and client and the roles of remotes are interchangeable - any one can send/receive a file.
-
twoWay[boolean]Enable two-way sync - server also watches for and pushes the file changes from its end.Note: With this enabled you may see "Skipping copying... Same contents" warnings which are an unfortunate by-product of preventing the file-watchers running on both ends to go in a feedback loop of re-sending the same file over and over again.
It needs to be enabled by both the server and the client.
-
deleteOnRemote[boolean]Enable deleting a file on the remote. The remote needs to havedeleteByRemoteenabled. -
deleteByRemote[boolean]Enable the remote to delete a local file.
Note: Necessary options are prompted if not provided.
Config is stored in two places:
-
~/.socket-file-syncMain config that applies across all projects -
<current-dir>/.socket-file-syncAn optional per-project config whose values override those in the main one.
-
On Server:
sfs server
-
On Client:
sfs client --server my-linode.com --server-dir ~/project