# dropshare

> A ge.tt / min.us clone for your private servers

Latest version **0.5.0** (published 2012-12-05) · 0 weekly downloads

## Install

```sh
npm install dropshare
pnpm add dropshare
yarn add dropshare
bun add dropshare
```

Provides the command `dropshare-server`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.5.0 |
| Published | 2012-12-05 |
| First published | 2011-12-10 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >= 0.6 |
| Dependencies | 15 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | AJ ONeal |
| Maintainers | jergason, coolaj86 |

## Links

- npm: https://www.npmjs.com/package/dropshare
- Repository: https://github.com/SpotterRF/dropshare
- Homepage: dropshare.coolaj86.info
- npm.io page: https://npm.io/package/dropshare

## Dependencies (15)

- [mime](https://npm.io/package/mime.md) ~1.2
- [redis](https://npm.io/package/redis.md) 0.6.x
- [mkdirp](https://npm.io/package/mkdirp.md) 0.3.x
- [connect](https://npm.io/package/connect.md) >= 2.7 < 3.0.0
- [fs-extra](https://npm.io/package/fs-extra.md) 0.1.x
- [fs.extra](https://npm.io/package/fs.extra.md) 1.x
- [sequence](https://npm.io/package/sequence.md) 2.x
- [formaline](https://npm.io/package/formaline.md) 2.x
- [http-json](https://npm.io/package/http-json.md) 1.x
- [dom-storage](https://npm.io/package/dom-storage.md) 1.x
- [connect-cors](https://npm.io/package/connect-cors.md) ~0.5
- [forEachAsync](https://npm.io/package/forEachAsync.md) 2.x
- [json-storage](https://npm.io/package/json-storage.md) 1.x
- [connect_router](https://npm.io/package/connect_router.md) 1.x
- [numeric-buffer](https://npm.io/package/numeric-buffer.md) 0.1.x

## Recent versions

- 0.5.0 (latest) — 2012-12-05
- 0.3.12 — 2012-10-23
- 0.3.11 — 2012-10-23
- 0.3.10 — 2012-10-23
- 0.4.0 — 2012-10-23
- 0.3.9 — 2012-10-19
- 0.3.8 — 2012-10-15
- 0.3.5 — 2012-05-19
- 0.3.4 — 2012-05-19
- 0.3.3 — 2012-05-13
- 0.3.2 — 2012-05-03
- 0.3.1 — 2012-03-21
- 0.2.2 — 2012-03-06
- 0.2.1 — 2012-02-29
- 0.1.0 — 2011-12-10

## README

Dropshare
===

[DropShare](http://dropsha.re) is the answer to the age-old question of File Transfer:

[![File Transfer][file-transfer]][xkcd-949]

[xkcd-949]: http://xkcd.com/949/
[file-transfer]: http://imgs.xkcd.com/comics/file_transfer.png "Every time you email a file to yourself so you can pull it up on your friend's laptop, Tim Berners-Lee sheds a single tear."

Similar services include

  * [ge.tt](http://ge.tt)
  * [min.us](http://min.us)
  * [droplr](http://droplr.com)
  * [kicksend](http://kicksend.com/)
  * [sendoid](http://sendoid.com/)
  * [shareDesk](http://sharedesk.at) [[fork on github](https://github.com/eeezyy/shareDesk)]
  * [CloudApp](http://getcloudapp.com/)

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](http://dropsha.re)

Commandline
---

**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'

### Python Client

    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'

### Bash Client

    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'

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
---

If you don't want to customize it at all you can install it via npm

  0. Download [NodeJS](http://nodejs.org#download)
  1. `npm install -g dropshare`
  2. `dropshare-server`
  3. The database will be in `dropshare/server/lib/db/db.json`

But for production use with a real database

  0. Install [NodeJS](http://nodejs.org): [Linux Binary](https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager) | [Linux Source](http://apptob.org) | [OS X | Windows](http://nodejs.org#download).
  0. 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

  0. Install `jade`, [Pakmanager](https://github.com/coolaj86/node-pakmanager), `less`, and some other fun things.

        npm install -g jade less pakmanager uglify-js

  0. Install dropshare in your webapps directory (I use [connect-vhoster](https://github.com/coolaj86/connect-vhoster))

        # use mine (or use your own fork)
        git clone git://github.com/SpotterRF/dropshare.git dropshare.example.com

  0. 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

  0. Download dependencies and compile the static assets.
     (You may wish to look at `deploy.sh` to understand what it does)

        ./deploy.sh # possibly needs `sudo`

  0. Start the server. By default it runs on port 3700 (but if it's different, you'll see it).

        node bin/dropshare-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

---
_Source: https://npm.io/package/dropshare · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
