Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tuna/tunasync
Mirror job management tool.
https://github.com/tuna/tunasync
Last synced: 30 days ago
JSON representation
Mirror job management tool.
- Host: GitHub
- URL: https://github.com/tuna/tunasync
- Owner: tuna
- License: gpl-3.0
- Created: 2014-10-17T08:24:26.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2024-09-26T06:18:24.000Z (about 2 months ago)
- Last Synced: 2024-10-01T15:21:53.275Z (about 1 month ago)
- Language: Go
- Homepage:
- Size: 947 KB
- Stars: 1,581
- Watchers: 62
- Forks: 271
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# tunasync
![Build Status](https://github.com/tuna/tunasync/workflows/tunasync/badge.svg)
[![Coverage Status](https://coveralls.io/repos/github/tuna/tunasync/badge.svg?branch=master)](https://coveralls.io/github/tuna/tunasync?branch=master)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
![GPLv3](https://img.shields.io/badge/license-GPLv3-blue.svg)## Get Started
- [中文文档](https://github.com/tuna/tunasync/blob/master/docs/zh_CN/get_started.md)
## Download
Pre-built binary for Linux x86_64 and ARM64 is available at [Github releases](https://github.com/tuna/tunasync/releases/latest).
## Design
```text
# 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.13
```shell
> make all
```Binaries in the `build-linux-amd64/`.