Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A min.us / ge.tt file share clone.
JavaScript CSS Shell HTML Python

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
clients
files
lib
public
tests
.gitignore
LICENSE.APACHE2
LICENSE.MIT
README.md
config.default.js
githook.sh
package.json
run-server.js
server.js

README.md

Dropshare

DropShare is the answer to the age-old question of File Transfer:

File Transfer

Similar services include

Clients

A few different clients are avaible.

Web

With the web-client you can drag-n-drop or use the normal upload/download.

http://dropsha.re

Bash

Usage

dropshare /path/to/file.ext

# Example - share your public ssh key with someone
dropshare ~/.ssh/id_rsa.pub

Example Output

Your file, Sir! (or Ma'am):

http://dropsha.re/#foHsCQA

wget 'http://api.dropsha.re/files/foHsCQA/coolaj86@ubuntu-tablet.pub'

curl 'http://api.dropsha.re/files/foHsCQA' -o 'coolaj86@ubuntu-tablet.pub'

Installation

sudo wget 'https://raw.github.com/coolaj86/dropshare/master/clients/dropshare.sh' -O '/usr/local/bin/dropshare'
sudo chmod a+x '/usr/local/bin/dropshare'

Server

If you're interested in consulting or setup to run DropShare on your private network at your Home Office, or Business please contact coolaj86@gmail.com.

Quick Start for Running your own DropShare

  1. Install NodeJS: Linux Binary | Linux Source | OS X | Windows.
  2. Install 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
    
  3. Install Spark, jade, Pakmanager, and less.

    npm install -g jade less pakmanager
    
  4. Install dropshare in your webapps directory (I use connect-vhoster)

    # use mine (or use your own fork)
    git clone git://github.com/coolaj86/dropshare.git dropshare.example.com
    
  5. Copy config.default.js to config.js, and customize any server settings you would like.

    cd dropshare.example.com
    rsync -a config.default.js config.js
    
  6. Download dependencies and compile the static assets.

    # get server dependencies
    npm install # possibly needs `sudo` on linux
    
    cd public
    ./deploy.sh
    cd ..
    
  7. Start the server with spark. By default it runs on port 3700 (but if it's different, you'll see it).

    node run-server.js
    

Server Parameters

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 lib/index.js.

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 ./public
  • storageDir: a path to a directory to store uploaded files. Defaults to ./files.
  • allowUserSpecifiedIds: if true, allow users to specify the ids that files will be stored under.

Running Tests

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.

LICENSE

Dropshare is available under the following licenses:

  • MIT
  • Apache 2

Copyright 2011 - 2012 Jamison Dance and AJ ONeal

Appendix

Installing Redis

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:

redis-server /usr/local/etc/redis.conf

To access the server: redis-cli

Ubuntu Linux

sudo apt-get install redis-server # may be called just 'redis', depending on your distro
Something went wrong with that request. Please try again.