mirror of
https://github.com/tuna/tunasync.git
synced 2025-04-21 04:42:46 +00:00
46 lines
1.5 KiB
Markdown
46 lines
1.5 KiB
Markdown
tunasync
|
|
========
|
|
|
|
## Design
|
|
|
|
```
|
|
# Architecture
|
|
|
|
- Manager: Centural instance on status and job management
|
|
- Worker: Runs mirror jobs
|
|
|
|
|
|
+----------+ +---+ worker configs +---+ +----------+ +----------+
|
|
| Status | | |+-----------------> | w +--->| mirror +---->| mirror |
|
|
| Manager | | | | o | | config | | provider |
|
|
+----------+ | W | start/stop job | r | +----------+ +----+-----+
|
|
| E |+-----------------> | k | |
|
|
+----------+ | B | | e | +------------+ |
|
|
| Job | | | update status | r |<------+ mirror job |<----+
|
|
|Controller| | | <-----------------+| | +------------+
|
|
+----------+ +---+ +---+
|
|
|
|
|
|
# Job Run Process
|
|
|
|
+-----------+ +-----------+ +-------------+ +--------------+
|
|
| pre-job +--+->| job run +--->| post-job +-+-->| post-success |
|
|
+-----------+ ^ +-----------+ +-------------+ | +--------------+
|
|
| |
|
|
| +-----------------+ |
|
|
+------+ post-fail |<---------+
|
|
+-----------------+
|
|
```
|
|
|
|
## TODO
|
|
|
|
- [ ] split to `tunasync-manager` and `tunasync-worker` instances
|
|
- use HTTP as communication protocol
|
|
- Web frontend for `tunasync-manager`
|
|
- [ ] start/stop/restart job
|
|
- [ ] enable/disable mirror
|
|
- [ ] view log
|
|
- [ ] config file structure
|
|
- [ ] support multi-file configuration (`/etc/tunasync.d/mirror-enabled/*.conf`)
|
|
|