tahoe-lafs/docs/magic-folder-howto.rst
Daira Hopwood 278d713dd5 Add docs/magic-folder-howto.rst.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-07-21 12:35:59 -07:00

6.0 KiB

Magic Folder Set-up Howto

  1. Preparation
  2. Setting up a local test grid
  3. Setting up Magic Folder
  4. Testing

Preparation

Linux

Install git from your distribution's package manager. Then run these commands:

git clone -b 2438.magic-folder-stable.5 https://github.com/tahoe-lafs/tahoe-lafs.git cd tahoe-lafs python setup.py test

The test suite usually takes about 15 minutes to run. Note that it is normal for some tests to be skipped. In the current branch, the Magic Folder tests produce considerable debugging output.

If you see an error like fatal error: Python.h: No such file or directory while compiling the dependencies, you need the Python development headers. If you are on a Debian or Ubuntu system, you can install them with sudo apt-get install python-dev. On RedHat/Fedora, install python-devel.

Windows

Windows 7 or above is required.

For 64-bit Windows:

For 32-bit Windows:

Then (for any version) run these commands in a Command Prompt:

git clone -b 2438.magic-folder-stable.5 https://github.com/tahoe-lafs/tahoe-lafs.git cd tahoe-lafs python setup.py build

Open a new Command Prompt with the same current directory, then run:

bintahoe --version-and-path

It is normal for this command to print warnings and debugging output on some systems. Do not run "python setup.py test", because it currently hangs on Windows.

Setting up a local test grid

Linux

Run these commands:

mkdir ../grid bin/tahoe create-introducer ../grid/introducer bin/tahoe start ../grid/introducer export FURL=`cat ../grid/introducer/private/introducer.furl` bin/tahoe create-node --introducer="$FURL" ../grid/server bin/tahoe create-client --introducer="$FURL" ../grid/alice bin/tahoe create-client --introducer="$FURL" ../grid/bob

Windows

Run:

mkdir ..grid bintahoe create-introducer ..gridintroducer bintahoe start ..gridintroducer

Leave the introducer running in that Command Prompt, and in a separate Command Prompt (with the same current directory), run:

set /p FURL=<..gridintroducerprivateintroducer.furl bintahoe create-node --introducer=%FURL% ..gridserver bintahoe create-client --introducer=%FURL% ..gridalice bintahoe create-client --introducer=%FURL% ..gridbob

Both Linux and Windows

(Replace "/" with "" for Windows paths.)

Edit ../grid/alice/tahoe.cfg, and make the following changes to the [node] and [client] sections:

[node] nickname = alice web.port = tcp:3457:interface=127.0.0.1

[client] shares.needed = 1 shares.happy = 1 shares.total = 1

Edit ../grid/bob/tahoe.cfg, and make the following change to the [node] section, and the same change as above to the [client] section:

[node] nickname = bob web.port = tcp:3458:interface=127.0.0.1

Note that when running nodes on a single machine, unique port numbers must be used for each node (and they must not clash with ports used by other server software). Here we have used the default of 3456 for the server, 3457 for alice, and 3458 for bob.

Now start all of the nodes (the introducer should still be running from above):

bin/tahoe start ../grid/server bin/tahoe start ../grid/alice bin/tahoe start ../grid/bob

On Windows, a separate Command Prompt is needed to run each node.

Open a web browser on http://127.0.0.1:3456/ and verify that alice is connected to the introducer and one storage server. Then do the same for http://127.0.0.1:3567/ to verify that bob is connected. Leave all of the nodes running for the next stage.

Setting up Magic Folder

Linux

Run:

mkdir -p ../local/alice ../local/bob bin/tahoe -d ../grid/alice magic-folder create magic: alice ../local/alice bin/tahoe -d ../grid/alice magic-folder invite magic: bob >invitecode export INVITECODE=`cat invitecode` bin/tahoe -d ../grid/bob magic-folder join "$INVITECODE" bob ../local/bob

bin/tahoe restart ../grid/alice bin/tahoe restart ../grid/bob

Windows

Run:

mkdir ..localalice ..localbob bintahoe -d ..gridalice magic-folder create magic: alice ..localalice bintahoe -d ..gridalice magic-folder invite magic: bob >invitecode set /p INVITECODE=<invitecode bintahoe -d ..gridbob magic-folder join %INVITECODE% bob ..localbob

Then close the Command Prompt windows that are running the alice and bob nodes, and open two new ones in which to run:

bin/tahoe start ..gridalice bin/tahoe start ..gridbob

Testing

You can now experiment with creating files and directories in ../local/alice and /local/bob; any changes should be propagated to the other directory.

Note that when a file is deleted, the corresponding file in the other directory will be renamed to a filename ending in ".backup". Deleting a directory will have no effect.

Subdirectories do not currently work on Windows.

For other known issues and limitations, see https://github.com/tahoe-lafs/tahoe-lafs/blob/2438.magic-folder-stable.5/docs/frontends/magic-folder.rst#known-issues-and-limitations

For simplicity, this Howto covers only using Magic Folder using a test grid on a single machine, with two clients and one server. It should also be possible to run the nodes on different machines, to synchronize between three or more clients, to mix Windows and Linux clients, and to use multiple servers (if the Tahoe-LAFS encoding parameters are changed).