ChiFS Share manager
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Yorhel dbaa38b62d Improved logging options 2 weeks ago
man Improved logging options 2 weeks ago
src Improved logging options 2 weeks ago
.gitignore Initial experiments 3 months ago
Cargo.lock Improved logging options 2 weeks ago
Cargo.toml Improved logging options 2 weeks ago
LICENSE Add license and readme 3 months ago
README.md Use pandoc for man page + some man page improvements 1 month ago

README.md

ChiFS-Share

This is an early beta-level implementation of a ChiFS Share manager.

See the ChiFS project for more info.

Getting started

Setting up a Share involves the following steps.

Installation

There are no prebuilt binaries at the moment, so for now you’ll need to build everything from source.

Make sure you have the following prerequisites:

  • A somewhat recent version of Rust.
  • A build system with a C compiler.
  • The Tor client.

Now build ChiFS-Share from source:

git clone https://code.blicky.net/chifs/chifs-share
cd chifs-share
cargo install --path .

Configuration

Create a chifs-share.conf:

# Information about your Share. Remember: This will be public!
Title This is my super cute share!
ContactInfo user@example.com

# Directory to share
Share /home/user/shared-files

# By default, metadata will be written to $Share/.chifs-share/.
# Uncomment the following line to store it somewhere else.
#Metadata /home/user/.chifs-share

# Don't share hidden files
Ignore *~
Ignore .*

# Include some metadata
Meta magic mime

Setting up a web server

If you want to use your own web server (e.g. thttpd, Apache, nginx or Lighttpd), you should point your web server to the Share directory and make sure that /.chifs-share/ points to the correct Metadata directory. Then run chifs-share -c chifs-share.conf index and sit back while it indexes your files.

If you don’t want to bother with that, you can also just run chifs-share -c chifs-share.conf server to use the built-in web server. It will listen to 127.0.0.1:9080 by default, but you can change that by adding a Listen <addr> directive to the configuration file. The built-in server will automatically index your files and will periodically scan for updates.

Creating the Onion service

Finally, setup a Tor onion service at port 80 and point it to your web server.

Stay safe

  • Remember that everything in your shared directory is public. Don’t publish files that might identify you!
  • ChiFS-Share will, by design, expose the last modification timestamps of all published files. This may leak information about the times when you are active or the date and time that you obtained the files, which in turn may be correlated with other activities. It may help to randomize the modification timestamps if this is an issue.
  • Read the general security tips on running Onion services.
  • Always remember that no software is perfect. This program, your chosen web server, Tor and any other used software may contain bugs.

ChiFS-Share TODO

In no particular order:

  • Improved documentation & setup guide
  • Lock file, to prevent multiple running index processes
  • More file metadata fields
  • Friendly file browser web UI
  • Resource limiting for the built-in web server
  • Registering with a Hub
  • Automatically configuring and running a Tor onion service