Giter Club home page Giter Club logo

filepizza's Introduction

XKCD 949 FilePizza wordmark

Peer-to-peer file transfers in your browser

Cooked up by Alex Kern & Neeraj Baid while eating Sliver @ UC Berkeley.

Using WebRTC, FilePizza eliminates the initial upload step required by other web-based file sharing services. When senders initialize a transfer, they receive a "tempalink" they can distribute to recipients. Upon visiting this link, recipients' browsers connect directly to the sender’s browser and may begin downloading the selected file. Because data is never stored in an intermediary server, the transfer is fast, private, and secure.

A hosted instance of FilePizza is available at file.pizza.

Requirements

  • node 0.12.x
  • npm 2.x.x

Installation

The recommended way to deploy FilePizza is as a Docker container. WebRTC only works over HTTPS, so you'll either have to get a signed HTTPS key/certificate from a CA such as Let's Encrypt or generate your own self-signed pair and trust it. Then, to run FilePizza (with HTTPS termination):

$ docker run \
    -p 8080:8080 -e PORT=8080 \
    -e HTTPS_KEY=/config/server.key \
    -e HTTPS_CERT=/config/server.crt \
    -v mylocalpath:/config \
    -it kern/filepizza:master

You can specify your own ICE STUN/TURN servers for better connectivity behind NATs by passing a JSON encoding of the array via env var ICE_SERVERS. Alternatively, if you'd like to use Twilio's STUN/TURN service, you can specify your SID and token using the TWILIO_SID and TWILIO_TOKEN environment variables, respectively.

You can specify your own Webtorrent tracker(s) using the WEBTORRENT_TRACKERS environment variable, comma-delimited.

If you want to use Google Analytics, you can specify your UA code using the GA_ACCESS_TOKEN="UA-00000000-1" environment variable.

Development

$ git clone https://github.com/kern/filepizza.git
$ npm install
$ npm run-script build
$ npm start

FilePizza is an isomorphic React application which uses the Flux application architecture. ES6 features are used liberally and compiled using Babel. Views are rendered on the server, store data is serialized and sent to the client, which then picks up where the server left off.

Both client and server JavaScript files can be found in lib/. lib/server.js and lib/client.js are the server and client entrypoints, respectively. lib/components/, lib/stores/, and lib/actions/ contain the corresponding Flux modules, implemented using alt. lib/routes.js serves as the isomorphic routes file using react-router.

Client-side JavaScript and CSS are compiled using webpack and are available at /app.js.

FAQ

Where are my files sent? Your files never touch our server. Instead, they are sent directly from the uploader's browser to the downloader's browser using WebTorrent and WebRTC. This requires that the uploader leave their browser window open until the transfer is complete.

Can multiple people download my file at once? Yes! Just send them your tempalink.

How big can my files be? Chrome has issues supporting files >500 MB. Firefox does not have any issues with large files, however.

What happens when I close my browser? The tempalink is invalidated. If a downloader has completed the transfer, that downloader will continue to seed to incomplete downloaders, but no new downloads may be initiated.

Are my files encrypted? Yes, all WebRTC communications are automatically encrypted using public-key cryptography.

My files are sending slowly! Transfer speed is dependent on your network connection.

Troubleshooting

If you receive a Error: EMFILE, too many open files error when running npm start on a Mac, this is a result of Browserify's compilation step opening up a large number of npm modules all at once. You'll have to increase the maximum number of open files allowed on your system:

$ sysctl -w kern.maxfiles=20480

License & Acknowledgements

FilePizza is released under the BSD 3-Clause license. A huge thanks to WebTorrent which we use for the file transfers under the hood, and to iblowyourdesign for the pizza illustration.

filepizza's People

Contributors

aerion avatar bengadbois avatar hanford avatar jakeburden avatar kayleepop avatar kellywangmj avatar kern avatar lil5 avatar ppmathis avatar pr0ps avatar rugk avatar sumeetrohra avatar tarnyko avatar tomsapps avatar tradziej avatar vegemash avatar xnumad avatar yefim avatar zfogg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

