gitmyhub

tunasync

★ 0 updated 5y ago ⑂ fork

Mirror job management tool.

Tunasync is a tool for managing software mirrors at scale. Think of it like a smart scheduler that automatically keeps copies of software repositories up to date across multiple machines. If you run a mirror service—whether for Linux distributions, programming libraries, or any other frequently-downloaded content—tunasync handles the coordination, scheduling, and monitoring so you don't have to.

The system has two main parts working together. A central Manager keeps track of what jobs need to run and their status, while Workers are the machines that actually do the syncing work. The Manager communicates with Workers through a simple API, telling them when to start or stop a mirror job, and the Workers report back with status updates. Behind the scenes, a database called BoltDB stores all this information about jobs and their states. When a job runs, it goes through several stages: first a pre-sync step, then the actual sync operation (pulling the latest data from the source), then post-processing steps that differ depending on whether the sync succeeded or failed.

Organizations that run mirror services—like universities with campus networks, Linux distributions maintaining multiple global mirrors, or package repositories—would use this tool to manage dozens or hundreds of sync jobs reliably. Instead of manually kicking off scripts or maintaining separate scheduling systems on each machine, they configure tunasync once and let it handle starting jobs on schedule, retrying failures, and tracking what's working and what isn't. The tool comes pre-built for Linux on both standard x86 and ARM processors, so it works on most server setups.

The project is designed to be pragmatic and observable: it tracks job status through multiple stages so operators can see exactly where a sync is failing, and the Manager-Worker split means you can scale up by adding more workers without overloading a single machine. The README doesn't go into extensive detail on advanced features, but the core idea is straightforward—centralized control for distributed mirror work.