X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=README.md;h=c908d7bcb69213fab679db43aee5bce0969997d8;hb=f0adb2701c1cf404ff63095f71e542bfe6d025ae;hp=8a2a60c8fd006d96f86457ef19e67faede961a3e;hpb=0150b17e51df3e9fad8a59133d828c68f8ba672b;p=github%2FChocobozzz%2FPeerTube.git diff --git a/README.md b/README.md index 8a2a60c8f..c908d7bcb 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Decentralized video streaming platform using P2P (BitTorrent) directly in the we Dependency Status - + devDependency Status

@@ -33,7 +33,7 @@ Decentralized video streaming platform using P2P (BitTorrent) directly in the we Dependencies Status - + devDependency Status @@ -49,8 +49,8 @@ Decentralized video streaming platform using P2P (BitTorrent) directly in the we

- - screenshot + + screenshot

@@ -58,8 +58,8 @@ Decentralized video streaming platform using P2P (BitTorrent) directly in the we 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 + * [Demo server](http://peertube.cpy.re) + * [Video](https://vimeo.com/164881662 "Yes Vimeo, please don't judge me") to see how the "decentralization feature" looks like * Experimental demo servers that share videos (they are in the same network): [peertube2](http://peertube2.cpy.re), [peertube3](http://peertube3.cpy.re). Since I do experiments with them, sometimes they might not work correctly. ## Why @@ -93,21 +93,27 @@ Thanks to [WebTorrent](https://github.com/feross/webtorrent), we can make P2P (t - [X] Account rights (upload...) - [X] Make the network auto sufficient (eject bad pods etc) - [X] Validate the prototype (test PeerTube in a real world) -- [ ] Manage API breaks +- [ ] Manage inter pod API breaks - [ ] Add "DDOS" security (check if a pod don't send too many requests for example) - [X] Admin panel - [X] Stats - [X] Friends list - [X] Manage users (create/remove) - [X] OpenGraph tags +- [X] Update video +- [X] Videos view count +- [X] Videos likes/dislikes +- [ ] Videos comments? +- [X] User registration - [ ] User playlists - [ ] User subscriptions (by tags, author...) - [X] Signaling a video to the admin origin pod -- [ ] Videos view count -- [ ] Videos likes/dislikes + ## Installation +See [wiki](https://github.com/Chocobozzz/PeerTube/wiki) for complete installation commands. + ### Front compatibility * Chromium @@ -115,21 +121,22 @@ Thanks to [WebTorrent](https://github.com/feross/webtorrent), we can make P2P (t ### Dependencies - * **NodeJS >= 4.x** + * **NodeJS >= 6.x** * **npm >= 3.x** + * yarn * OpenSSL (cli) * PostgreSQL * FFmpeg #### Debian - * Install NodeJS 4.x (actual LTS): [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) + * Install NodeJS 6.x (actual LTS): [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) + * Install yarn: [https://yarnpkg.com/en/docs/install](https://yarnpkg.com/en/docs/install) * Add jessie backports to your *source.list*: http://backports.debian.org/Instructions/ * Run: # apt-get update # apt-get install ffmpeg postgresql-9.4 openssl - # npm install -g npm@3 #### Other distribution... (PR welcome) @@ -138,7 +145,7 @@ Thanks to [WebTorrent](https://github.com/feross/webtorrent), we can make P2P (t $ git clone -b master https://github.com/Chocobozzz/PeerTube $ cd PeerTube - $ npm install # Or npm install --unsafe-perm for root user + $ yarn install $ npm run build ## Usage @@ -159,8 +166,7 @@ The administrator password is automatically generated and can be found in the lo $ NODE_ENV=production npm run reset-password -- -u root -**Nginx template** (reverse proxy): https://github.com/Chocobozzz/PeerTube/tree/master/support/nginx - +**Nginx template** (reverse proxy): https://github.com/Chocobozzz/PeerTube/tree/master/support/nginx
**Systemd template**: https://github.com/Chocobozzz/PeerTube/tree/master/support/systemd You can check the application (CORS headers, tracker websocket...) by running: @@ -172,16 +178,28 @@ You can check the application (CORS headers, tracker websocket...) by running: The following commands will upgrade the source (according to your current branch), upgrade node modules and rebuild client application: # systemctl stop peertube - $ npm run upgrade + $ npm run upgrade-peertube # systemctl start peertube ### Development -In this mode, the server will run requests between pods more quickly, the videos duration are limited to a few seconds and the client files are automatically compiled when we modify them: +In this mode, the server will run requests between pods more quickly, the videos duration are limited to a few seconds. + +To develop on the server side (server files are automatically compiled when we modify them and the server restarts automatically too): + + $ npm run dev:server + +The server (with the client) will listen on `localhost:9000`. + + +To develop on the client side (client files are automatically compiled when we modify them): + + $ npm run dev:client - $ npm run dev +The API will listen on `localhost:9000` and the frontend on `localhost:3000` (with hot module replacement, you don't need to refresh the web browser). -The administrator password is displayed in the command output and can be found in the logs. +**Username**: *root*
+**Password**: *test* ### Test with 3 fresh nodes @@ -233,19 +251,19 @@ Here are some simple schemes:

-Decentralized +Decentralized -Watch a video +Watch a video -Watch a P2P video +Watch a P2P video -Join a network +Join a network -Many networks +Many networks

### Frontend -There already is a frontend (Angular 2) but the backend is a REST API so anybody can build a frontend (Web application, desktop application...). +There already is a frontend (Angular) but the backend is a REST API so anybody can build a frontend (Web application, desktop application...). The backend uses BitTorrent protocol, so users could use their favorite BitTorrent client to download/play the video with its torrent URI.