{"id":15009316,"url":"https://github.com/tahoe-lafs/magic-folder","last_synced_at":"2025-04-09T17:23:28.203Z","repository":{"id":38191917,"uuid":"237040025","full_name":"tahoe-lafs/magic-folder","owner":"tahoe-lafs","description":"Tahoe-LAFS-based file synchronization","archived":false,"fork":false,"pushed_at":"2025-03-06T16:29:46.000Z","size":6163,"stargazers_count":27,"open_issues_count":73,"forks_count":8,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-03-30T13:23:14.800Z","etag":null,"topics":["linux","macos","networking","privacy","python27","security","synchronization","tahoe-lafs","twisted","windows"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tahoe-lafs.png","metadata":{"files":{"readme":"README.rst","changelog":"NEWS.rst","contributing":null,"funding":null,"license":"COPYING.GPL","code_of_conduct":"docs/CODE_OF_CONDUCT.rst","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-29T17:17:32.000Z","updated_at":"2025-03-06T16:29:51.000Z","dependencies_parsed_at":"2023-02-16T13:45:34.562Z","dependency_job_id":"ab9ed55c-3083-417c-ba0f-5a10de880933","html_url":"https://github.com/tahoe-lafs/magic-folder","commit_stats":{"total_commits":5133,"total_committers":38,"mean_commits":"135.07894736842104","dds":0.5737385544515878,"last_synced_commit":"65eed49d82adab83956213c554df871a52358875"},"previous_names":["leastauthority/magic-folder"],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tahoe-lafs%2Fmagic-folder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tahoe-lafs%2Fmagic-folder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tahoe-lafs%2Fmagic-folder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tahoe-lafs%2Fmagic-folder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tahoe-lafs","download_url":"https://codeload.github.com/tahoe-lafs/magic-folder/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247787585,"owners_count":20995930,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux","macos","networking","privacy","python27","security","synchronization","tahoe-lafs","twisted","windows"],"created_at":"2024-09-24T19:24:24.643Z","updated_at":"2025-04-09T17:23:28.197Z","avatar_url":"https://github.com/tahoe-lafs.png","language":"Python","funding_links":[],"categories":["Tools that work with Tahoe-LAFS"],"sub_categories":["Implementations"],"readme":"Magic Folder\n============\n\nMagic Folder for Tahoe-LAFS is a Free and Open file synchronization system.\nIt detects local changes to files and uploads those changes to a Tahoe-LAFS grid.\nIt monitors a Tahoe-LAFS grid and downloads changes to the local filesystem.\n\n|readthedocs|  |gha_linux|  |gha_macos|  |gha_windows|  |codecov|\n\nInstalling\n==========\n\nfor integrators\n^^^^^^^^^^^^^^^\n\nWhen packaging magic-folder, please install using our pinned requirements,\nwhich are tested in CI. This should be done in a virtualenv, or other\nisolated python environment, so as to not interfere with system or user\npython packages::\n\n    git clone https://github.com/LeastAuthority/magic-folder\n    cd magic-folder\n    pip install --require-hashes -r requirements/base.txt\n    pip install --no-deps .\n\n\nfrom source\n^^^^^^^^^^^\nTo install from source (either so you can hack on it, or just to run\npre-release code), you should create a virtualenv and install into that::\n\n    git clone https://github.com/LeastAuthority/magic-folder.git\n    cd magic-folder\n    virtualenv venv\n    venv/bin/pip install --upgrade setuptools\n    venv/bin/pip install --editable .\n    venv/bin/magic-folder --version\n\n\nUsage\n=====\n\nMagic-Folder is configured via the ``magic-folder`` command-line tool.\n\nMagic-Folder configuration is kept in a directory.\nThe default place for this directory is platform-dependant; on Linux it will be in ``~/.config/magic-folder``.\nInside this directory is a database for global configuration and sub-directories to track state and temporary space for each actual magic-folder including a configuration database.\nAll databases are SQLite.\n\nA running Magic-Folder needs to have access to a Tahoe-LAFS client that it may use to perform operations in the Tahoe-LAFS Grid.\nThis is referenced by the \"node directory\" of the Tahoe-LAFS client although actual operations are performed via the Tahoe-LAFS WebUI.\n\nThere are two ways to create a new Magic Folder instance (that is, the configuration required).\nCreate a fresh one with ``magic-folder init`` or migrate from a Tahoe-LAFS 1.14.0 or earlier instance with ``magic-folder migrate``.\n\nOnce a Magic-Folder is configured, functionality is provided by running a long-lived magic-folder daemon.\nThis process is run using the ``magic-folder`` command line tool::\n\n  magic-folder --config \u003cpath to Magic Foler directory\u003e run\n\nAs long as this process is running, whatever magic folders are configured will be functional.\nThe process must be restarted to read configuration changes.\nAll other interactions are via the HTTP API which listens on a local endpoint according to the configuration.\nOther ``magic-folder`` subcommands are typically just thin CLI wrappers around a particular HTTP endpoint.\n\n\nTesting\n=======\n\nTo run the unit test suite:\n\n* ``tox``\n\nYou can pass arguments to ``trial`` with an environment variable.  For\nexample, you can run the test suite on multiple cores to speed it up:\n\n* ``MAGIC_FOLDER_TRIAL_ARGS=\"-j4\" tox``\n\n\nDocumentation\n=============\n\nDocumentation is written as reStructuredText documents and processed\nusing Sphinx; you will need ``sphinx`` and ``sphinx_rtd_theme``.  To\ngenerate HTML version of Magic Folder documents, do:\n\n* ``cd docs; make html``\n\nResulting HTML files will be under ``docs/_build/html/``.\n\n\nLicense\n=======\n\nCopyright 2006-2018 The Tahoe-LAFS Software Foundation\nCopyright 2020-2021 The Magic-Folder Developers\n\nYou may use this package under the GNU General Public License, version 2 or,\nat your option, any later version. You may use this package under the\nTransitive Grace Period Public Licence, version 1.0, or at your option, any\nlater version. (You may choose to use this package under the terms of either\nlicence, at your option.) See the file `COPYING.GPL`_ for the terms of the\nGNU General Public License, version 2. See the file `COPYING.TGPPL`_ for\nthe terms of the Transitive Grace Period Public Licence, version 1.0.\n\nSee `TGPPL.PDF`_ for why the TGPPL exists, graphically illustrated on three\nslides.\n\n.. _OSPackages: https://tahoe-lafs.org/trac/tahoe-lafs/wiki/OSPackages\n.. _Mac: docs/OS-X.rst\n.. _pip: https://pip.pypa.io/en/stable/installing/\n.. _COPYING.GPL: https://github.com/tahoe-lafs/tahoe-lafs/blob/master/COPYING.GPL\n.. _COPYING.TGPPL: https://github.com/tahoe-lafs/tahoe-lafs/blob/master/COPYING.TGPPL.rst\n.. _TGPPL.PDF: https://tahoe-lafs.org/~zooko/tgppl.pdf\n\n----\n\n.. |readthedocs| image:: http://readthedocs.org/projects/magic-folder/badge/?version=latest\n    :alt: documentation status\n    :target: http://magic-folder.readthedocs.io/en/latest/?badge=latest\n\n.. |gha_linux| image:: https://github.com/leastauthority/magic-folder/actions/workflows/linux.yml/badge.svg\n    :target: https://github.com/LeastAuthority/magic-folder/actions/workflows/linux.yml\n\n.. |gha_macos| image:: https://github.com/leastauthority/magic-folder/actions/workflows/macos.yaml/badge.svg\n    :target: https://github.com/LeastAuthority/magic-folder/actions/workflows/macos.yaml\n\n.. |gha_windows| image:: https://github.com/leastauthority/magic-folder/actions/workflows/windows.yml/badge.svg\n    :target: https://github.com/LeastAuthority/magic-folder/actions/workflows/windows.yml\n\n.. |codecov| image:: https://codecov.io/github/leastauthority/magic-folder/coverage.svg?branch=main\n    :alt: test coverage percentage\n    :target: https://codecov.io/github/leastauthority/magic-folder?branch=main\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftahoe-lafs%2Fmagic-folder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftahoe-lafs%2Fmagic-folder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftahoe-lafs%2Fmagic-folder/lists"}