filepizza's Issues

Error: Cannot find module './dist/server'

Re-Installed with npm install filepizza -g :

env PORT=3457 filepizza
module.js:338
    throw err;
          ^
Error: Cannot find module './dist/server'
    at Function.Module._resolveFilename (module.js:336:15)
    at Function.Module._load (module.js:278:25)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/usr/lib/node_modules/filepizza/index.js:10:18)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)

There is no ./dist obviously after the install ...

filepizze terminating without error

Hey,

just installed filepizza as advertised on a Ubuntu 12.04 LTS (with node 0.12.7), starting it looks like this:

env PORT=3457 filepizza
FilePizza listening on :::3457

and then it returns to the prompt without any error messages. There's also no background process or something (already) listening on 3457.

Any idea?

Suggestions

Hi,
Since I dont find any new thread for suggestions,I post it under "Issues". Here are my suggestions anyway:

  1. Get ddos protection
  2. Make it impossible to reveal the sites IP (no matter where you try to resolve the site to get the IP)
  3. Make the site https://

Use shorter urls

Would it be possible to replace the four toppings with a five letter code so it's easier to type?

Example: replace https://file.pizza/limburger-squash-chickentikka-pinenuts with https://file.pizza/uNU30

Perhaps each topping list would have a corresponding 5 digit code and either could be typed in to redirect to the same file. Both could be shown at the time of uploading to give users a choice to use the topping url or shortcode url.

Running FilePizza fails

Hey, after I tried to install FilePizza on a CentOS 6 - Server featuring shared hosting,
$ npm start
gave me the following errors:

error

During the installation, there was one error:
npm WARN optional dep failed, continuing [email protected]

The error log can be found on lpaste.net

fails on mobile

Chrome and firefox for android can use other webrtc tools but both crash on webtorrent with a 2GB file... maybe it's trying to store the whole file in ram instead of only the chunk hashes.

Do not load fonts from Google

Come on, we want it to work in intranet other places where you don't want it to call to Google. It is also a privacy issue.

So please just include your fonts locally.

Cannot upload or download

Trying file.pizza with with Chrome 45.0.2454.85. I get the following error when selecting a file: Uncaught TypeError: Failed to construct 'RTCPeerConnection': Malformed RTCConfiguration.

On firefox 41.0, I get TypeError: 'iceServers' member of RTCConfiguration can't be converted to a sequence.

Installation in subdirectory difficult

As most paths are hardcoded and begin with / installing this project in a subdir is very difficult. #58 is part of this issue.

It would be very nice to have some configuration options to set a subdir path or to make it compatible with subdir installations out-of-the-box by using relative paths.

Use crypto

use crypto to add a hash at the end of your download url . This decreases chances of url collision .

React: Invariant Violation

I always get this JS error:

Error: Invariant Violation: You're trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:
 (client) <html lang="en" data-react
 (server) <html data-reactid=".1tf8p

And yes I have modified the JS/HTML code a bit, but I recompiled everything using make build, so I thought it should be working.
How can I remove this checksum?

Needs more readme :)

This looks like a cool project, could you write up how it works and whatever else might be relevant in the Readme? Would be good to get that sort of overview when landing on the repo. or link up to a blog post or something :)

FilePizza does not load

I tried to send a .zip file to a friend yesterday. I distributed the file via Google Chrome on Windows 7 and he tried to download it via Mozilla Firefox and Google Chrome and it didn't load. We both had WebRTC activated.
Today I tried to upload a .txt file from my Android phone's Chrome app and download it via Mozilla Firefox on a Windows 10 computer, but that didn't load either. Both browsers had WebRTC activated.

Cannot find module './lib/babel/api/register/node'

npm: 2.9.1
node: 0.10.38

npm install goes without errors, only a few warnings of the form:
requires parseuri@'0.0.4' but will load

However, npm start halts on:

