Profile
Back to NewsBack
GitHub Trending 1 min
Reader Mode
tuna/tunasync: Mirror job management tool.

tuna/tunasync: Mirror job management tool.

5 hours ago

tunasync

!Build Status Coverage Status</a> Commitizen friendly</a> !GPLv3

Get Started

Download

Pre-built binary for Linux x86_64 and ARM64 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

Go version: 1.26

# for native arch
> make all

for other arch

> make ARCH=linux-arm64 all

Binaries are in build-$ARCH/, e.g., build-linux-amd64/.

Chat with me