tunasync
Get Started
Download
Pre-built binary for Linux x86_64 is available at Github releases.
Design
# Architecture
- Manager: Central instance for status and job management
- Worker: Runs mirror jobs
+------------+ +---+ +---+, Client API, Job Status, +----------+ +----------+
+------------+, +----------------->, --->, mirror +---->, mirror, +------------+, w, config, provider, Worker API, H, o, +----------+ +----+-----+
+------------+, T, Job Control, r, +------------+, T +----------------->, k, +------------+, Job/Status, P, Start/Stop/..., e, mirror job, <----+, Management, S, r, +------^-----+
+------------+, Update Status, +---------+---------+
+------------+, <------------------+, Scheduler, BoltDB, +-------------------+
+------------+ +---+ +---+
# Job Run Process
PreSyncing Syncing Success
+-----------+ +----------+ +-----------+ +-------------+ +--------------+, pre-job +--+->, pre-exec +--->, job run +--->, post-exec +-+-->, post-success, +-----------+ ^ +----------+ +-----------+ +-------------+, +--------------+, +-----------------+, Failed
+----------------+ post-fail, <---------------+
+-----------------+
Building
Setup GOPATH like this.
Then:
go get -d github.com/tuna/tunasync/cmd/tunasync
cd $GOPATH/src/github.com/tuna/tunasync
make
If you have multiple GOPATH
s, replace the $GOPATH
with your first one.