Error: Cannot find module './lib/babel/api/register/node'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object. (/home/pi/filepizza/node_modules/babel/register.js:1:80)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)`

Remove Google Analytics

Do you really need to use a proprietary tracking service such as Google Analytics in FilePizza?

At least you should provide an option to disable it for self-hosted installations.

Headless? Perhaps via PhantomJS?

Is it possible to launch a headless browser to mange the upload half of sharing a file? My idea is a command-line fire & forget, since I tend to close my browser often.

WEBRTC and edge

Hello, why use your site is tight for users on Microsoft Edge?

Running npm release fails - Unexpected token

System:
Arch Linux
NodeJS v0.12.4
NPM 2.11.2

Installed with # npm install -g filepizza and started with $ filepizza

Error:

$ filepizza      
/usr/lib/node_modules/filepizza/lib/server.js:39
    db.create(socket).then((u) => {
                               ^^
SyntaxError: Unexpected token =>
    at exports.runInThisContext (vm.js:73:16)
    at Module._compile (module.js:443:25)
    at Module._extensions..js (module.js:478:10)
    at Object.require.extensions.(anonymous function) [as .js] (/usr/lib/node_modules/filepizza/node_modules/babel/lib/babel/api/register/node.js:130:7)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/usr/lib/node_modules/filepizza/index.js:3:18)
    at Module._compile (module.js:460:26)

Same problem when using iojs 2.x. Seems to be a problem with babel transpiling. iojs should support "() =>" functions out of the box but still same error.

Show download percentage in tab name

It would be really useful if FilePizza showed the download percentage in the tab name so you can see the progress without having to actively check the tab.

TURN/STUN/Signalling server question

As you advertise the Twilio's STUN/TURN service I am a bit unsure what happens when you do not use it: Because usually browsers have "baked in" their own TURN/STUN and signalling servers, so when WebRTC is e.g. used in Firefox Mozilla's servers are used for that.

This is especially important for the security of WebRTC as the signalling server could MITM the connection.

To prevent MITM attacks is there any additional encryption used - besides WebRTCs default one - such as SaltyRTC? If not you may consider this to improve the security.

Slow uploads

Hi.
It seems that the file,pizza site takes time to upload files. Check out the site https://filetea.me and load up both big and small files (especially big files) and you see how fast it uploads. I want it to upload as fast like https://filetea.me
If its possible to do that,it would be awesome.
While I remember. Do you know any other sites such as https://file.pizza that do the same thing as https://file.pizza then let me know

Does not send Content-Type

If you already use such crappy URLs such as /js or /css you should at least send the correct Content-Type header.
Even for the index page no Content-Type header is sent.

Upload broken in Firefox

I try to upload a file on Firefox 48 on Linux.

It stays at "Processing" indefinitely.

When looking at the javascript console I see two errors:

a) Firefox can't establish a connection to server wss://file.pizza/socket.io/?EIO=3&transport=websocket&sid=nyeb40GlD7oFHVhZAGQU js:32:4398
POST
XHR
https://file.pizza/socket.io/ [HTTP/2.0 200 OK 178ms]
GET
XHR
https://file.pizza/socket.io/ [HTTP/2.0 200 OK 19107ms]
Error: Invalid torrent identifier

site down?

Currently --

This webpage is not available

ERR_CONNECTION_REFUSED

.htaccess RewriteRule fails

I'm using a shared-hoster which only allows ports between 61000 and 65535. For this reasons I want to redirect the port to the subdomain files.tristank.de. Normally this works great but for filepizza it just keeps downloading the index page as a file named download as soon as I browse to files.tristank.de. Accessing filepizza directly with tristank.de:65150 does work. Any suggestions?

.htaccess

RewriteEngine On
RewriteRule ^(.*) http://localhost:65150/$1 [P]

$ curl -sL 'http://fp.tristank.de'

`

<title>FilePizza - Your files, delivered.</title><script id="bootstrap" type="application/json">{"ErrorStore":{"status":404,"message":"Not Found","stack":null},"SupportStore":{"isSupported":true,"isChrome":false},"DownloadStore":{"fileName":"","fileSize":0,"fileType":"","infoHash":null,"peers":0,"progress":0,"speedDown":0,"speedUp":0,"status":"uninitialized","token":null},"UploadStore":{"fileName":"","fileSize":0,"fileType":"","infoHash":null,"peers":0,"speedUp":0,"status":"ready","token":null}}</script><script src="/js"></script>
up

