The Tahoe-LAFS decentralized secure filesystem.
Go to file
2021-12-06 22:53:15 +01:00
.circleci maybe this is the right url 2021-09-29 15:48:33 -04:00
.github Merge branch 'master' of github.com:tahoe-lafs/tahoe-lafs into 3816.improve-release-checklist 2021-12-06 22:53:15 +01:00
docs Merge branch 'master' of github.com:tahoe-lafs/tahoe-lafs into 3816.improve-release-checklist 2021-12-06 22:53:15 +01:00
integration Merge remote-tracking branch 'upstream/master' 2021-11-04 10:02:54 -04:00
misc Get rid of getmem.py helper 2021-10-15 11:47:05 -04:00
newsfragments Merge branch 'master' of github.com:tahoe-lafs/tahoe-lafs into 3816.improve-release-checklist 2021-12-06 22:53:15 +01:00
nix update nix version 2021-12-05 00:51:13 -07:00
release-tools refactor more 2018-05-29 13:17:32 -06:00
src/allmydata Merge remote-tracking branch 'origin/master' into release-1.17.0 2021-12-06 11:27:34 -07:00
static Remove Nevow from the static script 2020-10-21 10:16:44 -04:00
.coveragerc This is probably a better way to handle multiple Python versions 2020-10-14 13:10:23 -04:00
.gitignore Hide all _trial_temp. 2021-11-17 11:09:45 -05:00
.pre-commit-config.yaml Only run codechecks on changed Python source files 2020-11-19 11:12:08 -05:00
.readthedocs.yaml Tell RTD how to install Sphinx. 2021-10-28 11:12:17 -04:00
CONTRIBUTORS.rst Add suggestion for Tahoe Committers 2021-05-07 16:10:24 +02:00
COPYING.GPL Fix repeated 'the' in license text. 2011-08-19 13:48:36 -07:00
COPYING.TGPPL.rst magic first line tells emacs to use utf8+bom 2013-11-08 21:08:05 +00:00
CREDITS add Florian 2021-12-05 00:53:50 -07:00
docker-compose.yml add dockerfile for hacking with docker compose file for local environment 2017-09-19 09:25:39 -07:00
Dockerfile Remove $HOME/.cache/ directory after building. 2016-09-26 15:19:04 -07:00
Dockerfile.dev add dockerfile for hacking with docker compose file for local environment 2017-09-19 09:25:39 -07:00
Makefile Get rid of check_speed 2021-10-15 11:46:34 -04:00
MANIFEST.in setup.py/MANIFEST.in: include missing files 2017-01-18 16:28:23 -08:00
mypy.ini Incorporate mypy-zope to support zope interfaces. 2020-11-29 13:57:46 -05:00
NEWS.rst update release notes 2021-12-05 00:50:22 -07:00
pyinstaller.spec Additional hidden imports due to use of Future. 2020-07-03 13:44:47 -04:00
README.rst stronger language for adding contributors & make commands stand out 2021-11-18 11:46:01 +01:00
relnotes.txt update release notes 2021-12-05 00:50:22 -07:00
setup.cfg Revert "a stab at using setup.cfg and setuptools_scm" 2021-10-14 11:01:37 -04:00
setup.py Another dependency. 2021-11-12 12:00:07 -05:00
Tahoe.home rename bin/allmydata-tahoe to bin/tahoe. Closes #155. 2007-10-11 03:38:24 -07:00
towncrier.toml fix the whitespace :/ 2021-10-18 08:11:49 -04:00
tox.ini Tell RTD how to install Sphinx. 2021-10-28 11:12:17 -04:00
ws_client.py move to different url 2019-03-21 15:00:02 -04:00

Free and Open Decentralized Data Store

image0

Tahoe-LAFS (Tahoe Least-Authority File Store) is the first free software / open-source storage technology that distributes your data across multiple servers. Even if some servers fail or are taken over by an attacker, the entire file store continues to function correctly, preserving your privacy and security.

code of conduct documentation status circleci githubactions code coverage

Table of contents

💡 About Tahoe-LAFS

Tahoe-LAFS helps you to store files while granting confidentiality, integrity, and availability of your data.

How does it work? You run a client program on your computer, which talks to one or more storage servers on other computers. When you tell your client to store a file, it will encrypt that file, encode it into multiple pieces, then spread those pieces out among various servers. The pieces are all encrypted and protected against modifications. Later, when you ask your client to retrieve the file, it will find the necessary pieces, make sure they havent been corrupted, reassemble them, and decrypt the result.

image2
The image is taken from meejah's blog post at Torproject.org.

The client creates pieces (“shares”) that have a configurable amount of redundancy, so even if some servers fail, you can still get your data back. Corrupt shares are detected and ignored so that the system can tolerate server-side hard-drive errors. All files are encrypted (with a unique key) before uploading, so even a malicious server operator cannot read your data. The only thing you ask of the servers is that they can (usually) provide the shares when you ask for them: you arent relying upon them for confidentiality, integrity, or absolute availability.

Tahoe-LAFS was first designed in 2007, following the "principle of least authority", a security best practice requiring system components to only have the privilege necessary to complete their intended function and not more.

Please read more about Tahoe-LAFS architecture here.

Installation

For more detailed instructions, read Installing Tahoe-LAFS.

Once tahoe --version works, see How to Run Tahoe-LAFS to learn how to set up your first Tahoe-LAFS node.

🐍 Python 3 Support

Python 3 support has been introduced starting with Tahoe-LAFS 1.16.0, alongside Python 2. System administrators are advised to start running Tahoe on Python 3 and should expect Python 2 support to be dropped in a future version. Please, feel free to file issues if you run into bugs while running Tahoe on Python 3.

🤖 Issues

Tahoe-LAFS uses the Trac instance to track issues. Please email jean-paul plus tahoe-lafs at leastauthority dot com for an account.

📑 Documentation

You can find the full Tahoe-LAFS documentation at our documentation site.

💬 Community

Get involved with the Tahoe-LAFS community:

🤗 Contributing

As a community-driven open source project, Tahoe-LAFS welcomes contributions of any form:

Before authoring or reviewing a patch, please familiarize yourself with the Coding Standard and the Contributor Code of Conduct.

🥳 First Contribution?

If you are committing to Tahoe for the very first time, it's required that you add your name to our contributor list in CREDITS. Please ensure that this addition has it's own commit within your first contribution.

🤝 Supporters

We would like to thank Fosshost for supporting us with hosting services. If your open source project needs help, you can apply for their support.

We are grateful to Oregon State University Open Source Lab for hosting tahoe-dev mailing list.

FAQ

Need more information? Please check our FAQ page.

📄 License

Copyright 2006-2020 The Tahoe-LAFS Software Foundation

You may use this package under the GNU General Public License, version 2 or, at your option, any later version. You may use this package under the Transitive Grace Period Public Licence, version 1.0, or at your choice, any later version. (You may choose to use this package under the terms of either license, at your option.) See the file COPYING.GPL for the terms of the GNU General Public License, version 2. See the file COPYING.TGPPL for the terms of the Transitive Grace Period Public Licence, version 1.0.

See TGPPL.PDF for why the TGPPL exists, graphically illustrated on three slides.