Metadata-Version: 2.5
Name: seedboxsync
Version: 4.0.0
Summary: Application for sync operations between your NAS and your seedbox
Project-URL: Home, https://llaumgui.github.io/seedboxsync/
Project-URL: Documentation, https://llaumgui.github.io/seedboxsync/
Project-URL: Source, https://github.com/llaumgui/seedboxsync/
Author-email: Guillaume Kulakowski <guillaume@kulakowski.fr>
License-Expression: GPL-3.0-only
License-File: LICENSE
Keywords: ftp,nas,seedbox,sftp,sync
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Internet
Requires-Python: >=3.10
Requires-Dist: bcoding>=1.5
Requires-Dist: click>=8.4.2
Requires-Dist: flask-babel>=4.0.0
Requires-Dist: flask-caching>=2.4.1
Requires-Dist: flask-restx>=1.3.2
Requires-Dist: flask>=3.1.3
Requires-Dist: ftputil>=5.2.0
Requires-Dist: huey>=3.3.2
Requires-Dist: humanize>=4.16.0
Requires-Dist: paramiko>=5.0.0
Requires-Dist: peewee>=4.3.0
Requires-Dist: python-slugify>=8.0.4
Requires-Dist: tabulate>=0.10.0
Requires-Dist: typing-extensions>=4.16.0
Provides-Extra: dev
Requires-Dist: basedpyright>=1.39.9; extra == 'dev'
Requires-Dist: coverage>=7.15.4; extra == 'dev'
Requires-Dist: mkdocs-coverage>=2.0.0; extra == 'dev'
Requires-Dist: mkdocs-include-markdown-plugin>=7.3.0; extra == 'dev'
Requires-Dist: mkdocs-material>=9.7.7; extra == 'dev'
Requires-Dist: mkdocstrings-python>=2.0.5; extra == 'dev'
Requires-Dist: mypy>=2.3.0; extra == 'dev'
Requires-Dist: properdocs>=1.6.7; extra == 'dev'
Requires-Dist: pytest-cov>=7.1.0; extra == 'dev'
Requires-Dist: pytest>=9.1.1; extra == 'dev'
Requires-Dist: ruff>=0.16.1; extra == 'dev'
Description-Content-Type: text/markdown

# SeedboxSync

[![Author][ico-bluesky]][link-bluesky]
[![Software License][ico-license]](LICENSE)
[![Build Status][ico-ghactions]][link-ghactions]

[![Latest Version][ico-pypi-version]][link-pypi]
[![Docker Pull][ico-docker]][link-docker]
[![Latest Version][ico-version]][link-docker]

[![Quality Gate Status][ico-sonarcloud-gate]][link-sonarcloud-gate]
[![Coverage][ico-sonarcloud-coverage]][link-sonarcloud-coverage]
[![Maintainability Rating][ico-sonarcloud-maintainability]][link-sonarcloud-maintainability]
[![Reliability Rating][ico-sonarcloud-reliability]][link-sonarcloud-reliability]
[![Security Rating][ico-sonarcloud-security]][link-sonarcloud-security]

<p align="center">
  <a href="https://llaumgui.github.io/seedboxsync/" title="Documentation"><img alt="SeedboxSync logo" src="logo/128.png" /></a>
</p>

**SeedboxSync** is designed for users who run a NAS (Synology, TrueNAS, Unraid, Linux...) alongside a remote seedbox and want to automate torrent transfers without manual intervention.

**SeedboxSync** automates the complete lifecycle of your torrents between your NAS and your seedbox: upload `.torrent` files, download completed data, avoid duplicate transfers, and monitor everything from a web interface.

## Features

* **🔄 Torrent workflow automation**
    * Upload `.torrent` files from your NAS to your seedbox (blackhole directory).
    * Automatically download completed torrents back to your NAS.
* **📥 Smart download tracking**: Prevent duplicate transfers and keep track of downloaded torrents using an embedded SQLite database.
* **🌐 Web frontend**: Monitor your downloads and syncs in real-time through a user-friendly web interface.
* **📊 Statistics and reporting**: View monthly and yearly download statistics
* **🗄️ REST API**: Integrate SeedboxSync with your own tools and automation workflows.

## Screenshots

