diff --git a/README.md b/README.md index b8c104c..5311a41 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,44 @@ -![Sharefest](https://raw.github.com/Peer5/ShareFest/master/public/img/logo.png) +![Sharefest](https://raw.github.com/Peer5/ShareFest/master/sharefest/public/img/logo.png) One-To-Many sharing application. Serverless. Eliminates the need to fully upload your file to services such as Dropbox or Google Drive. -Put your file and start sharing immidiately with anyone that enters the page. -Pure javascript-based, no plugins needed, thanks to HTML5 WebRTC Data Channel API - http://webrtc.org +Put your file and start sharing immediately with anyone that enters the page. +Pure javascript-based. No plugins needed thanks to HTML5 WebRTC Data Channel API - http://webrtc.org How does it work ================ -http://www.youtube.com/watch?v=p2HzZkd2A40#t=15m29s +http://sharefest.me/faq +http://www.youtube.com/watch?v=p2HzZkd2A40&feature=youtu.be&t=15m30s Sharefest operates on a mesh network similar to Bittorrent network. The main difference is that currently the peers are coordinated using an intelligent server. This coordinator controls which parts are sent from A to B and who shall talk with whom. Peer5 Coordinator (or any other solution) is used to accomplish this. Each peer will connect to few other peers in order to maximize the distribution of the file. -Supporting Chrome (>26, now stable) and Firefox (>19) +Supporting Chrome (>26) and Firefox (>19) -First version includes a simple page that one user will drag a file to -share, and a other users will enter the first user's url and start downloading the file. +First version includes a simple page that one user will drag a file onto to +share, and other users will enter the first user's url and start downloading the file. -test it out at: http://sharefest.me +Hosted version: http://sharefest.me TODO: ============ -* local storage -* RESTful API -* tests * see issues - https://github.com/Peer5/ShareFest/issues -Quick setup after cloning +Quick setup ============== -install nodejs -cd into sharefest root directory and do "npm install" -run node server.js +1. Install nodejs +2. [Download](https://github.com/Peer5/ShareFest/archive/master.zip) this repo, or `git clone https://github.com/Peer5/ShareFest.git` +3. `cd ShareFest` +4. `npm install --dedupe` to install dependencies. +5. `npm start` to start the server +6. http://localhost:13337 should work + +Environment Variables +============== +NODE_ENV: development or production +REQUIRE_HTTPS: 1 redirect to HTTPS when http GET request is coming About ============== @@ -41,4 +47,4 @@ It was soon open sourced to GitHub and now being developed by Peer5 and a commun License ============== -Apache 2.0 - see LICENSE file +Apache 2.0 - see LICENSE file \ No newline at end of file diff --git a/sharefest/run-prod.sh b/sharefest/run-prod.sh index 21ae179..395930c 100644 --- a/sharefest/run-prod.sh +++ b/sharefest/run-prod.sh @@ -1,8 +1,18 @@ #!/bin/sh +# Starts sharefest server "daemon" +# Using forever (npm install forever -g) + +# run in production mode (port 443 and 80) export NODE_ENV=production -#export WS_SERVER="`curl http://169.254.169.254/latest/meta-data/public-ipv4`" -#export WS_PORT=443 + +# enforce https export REQUIRE_HTTPS=1 + +# configure logs NOW=$(date +"%F") + +# stop existing if found forever stop server.js -forever start -e err.log -o out.log -l $NOW.log --append server.js + +# +forever start -e err.log -o out.log -l $NOW.log --append server.js \ No newline at end of file diff --git a/sharefest/server.js b/sharefest/server.js index 53de998..53beb57 100644 --- a/sharefest/server.js +++ b/sharefest/server.js @@ -43,6 +43,8 @@ app.configure('development', function () { app.configure('production', function () { var options = { + // Important: the following crt and key files are insecure + // replace the following files with your own keys key:fs.readFileSync('secret/private.key'), ca:[fs.readFileSync('secret/AddTrustExternalCARoot.crt'), fs.readFileSync('secret/SSLcomAddTrustSSLCA.crt')],