![]() |
hai 6 meses | |
---|---|---|
.github | hai 8 meses | |
.umlrootfs | %!s(int64=2) %!d(string=hai) anos | |
.vscode | %!s(int64=5) %!d(string=hai) anos | |
autocomplete | %!s(int64=9) %!d(string=hai) anos | |
cmd | hai 8 meses | |
docs | %!s(int64=2) %!d(string=hai) anos | |
internal | hai 8 meses | |
manager | hai 8 meses | |
systemd | %!s(int64=9) %!d(string=hai) anos | |
tests | hai 8 meses | |
worker | hai 6 meses | |
.gitignore | hai 8 meses | |
.testpackages.txt | %!s(int64=9) %!d(string=hai) anos | |
LICENSE | %!s(int64=11) %!d(string=hai) anos | |
Makefile | hai 8 meses | |
README.md | hai 8 meses | |
go.mod | hai 6 meses | |
go.sum | hai 6 meses | |
package.json | %!s(int64=9) %!d(string=hai) anos |
Pre-built binary for Linux x86_64 and ARM64 is available at Github releases.
# 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 |<---------------+
+-----------------+
Go version: 1.22
# for native arch
> make all
# for other arch
> make ARCH=linux-arm64 all
Binaries are in build-$ARCH/
, e.g., build-linux-amd64/
.