How To Start Tahoe-LAFS

This is how to run a Tahoe-LAFS client or a complete Tahoe-LAFS grid. First you have to install the Tahoe-LAFS software, as documented in install.html.

The tahoe program in the bin directory is used to create, start, and stop nodes. Each node lives in a separate base directory, in which there is a configuration file named tahoe.cfg. Nodes read and write files within this base directory.

A grid consists of a set of storage nodes and client nodes running the Tahoe-LAFS code. There is also an introducer node that is responsible for getting the other nodes talking to each other.

If you're getting started we recommend you try connecting to the the public test grid as you only need to create a client node. When you want to create your own grid you'll need to create the introducer and several initial storage nodes (see the note about small grids below).

To construct a client node, run "path-to-the-tahoe-bin-directory/tahoe create-client", which will create ~/.tahoe to be the node's base directory. Acquire a copy of the introducer.furl from the introducer and put it into this directory, then use "path-to-the-tahoe-bin-directory/tahoe run". After that, the node should be off and running. The first thing it will do is connect to the introducer and get itself connected to all other nodes on the grid. By default, a node will serve as a storage node, meaning that it offers its disk space to other nodes. To configure other behavior, see configuration.txt.

To construct an introducer, create a new base directory for it (the name of the directory is up to you), cd into it, and run "path-to-the-tahoe-bin-directory/tahoe create-introducer .". Now run the introducer using "tahoe start .". After it starts, it will write a file named introducer.furl in that base directory. This file contains the URL the other nodes must use in order to connect to this introducer.

The "tahoe run" command above will run the node in the foreground. On Unix, you can run it in the background instead by using the "tahoe start" command. To stop a node started in this way, use "tahoe stop". tahoe --help gives a summary of all commands.

See configuration.txt for more details about how to configure Tahoe-LAFS.

A note about firewalls

If your node is behind a firewall or NAT device and you want other clients to connect to it then you'll need to open a port in your firewall. To do that you'll need to know which port Tahoe-LAFS is listening on. If you haven't already set a port number, it will pick a random port to listen on and remember this port number in the ~/.tahoe/client.port file. To tell Tahoe-LAFS to listen to a fixed port, open the ~/.tahoe/tahoe.cfg file in your favourite text editor and changing the tub.port line to something like the following:

tub.port = 8098

This tells Tahoe-LAFS to always listen on port 8098 of your computer. The next issue is that your computer may be behind a NATing router and isn't directly connected to the internet but goes through a router to get out. If that's the case then you'll need to set the tub.location option so that Tahoe-LAFS tells the introducer where you're really listening:

tub.location = myserver.mydomain.org:8098

or probably more likely

tub.location = 123.456.789.012:8098

The configuration.txt file contains more details.

A note about small grids

By default, Tahoe-LAFS ships with the configuration parameter shares.happy set to 7. If you are using Tahoe-LAFS on a grid with fewer than 7 storage nodes, this won't work well for you — none of your uploads will succeed. To fix this, see configuration.txt to learn how to set shares.happy to a more suitable value for your grid.

Do Stuff With It

Now you have a decentralized filesystem. See using.html for instructions about how to interact with it.