<div align="center">
    <table>
    <tr>
        <td align="center">
            <a href="./docs/images/screenshots/homepage.png"><img alt="Main page" src="./docs/images/screenshots/homepage.png" width="300"/></a>
            <br><em>Main page</em>
        </td>
        <td align="center">
            <a href="./docs/images/screenshots/downloaded.png"><img alt="Downloaded files" src="./docs/images/screenshots/downloaded.png" width="300"/></a>
            <br><em>Downloaded files</em>
        </td>
        <td align="center">
            <a href="./docs/images/screenshots/uploaded.png"><img alt="Uploaded torrents" src="./docs/images/screenshots/uploaded.png" width="300"/></a>
            <br><em>Uploaded torrents</em>
        </td>
    </tr>
    <tr>
        <td align="center">
            <a href="./docs/images/screenshots/info.png"><img alt="Informations" src="./docs/images/screenshots/info.png" width="300"/></a>
            <br><em>info</em>
        </td>
        <td align="center">
            <a href="./docs/images/screenshots/stats.png"><img alt="Statistics" src="./docs/images/screenshots/stats.png" width="300"/></a>
            <br><em>Statistics</em>
        </td>
        <td align="center">
            <a href="./docs/images/screenshots/settings.png"><img alt="Statistics" src="./docs/images/screenshots/settings.png" width="300"/></a>
            <br><em>Settings</em>
        </td>
    </tr>
    <tr>
        <td colspan="3" align="center">
            <a href="./docs/images/screenshots/api-spec.png"><img alt="API SPEC" src="./docs/images/screenshots/api-spec.png" width="300"/></a>
            <br><em>API</em>
        </td>
    </tr>
    </table>
</div>

## Full documentation

See: [https://llaumgui.github.io/seedboxsync/](https://llaumgui.github.io/seedboxsync/)

## Build with

<p style="text-align:center;">
  <a href="https://www.python.org"><img alt="Python logo" src="docs/images/python-powered-w-140x56.png" /></a> <a href="https://flask.palletsprojects.com"><img alt="Flask logo" src="docs/images/logo-flask.png" /></a> <a href="https://docs.peewee-orm.com"><img alt="peewee logo" src="docs/images/logo-peewee.png" /></a>
</p>

## License

Released under the [GPL v3](https://www.gnu.org/licenses/gpl-3.0.en.html).

[ico-bluesky]: https://img.shields.io/static/v1?label=Author&message=llaumgui&color=208bfe&logo=bluesky&style=flat-square
[link-bluesky]: https://bsky.app/profile/llaumgui.kulakowski.fr
[ico-ghactions]: https://img.shields.io/github/actions/workflow/status/llaumgui/seedboxsync/build-test-deploy.yml?branch=main&style=flat-square&logo=github&label=Build
[link-ghactions]: https://github.com/llaumgui/seedboxsync/actions
[ico-pypi-version]: https://img.shields.io/pypi/v/seedboxsync?include_prereleases&label=Package%20version&style=flat-square&logo=python
[link-pypi]:https://pypi.org/project/seedboxsync/
[ico-license]: https://img.shields.io/github/license/llaumgui/seedboxsync?style=flat-square
[ico-docker]: https://img.shields.io/docker/pulls/llaumgui/seedboxsync?color=%2496ed&logo=docker&style=flat-square
[link-docker]: https://hub.docker.com/r/llaumgui/seedboxsync
[ico-version]: https://img.shields.io/docker/v/llaumgui/seedboxsync?sort=semver&color=%2496ed&logo=docker&style=flat-square
[ico-sonarcloud-gate]: https://sonarcloud.io/api/project_badges/measure?branch=main&project=llaumgui_seedboxsync&metric=alert_status
[link-sonarcloud-gate]: https://sonarcloud.io/dashboard?id=llaumgui_seedboxsync&branch=main
[ico-sonarcloud-coverage]: https://sonarcloud.io/api/project_badges/measure?project=llaumgui_seedboxsync&metric=coverage
[link-sonarcloud-coverage]: https://sonarcloud.io/dashboard?id=llaumgui_seedboxsync
[ico-sonarcloud-maintainability]: https://sonarcloud.io/api/project_badges/measure?project=llaumgui_seedboxsync&metric=sqale_rating
[link-sonarcloud-maintainability]: https://sonarcloud.io/dashboard?id=llaumgui_seedboxsync
[ico-sonarcloud-reliability]: https://sonarcloud.io/api/project_badges/measure?project=llaumgui_seedboxsync&metric=reliability_rating
[link-sonarcloud-reliability]: https://sonarcloud.io/dashboard?id=llaumgui_seedboxsync
[ico-sonarcloud-security]: https://sonarcloud.io/api/project_badges/measure?project=llaumgui_seedboxsync&metric=security_rating
[link-sonarcloud-security]: https://sonarcloud.io/dashboard?id=llaumgui_seedboxsync
