Skip to main content

Seafile Mirror

REUSE status The latest version of reuse can be found on PyPI. Information on what versions of Python the tool supports can be found on PyPI.

A Python tool to handle clean read-only (re-)syncs of Seafile libraries with the intention to mirror them.

Overview

If you have Seafile libraries, you may want to back them up in a safe place automatically.

One option is to snapshot/backup the whole server on which the library is stored. However, in some situations, this may not be feasible or even not possible.

This is why this repository offers a different way: you can define one or multiple Seafile libraries that shall be downloaded to a local directory. These libraries can belong to the same or a different user, and even on different Seafile servers!

Features

  • Download/sync defined libraries in customisable intervals
  • De-sync libaries immediately after they have been downloaded to avoid sync errors
  • Allow to force-re-sync a library even if its re-sync interval hasn't reached yet
  • Extensive informative and error logging
  • Created with automation in mind so you can run it in cronjobs or systemd triggers
  • Deal with the numerous caveats of seaf-cli and Seafile in general

Install

The tool depends on the following applications:

You can install the latest release via pip3 install seafile-mirror.

The tool is executable by seafile-mirror. The --help flag informs you about the required and available commands.

There is also an Ansible role that takes care of installing the tool via pipx, setting up a systemd service, and running it daily.

To keep the Seafile daemon that is required for seafile-cli running in the background, check out this exemplary systemd service.

Configuration

Configuration is done in a YAML file called seafile_mirror.conf.yaml. You can find an example here.

If that configuration file resides in the same location your current working directory, you should provide --configdir ./.

Logging and caching

The tool creates seafile_mirror.log in addition to the log to the standard output in the configuration directory. With -v you can print DEBUG messages that will help you in case of problems.

It also caches the current status of synced libraries and their latest full download in the file .seafile_mirror.db.json. Do not delete this file unless you don't mind that the tool will re-sync all libraries in the next run.

Contribute and Development

Contributions are welcome! The development is easiest with uv: uv sync and uv run seafile-mirror will get you started.

License

Apache-2.0, Copyright Max Mehl

Metadata

Release files for seafile-mirror 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for seafile-mirror 0.2.3
File Size Uploaded Provenance
seafile_mirror-0.2.3.tar.gz 8.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for seafile-mirror 0.2.3
File Interpreter ABI Platform
seafile_mirror-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 20.3 kB

Release files / seafile_mirror-0.2.3.tar.gz

Download URL seafile_mirror-0.2.3.tar.gz
Size 8.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ef9b122424a416af7d7dc4d204d99aa1a68a30cd213dbae066d949e01900d4fc
BLAKE2b-256 checksum
How to use checksums
f7ab2818d713ad333af44cb44f443c6dd37b7257298364f6aaab46a0d201cc0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 24, 2026.

Transparency log

Release files / seafile_mirror-0.2.3-py3-none-any.whl

Download URL seafile_mirror-0.2.3-py3-none-any.whl
Size 11.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
56e813a57311acdddb4295dbe2b9350b4329d6b07b2abab616f4c7ceb77e1281
BLAKE2b-256 checksum
How to use checksums
139efba2dd4f428d12b083ab7e8d59b5003277057ef107f41979a609c3946846
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 24, 2026.

Transparency log

Security for seafile-mirror 0.2.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for seafile_mirror-0.2.3.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 24, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page