X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=README.md;h=f9c4905a70fcbfbd83730e1040308eb7b6e56ea2;hb=0629423ce335137ce77d1ee8fe30fc0eee36d83b;hp=e2b52f6fdff8e017bf7e1a69215ba89e9d93db56;hpb=3a8a8b51228070d8e6a01ea6e460534aa0a20efc;p=github%2FChocobozzz%2FPeerTube.git diff --git a/README.md b/README.md index e2b52f6fd..f9c4905a7 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,27 @@ # PeerTube -*Server* - +**Server** [![Build Status](https://travis-ci.org/Chocobozzz/PeerTube.svg?branch=master)](https://travis-ci.org/Chocobozzz/PeerTube) [![Dependencies Status](https://david-dm.org/Chocobozzz/PeerTube.svg)](https://david-dm.org/Chocobozzz/PeerTube) [![devDependency Status](https://david-dm.org/Chocobozzz/PeerTube/dev-status.svg)](https://david-dm.org/Chocobozzz/PeerTube#info=devDependencies) [![Code climate](https://codeclimate.com/github/Chocobozzz/PeerTube/badges/gpa.svg)](https://codeclimate.com/github/Chocobozzz/PeerTube) -*Client* - +**Client** [![Dependency Status](https://david-dm.org/Chocobozzz/PeerTube.svg?path=client)](https://david-dm.org/Chocobozzz/PeerTube?path=client) [![devDependency Status](https://david-dm.org/Chocobozzz/PeerTube/dev-status.svg?path=client)](https://david-dm.org/Chocobozzz/PeerTube?path=client#info=devDependencies) +[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) + Prototype of a decentralized video streaming platform using P2P (bittorrent) directly in the web browser with [WebTorrent](https://github.com/feross/webtorrent). -[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) +![screenshot](https://lutim.cpy.re/vC2loRww) + +## Demonstration + +Want to see in action? + + * You can directly test in your browser with this [demo server](http://peertube.cpy.re). Don't forget to use the latest version of Firefox/Chromium/(Opera?) and check your firewall configuration (for WebRTC) + * You can find [a video](https://vimeo.com/164881662 "Yes Vimeo, please don't judge me") to see how the "decentralization feature" looks like ## Why @@ -43,13 +50,17 @@ Thanks to [WebTorrent](https://github.com/feross/webtorrent), we can make P2P (t - [X] List the videos - [X] Search a video name (local index) - [X] View the video in an HTML5 page with WebTorrent -- [ ] Manage user accounts - - [ ] Inscription +- [X] Manage admin account - [X] Connection - [X] Account rights (upload...) - [X] Make the network auto sufficient (eject bad pods etc) +- [ ] Validate the prototype (test PeerTube in a real world with many pods and videos) - [ ] Manage API breaks - [ ] Add "DDOS" security (check if a pod don't send too many requests for example) +- [ ] Admin panel + - [ ] Stats about the network (how many friends, how many requests per hour...) + - [ ] Stats about videos + - [ ] Manage users (create/remove) ## Installation @@ -70,10 +81,11 @@ Thanks to [WebTorrent](https://github.com/feross/webtorrent), we can make P2P (t * Install NodeJS 4.2: [https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) * Add jessie backports to your *source.list*: http://backports.debian.org/Instructions/ + * Run: - # apt-get update - # apt-get install ffmpeg mongodb openssl xvfb curl sudo git build-essential libgtk2.0-0 libgconf-2-4 libnss3 libasound2 libxtst6 libxss1 libnotify-bin - # npm install -g electron-prebuilt + # apt-get update + # apt-get install ffmpeg mongodb openssl xvfb curl sudo git build-essential libgtk2.0-0 libgconf-2-4 libnss3 libasound2 libxtst6 libxss1 libnotify-bin + # npm install -g electron-prebuilt #### Other distribution... (PR welcome) @@ -87,7 +99,7 @@ Thanks to [WebTorrent](https://github.com/feross/webtorrent), we can make P2P (t ## Usage -### Run the server +### Development $ npm start @@ -98,6 +110,18 @@ Thanks to [WebTorrent](https://github.com/feross/webtorrent), we can make P2P (t Then you will can access to the three nodes at `http://localhost:900{1,2,3}`. If you call "make friends" on `http://localhost:9002`, the pod 2 and 3 will become friends. Then if you call "make friends" on `http://localhost:9001` it will become friend with the pod 2 and 3 (check the configuration files). Then the pod will communicate with each others. If you add a video on the pod 3 you'll can see it on the pod 1 and 2 :) +### Production + +If you want to run PeerTube for production (bad idea for now :) ): + + $ cp config/production.yaml.example config/production.yaml + +Then edit the `config/production.yaml` file according to your webserver configuration. + +Finally, run the server with the `production` `NODE_ENV` variable set. + + $ NODE_ENV=production npm start + ### Other commands To print all available command run: @@ -130,15 +154,15 @@ See the ARCHITECTURE.md for more informations. Do not hesitate to give your opin Here are some simple schemes: -![Decentralized](http://lutim.cpy.re/Q7mnNdJP) +![Decentralized](https://lutim.cpy.re/Q7mnNdJP) -![Watch a video](http://lutim.cpy.re/0riSzAp1) +![Watch a video](https://lutim.cpy.re/0riSzAp1) -![Watch a video P2P](http://lutim.cpy.re/OzMSOtxG) +![Watch a video P2P](https://lutim.cpy.re/OzMSOtxG) -![Join a network](http://lutim.cpy.re/uVjNNRa9) +![Join a network](https://lutim.cpy.re/uVjNNRa9) -![Many networks](http://lutim.cpy.re/udTMqcb0) +![Many networks](https://lutim.cpy.re/udTMqcb0) ### Frontend