FilePizza

Free peer-to-peer file transfers in your browser.

We never store anything. Files only served fresh.

select a file

donate via PayPal

BTC: 1P7yFQAC3EmpvsB7K9s6bKPvXEP1LPoQnY

Cooked up by Alex Kern & Neeraj Baid while eating Sliver @ UC Berkeley · FAQ · Fork us

<script data-reactid=".l1zogtimm8.1.2">FilePizza()</script><script data-reactid=".l1zogtimm8.1.3"></script>`

Crashes on page load

After loading the page locally at 127.0.0.1:3000 in Chrome and OSX, I get the following crash

runtime output:

> [email protected] start /Users/aidan/Desktop/filepizza/filepizza
> node index.js

WebDrop listening on 0.0.0.0:3000
�[0mGET / �[32m200 �[0m33.501 ms - -�[0m
�[0mGET /images/up.png �[36m304 �[0m3.306 ms - -�[0m
�[0mGET /images/pizza.png �[36m304 �[0m0.925 ms - -�[0m
�[0mGET /css �[32m200 �[0m290.000 ms - 6556�[0m
{ [Error: EMFILE, open '/Users/aidan/Desktop/filepizza/filepizza/node_modules/react/package.json']
  errno: 20,
  code: 'EMFILE',
  path: '/Users/aidan/Desktop/filepizza/filepizza/node_modules/react/package.json',
  stream: 
   { _readableState: 
      { highWaterMark: 16,
        buffer: [],
        length: 0,
        pipes: [Object],
        pipesCount: 1,
        flowing: true,
        ended: false,
        endEmitted: false,
        reading: true,
        sync: false,
        needReadable: true,
        emittedReadable: false,
        readableListening: false,
        objectMode: true,
        defaultEncoding: 'utf8',
        ranOut: false,
        awaitDrain: 0,
        readingMore: false,
        decoder: null,
        encoding: null,
        resumeScheduled: false },
     readable: true,
     domain: null,
     _events: 
      { end: [Object],
        error: [Object],
        data: [Function: ondata],
        _mutate: [Object] },
     _maxListeners: 10,
     _writableState: 
      { highWaterMark: 16,
        objectMode: true,
        needDrain: false,
        ending: true,
        ended: true,
        finished: true,
        decodeStrings: true,
        defaultEncoding: 'utf8',
        length: 0,
        writing: false,
        corked: 0,
        sync: false,
        bufferProcessing: false,
        onwrite: [Function],
        writecb: null,
        writelen: 0,
        buffer: [],
        pendingcb: 0,
        prefinished: true,
        errorEmitted: false },
     writable: true,
     allowHalfOpen: true,
     _options: { objectMode: true },
     _wrapOptions: { objectMode: true },
     _streams: [ [Object] ],
     length: 1,
     label: 'deps' } }
�[0mGET /js �[31m500 �[0m3521.111 ms - -�[0m

runtime errors:

/Users/aidan/Desktop/filepizza/filepizza/node_modules/browserify-middleware/node_modules/browserify/index.js:551
                : opts.basedir || process.cwd()
                                          ^
Error: EMFILE, too many open files
    at globalTr (/Users/aidan/Desktop/filepizza/filepizza/node_modules/browserify-middleware/node_modules/browserify/index.js:551:43)
    at makeTransform (/Users/aidan/Desktop/filepizza/filepizza/node_modules/browserify-middleware/node_modules/browserify/node_modules/module-deps/index.js:251:21)
    at /Users/aidan/Desktop/filepizza/filepizza/node_modules/browserify-middleware/node_modules/browserify/node_modules/module-deps/index.js:226:9
    at Deps.getTransforms (/Users/aidan/Desktop/filepizza/filepizza/node_modules/browserify-middleware/node_modules/browserify/node_modules/module-deps/index.js:231:7)
    at /Users/aidan/Desktop/filepizza/filepizza/node_modules/browserify-middleware/node_modules/browserify/node_modules/module-deps/index.js:366:24
    at onresolve (/Users/aidan/Desktop/filepizza/filepizza/node_modules/browserify-middleware/node_modules/browserify/node_modules/module-deps/index.js:178:14)
    at /Users/aidan/Desktop/filepizza/filepizza/node_modules/browserify-middleware/node_modules/browserify/index.js:480:13
    at /Users/aidan/Desktop/filepizza/filepizza/node_modules/browserify-middleware/node_modules/browserify/node_modules/browser-resolve/index.js:254:13
    at onfile (/Users/aidan/Desktop/filepizza/filepizza/node_modules/browserify-middleware/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/lib/asyn
c.js:51:21)
    at onex (/Users/aidan/Desktop/filepizza/filepizza/node_modules/browserify-middleware/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/lib/async.
js:93:22)

npm ERR! Darwin 13.4.0
npm ERR! argv "node" "/usr/local/bin/npm" "start"
npm ERR! node v0.10.33
npm ERR! npm  v2.1.11
npm ERR! code ELIFECYCLE
npm ERR! [email protected] start: `node index.js`
npm ERR! Exit status 8
npm ERR!
npm ERR! Failed at the [email protected] start script 'node index.js'.
npm ERR! This is most likely a problem with the filepizza package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node index.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls filepizza
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/aidan/Desktop/filepizza/filepizza/npm-debug.log

npm-debug.log:

    cat ./npm-debug.log
    0 info it worked if it ends with ok
    1 verbose cli [ 'node', '/usr/local/bin/npm', 'start' ]
    2 info using [email protected]
    3 info using [email protected]
    4 verbose node symlink /usr/local/bin/node
    5 verbose run-script [ 'prestart', 'start', 'poststart' ]
    6 info prestart [email protected]
    7 info start [email protected]
    8 verbose unsafe-perm in lifecycle true
    9 info [email protected] Failed to exec start script
    10 verbose stack Error: [email protected] start: `node index.js`
    10 verbose stack Exit status 8
    10 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:212:16)
    10 verbose stack     at EventEmitter.emit (events.js:98:17)
    10 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:14:12)
    10 verbose stack     at ChildProcess.emit (events.js:98:17)
    10 verbose stack     at maybeClose (child_process.js:756:16)
    10 verbose stack     at Process.ChildProcess._handle.onexit (child_process.js:823:5)
    11 verbose pkgid [email protected]
    12 verbose cwd /Users/aidan/Desktop/filepizza/filepizza
    13 error Darwin 13.4.0
    14 error argv "node" "/usr/local/bin/npm" "start"
    15 error node v0.10.33
    16 error npm  v2.1.11
    17 error code ELIFECYCLE
    18 error [email protected] start: `node index.js`
    18 error Exit status 8
    19 error Failed at the [email protected] start script 'node index.js'.
    19 error This is most likely a problem with the filepizza package,
    19 error not with npm itself.
    19 error Tell the author that this fails on your system:
    19 error     node index.js
    19 error You can get their info via:
    19 error     npm owner ls filepizza
    19 error There is likely additional logging output above.
    20 verbose exit [ 1, true ]

Any chance of a FOSS license?

Not demanding. Just asking. :) Either copyleft or permissive., although AGPL could be an interesting consideration for a network service like this.

Big file ?

Hello,

I wanted to send a 1.8go file named "RM1104_059X4S9_1078.0038.10586.13080.13842.033255.zip" and impossible to have a link I have a bias .

filepizza-socket is not in the npm registry

npm install isn't working ...

npm ERR! 404 'filepizza-socket' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, or http url, or git url.

npm ERR! System Linux 3.13.0-52-generic
npm ERR! command "/home/qusai/.nvm/v0.10.22/bin/node" "/home/qusai/.nvm/v0.10.22/bin/npm" "install"
npm ERR! cwd /home/qusai/github.com/filepizza
npm ERR! node -v v0.10.22
npm ERR! npm -v 1.3.14
npm ERR! code E404

Load JS from jsdelivr.net locally

After finally fixing the #57 you already introduced another asset loaded from a third-party.

Again for self-hosted (internal business) installations, this is not a good thing as there all assets should be loaded locally.

Cannot find module 'babelify'

Getting this when hitting the page... npm install -g babelify did not help.

$ env PORT=8080 filepizza
FilePizza listening on :::8080
GET / 200 28.960 ms - -
GET /images/up.png 304 3.406 ms - -
GET /images/pizza.png 304 0.841 ms - -
events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: Cannot find module 'babelify' from '/Users'
    at /usr/local/lib/node_modules/filepizza/node_modules/browserify-middleware/node_modules/browserify/node_modules/resolve/lib/async.js:50:17
    at process (/usr/local/lib/node_modules/filepizza/node_modules/browserify-middleware/node_modules/browserify/node_modules/resolve/lib/async.js:119:43)
    at /usr/local/lib/node_modules/filepizza/node_modules/browserify-middleware/node_modules/browserify/node_modules/resolve/lib/async.js:128:21
    at load (/usr/local/lib/node_modules/filepizza/node_modules/browserify-middleware/node_modules/browserify/node_modules/resolve/lib/async.js:60:43)
    at /usr/local/lib/node_modules/filepizza/node_modules/browserify-middleware/node_modules/browserify/node_modules/resolve/lib/async.js:66:22
    at /usr/local/lib/node_modules/filepizza/node_modules/browserify-middleware/node_modules/browserify/node_modules/resolve/lib/async.js:21:47
    at FSReqWrap.oncomplete (fs.js:99:15)```

