DropShare is the answer to the age-old question of File Transfer:
Similar services include
A few different clients are avaible.
With the web-client you can drag-n-drop or use the normal upload/download.
dropshare /path/to/file.ext # Example - share your public ssh key with someone dropshare ~/.ssh/id_rsa.pub
Your file, Sir! (or Ma'am): http://dropsha.re/#foHsCQA wget 'http://api.dropsha.re/files/foHsCQAfirstname.lastname@example.org' curl 'http://api.dropsha.re/files/foHsCQA' -o 'email@example.com'
sudo wget 'https://raw.github.com/SpotterRF/dropshare/master/clients/dropshare.py' -O '/usr/local/bin/dropshare' sudo chmod a+x '/usr/local/bin/dropshare'
sudo wget 'https://raw.github.com/SpotterRF/dropshare/master/clients/dropshare.sh' -O '/usr/local/bin/dropshare' sudo chmod a+x '/usr/local/bin/dropshare'
If you're interested in consulting or setup to run DropShare on your private network at your Home Office, or Business please contact firstname.lastname@example.org.
Quick Start for Running your own DropShare
If you don't want to customize it at all you can install it via npm
- Download NodeJS
npm install -g dropshare
- The database will be in
But for production use with a real database
redis. See Appendix (below) for installing redis on OS X.
# Ubuntu Linux sudo apt-get install redis-server
# OS X brew install redis launchctl load -w ~/Library/LaunchAgents/io.redis.redis-server.plist # see notes below
less, and some other fun things.
npm install -g jade less pakmanager uglify-js
Install dropshare in your webapps directory (I use connect-vhoster)
# use mine (or use your own fork) git clone git://github.com/SpotterRF/dropshare.git dropshare.example.com
config.js, and customize any server settings you would like.
cd dropshare.example.com rsync -a config.default.js config.js
Download dependencies and compile the static assets. (You may wish to look at
deploy.shto understand what it does)
./deploy.sh # possibly needs
Start the server. By default it runs on port 3700 (but if it's different, you'll see it).
The server can take parameters in a few forms. If you are just running a
stand-alone server, then you can put them in the
config.js file. If
you are creating a Dropshare server in code, then you can pass an object
in to the
create() method exported by
The parameters all have sensible defaults that should work out of the box, so you don't actually need any of them.
client: the path to the public folder for the browser interface. Defaults to
storageDir: a path to a directory to store uploaded files. Defaults to
allowUserSpecifiedIds: if true, allow users to specify the ids that files will be stored under.
Run the tests with:
cd tests ./test.sh
The tests depend on being in the same directory as the test script, due to paths to resources and such.
Dropshare is available under the following licenses:
- Apache 2
Copyright 2011 - 2012 Jamison Dance and AJ ONeal
brew install redis mkdir -p ~/Library/LaunchAgents launchctl unload -w ~/Library/LaunchAgents/io.redis.redis-server.plist 2>/dev/null || true cp /usr/local/Cellar/redis/2.2.12/io.redis.redis-server.plist ~/Library/LaunchAgents/ launchctl load -w ~/Library/LaunchAgents/io.redis.redis-server.plist
To start redis manually:
To access the server: redis-cli
sudo apt-get install redis-server # may be called just 'redis', depending on your distro