]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - README.md
Server: Uploads -> Videos
[github/Chocobozzz/PeerTube.git] / README.md
index c5911bc6d5f8dd06903fe6c2e917c5267423032f..02f649ac076f40ef71c1668a8f3056001cea312d 100644 (file)
--- a/README.md
+++ b/README.md
@@ -60,6 +60,7 @@ 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
+   * 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
 
@@ -95,10 +96,12 @@ Thanks to [WebTorrent](https://github.com/feross/webtorrent), we can make P2P (t
 - [ ] 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)
+- [X] Admin panel
+  - [X] Stats
+  - [X] Friends list
+  - [X] Manage users (create/remove)
+- [ ] User playlists
+- [ ] User subscriptions (by tags, author...)
 
 
 ## Installation
@@ -110,20 +113,21 @@ Thanks to [WebTorrent](https://github.com/feross/webtorrent), we can make P2P (t
 
 ### Dependencies
 
-  * **NodeJS >= 4.2**
+  * **NodeJS >= 4.x**
+  * **npm >= 3.x**
   * OpenSSL (cli)
   * MongoDB
-  * ffmpeg xvfb-run libgtk2.0-0 libgconf-2-4 libnss3 libasound2 libxtst6 libxss1 libnotify-bin (for electron)
+  * ffmpeg
 
 #### Debian
 
-  * 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)
+  * 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)
   * 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 install ffmpeg mongodb openssl
+        # npm install -g npm@3
 
 #### Other distribution... (PR welcome)
 
@@ -160,6 +164,10 @@ Finally, run the server with the `production` `NODE_ENV` variable set.
 
     $ NODE_ENV=production npm start
 
+**Nginx template** (reverse proxy): https://github.com/Chocobozzz/PeerTube/tree/master/support/nginx
+
+**Systemd template**: https://github.com/Chocobozzz/PeerTube/tree/master/support/systemd
+
 ### Other commands
 
 To print all available command run:
@@ -189,12 +197,11 @@ See [ARCHITECTURE.md](https://github.com/Chocobozzz/PeerTube/blob/master/ARCHITE
     * Each server of a network has a list of all other servers of this network
     * When a new installed server wants to join a network, it just has to get the servers list through a server that is already in the network and tell "Hi I'm new in the network, communicate with me and share me your servers list please". Then the server will "make friend" with each server of this list
     * Each server has its own users who query it (search videos, where the torrent URI of this specific video is...)
-    * If an user upload a video, the server seeds it and sends the video informations (name, short description, torrent URI...) to each server of the network
+    * If a user upload a video, the server seeds it and sends the video informations (name, short description, torrent URI...) to each server of the network
     * Each server has a RSA key to encrypt and sign communications with other servers
   * A server is a tracker responsible for all the videos uploaded in it
-  * Even if nobody watches a video, it is seeded by the server where the video was uploaded
+  * Even if nobody watches a video, it is seeded by the server (throught [WebSeed protocol](http://www.bittorrent.org/beps/bep_0019.html)) where the video was uploaded
   * A network can live and evolve by expelling bad pod (with too many downtimes for example)
-  * A server **would** run webtorrent-hybrid to be a bridge with webrtc/standard bittorrent protocol
 
 See the ARCHITECTURE.md for more informations. Do not hesitate to give your opinion :)
 
@@ -202,19 +209,19 @@ Here are some simple schemes:
 
 <p align="center">
 
-<img src="https://lutim.cpy.re/Q7mnNdJP" alt="Decentralized" />
+<img src="https://lutim.cpy.re/isWwz8tt" alt="Decentralized" />
 
-<img src="https://lutim.cpy.re/0riSzAp1" alt="Watch a video" />
+<img src="https://lutim.cpy.re/VLheltQk" alt="Watch a video" />
 
-<img src="https://lutim.cpy.re/OzMSOtxG" alt="Watch a P2P video" />
+<img src="https://lutim.cpy.re/worHQwKv" alt="Watch a P2P video" />
 
-<img src="https://lutim.cpy.re/uVjNNRa9" alt="Join a network" />
+<img src="https://lutim.cpy.re/MyeS4q1g" alt="Join a network" />
 
-<img src="https://lutim.cpy.re/udTMqcb0" alt="Many networks"
+<img src="https://lutim.cpy.re/PqpTTzdP" alt="Many networks"
 
 </p>
 
 ### 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...).
-The backend uses bittorrent protocol, so users could use their favorite bittorrent client to download/play the video with its torrent URI.
+The backend uses BitTorrent protocol, so users could use their favorite BitTorrent client to download/play the video with its torrent URI.