NPM registration and global install

I would love to be able to install this via NPM and run it as a global command from any location in the terminal. Any plans on publishing it to NPM?

Download counter?

It would be great to have an indication if the person I send the link to has downloaded the file (so I can close the browser window). Right now, it only shows activity during an active download, but not after the download ended.

Large downloads failing

Failed Download

I'm not sure what the threshold is for failed downloads, but I received this error twice today while trying to transfer a couple of zips. One was 200mb the other was 500, both times the transfer looked fine, but once the file had been delivered the download would fail with the following error message:
"The server could not find the file"

Chrome 42, OSX Yosemite

local network discovery

Does filepizza recognize if two devices are on the same local network and does it make use of it for faster file transfer?

Use different log level

How can we use a different log level?
The current "info" one is too verbose as I do not want to log each requested file with all request headers!

Download not working from Chrome

I'm on Chrome 54 on Linux (connected to the internet via NAT).
I upload a file and visit the URL on another browser on firefox 48 running on the same machine.
I see the filename and size and click "download" in firefox.

Nothing happens.

kinda broken

file.pizza instance:
WebSocket connection to 'ws://file.pizza/peer/peerjs?key=peerjs&id=5c282d4a-ee71-4849-a2b1-180f76218220&token=j4khg3a8yg44pldi' failed: Error during WebSocket handshake: Unexpected response code: 404
js:11 WebSocket connection to 'ws://file.pizza/socket.io/?EIO=3&transport=websocket&sid=Pl4_msu7sxmnnMCzABK0' failed: Error during WebSocket handshake: Unexpected response code: 400
js:1 Uncaught TypeError: Cannot read property 'on' of undefined
js:11 WebSocket connection to 'ws://file.pizza/socket.io/?EIO=3&transport=websocket&sid=NTr7iT3r4azxVwyfABK2' failed: Error during WebSocket handshake: Unexpected response code: 400

A local instance listens, but when you visit the site no Js nor css is loaded, just plain HTML.

Unexpected token >

Error is related on row 56 of server.js module, after launching filepizza (no extra parameters)

Details:
C:\Users\xxxx\AppData\Roaming\npm\node_modules\filepizza\lib\server.js:56
db.create(socket).then((u) => {
^
SyntaxError: Unexpected token >

OS: Windows 7 64 bit
Node version: v0.10.26
Npm version: v2.11.3
Python version: 2.7.10

Thank you for any suggestion.

Lewix

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.