GNUNET-AUTO-SHARE(1)

NAME
gnunet-auto-share - process to share a directory

SYNOPSIS
gnunet-auto-share [OPTIONS] DIRECTORY*

DESCRIPTION

In order to share files with other GNUnet users, the files must first be made available to GNUnet. This tool allows you to automatically share all files from certain directories.

In order to start sharing files, invoke gnunet-auto-share with the name of the directories. As long as gnunet-auto-share is running, any files placed in the directories will be automatically shared. Note that files that you share may not always continue to be available after you leave the network. gnunet-auto-share remembers the list of shared directories in the configuration file. So the next time you start gnunet-auto-share, you do not have to specify the directories again; however, you can run gnunet-auto-share multiple times, specifying additional directories each time.

gnunet-auto-share will automatically extract keywords from the files that are shared. Users that want to download files from GNUnet use keywords to search for the appropriate content. You can manually add keywords using the -K option.

The directory structure of files in the shared directories will be maintained. gnunet-auto-share only supports publishing files using indexing. Indexing a file means that an index is added to the local (!) database with symbolic links to the file itself. The links will use the SHA-512 hash of the entire file as the filename. Indexing is generally significantly more efficient and the default choice. However, indexing only works if the indexed file can be read (using the same absolute path) by gnunetd, so you should run gnunet-auto-share on the same machine that uses gnunetd.

You can add metadata for the shared files by specifying metadata in a metadata configuration file (by default located in ~/.gnunet/metadata.conf). The format of this file is just like the normal GNUnet configuration files. Each section name should correspond to a filename in one of the directories. Note that if you have the same filename corresponding to different files in multiple directories, you cannot specify different meta data. The keys are the various metadata types and the entries correspond to the metadata values. The special type "keyword" can be used to specify a list of keywords that should be used for the respective file. Example:
 [COPYING]
 title = "The GNU Public License"
 copyright = "1989, 1991 Free Software Foundation, Inc."
 version = "2"
 date = "June 1991"
 mimetype = "text/plain"
 description = "The most frequently used free software license"
 language = "English"
 organization = "Free Software Foundation"
 keywords = "GPL GNU free license public FSF test"

 [gnunet-logo.svg]
 title = "Official logo of teh GNUnet project"
 description = "Combines the GNU logo with a spider-net"
 mimetype = "image/svg+xml"
 artist = "Nicklas Larsson"
 date = "14.7.2005"
 organization = "The GNU Project"
 keywords = "GNUnet logo"
 contributor = "Christian Muellner" Metadata specification only works for files in the top-level directories, all other files will only be listed as part of the top-level directories and be given metadata using libextractor.

-c FILENAME, --config=FILENAME Use alternate config file (if this option is not specified, the default is ~/.gnunet/gnunet.conf).

-d, --debug
    do not detach from the console (for debugging); log messages are written to stderr.

-D, --disable-direct
    Disable direct indexing information that would otherwise refer to files inside of directories directly. Without -D, contents can be found directly using keywords extracted with libextractor. Use -D if you index directories with many similar files that are adequately described using keywords for the directory and for which individual references would unduely pollute the global keyword search space. Also use -D to disable libextractor for individual file publications. This way you can ensure that a file will only be referenced using the keywords that you are specifying explicitly.

-h, --help
    Print a brief help page with all the options.

-H HOSTNAME, --host=HOSTNAME
    on which host is gnunetd running (default: localhost). You can also specify a port using the syntax HOSTNAME:PORT. The default port is 2087.

-L LOGLEVEL, --loglevel=LOGLEVEL
    Change the loglevel. Possible values for LOGLEVEL are NOTHING, FATAL, ERROR, WARNING, INFO, STATUS and DEBUG. Note that options in the configuration file take precedence over this option (the argument will be ignored in that case).

-p PRIORITY, --prio=PRIORITY
    Executive summary: You probably don't need it. Set the priority of the inserted content (default: 65535). If the local database is full, GNUnet will discard the content with the lowest ranking. Note that ranks change over time depending on popularity. The default should be high enough to preserve the locally inserted content in favor of content that migrates from other peers.

-v, --version
    Print the version number.

-V, --verbose
    Be verbose. Using this option causes gnunet-auto-share to print progress information and the file identification that can be used to download the file from GNUnet.

EXAMPLES

Use the following command to have gnunet-auto-share run in the background and share the "/home/share/" directory:
 $ gnunet-auto-share /home/share/ Use the following command to share the "/home/share/" directory and see the URIs of uploaded files. You can abort the daemon with CTRL-C:
 $ gnunet-auto-share -d -V /home/share/

NOTES
As most GNUnet command-line tools, gnunet-auto-share supports passing arguments using environment variables. This can improve your privacy since otherwise the name of the shared directory will likely be visible to other local users. Setting "GNUNET_ARGS" will cause the respective string to be appended to the actual command-line and to be processed the same way as arguments given directly at the command line.

FILES

~/.gnunet/gnunet.conf
    GNUnet configuration file

REPORTING BUGS
Report bugs by using mantis <https://gnunet.org/bugs/> or by sending electronic mail to <gnunet-developers@gnu.org>

SEE ALSO
gnunet-gtk(1), gnunet-insert(1), gnunet-search(1), gnunet-download(1), gnunet.conf(5), gnunetd(1), extract(1)