From 00ffc03ece038ca42970624bc6efba5ddccb708b Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 22 Jul 2016 11:44:46 +0200 Subject: [PATCH] Server: begin a server documentation --- support/doc/server/code.md | 74 ++++++++++++++++++++++++++++ support/doc/server/upload-video.png | Bin 0 -> 58712 bytes 2 files changed, 74 insertions(+) create mode 100644 support/doc/server/code.md create mode 100644 support/doc/server/upload-video.png diff --git a/support/doc/server/code.md b/support/doc/server/code.md new file mode 100644 index 000000000..d49d120e9 --- /dev/null +++ b/support/doc/server/code.md @@ -0,0 +1,74 @@ +# Server code documentation + +The server is a web server developed with [NodeJS](https://nodejs.org)/[Express](http://expressjs.com). + + +## Technologies + + * [NodeJS](https://nodejs.org) -> Language + * [MongoDB](https://www.mongodb.com/) -> Database + * [Express](http://expressjs.com) -> Web server framework + * [Mongoose](http://mongoosejs.com/) -> MongoDB object modeling + * [WebTorrent](https://webtorrent.io/) -> BitTorrent over WebRTC + * [Electron](http://electron.atom.io/) -> To make WebRTC inside NodeJS + * [Mocha](https://mochajs.org/) -> Test framework + + +## Files + +The server main file is [server.js](https://github.com/Chocobozzz/PeerTube/blob/master/server.js). +The server modules description are in the [package.json](https://github.com/Chocobozzz/PeerTube/blob/master/package.json) at the project root. +All other server files are in the [server](https://github.com/Chocobozzz/PeerTube/tree/master/server) directory: + + server.js -> app initilization, main routes configuration (static routes...) + config -> server YAML configurations (for tests, production...) + scripts -> Scripts files for npm run + server + |__ controllers -> API routes/controllers files + |__ helpers -> functions used by different part of the project (logger, utils...) + |__ initializers -> functions used at the server startup (installer, database, constants...) + |__ lib -> library function (WebTorrent, OAuth2, friends logic...) + |__ middlewares -> middlewares for controllers (requests validators, requests pagination...) + |__ models -> Mongoose models for each MongoDB collection (videos, users, pods...) + |__ tests -> API tests and real world simulations (to test the decentralized feature...) + + +## Conventions + +Uses [JavaScript Standard Style](http://standardjs.com/). + + +## Developing + + * Install [the dependencies](https://github.com/Chocobozzz/PeerTube#dependencies) + * Run `npm install` at the root directory to install all the dependencies + * Run MongoDB + * Run `npm run dev` to compile the client and automatically run the server. If the client files are already compiled you can simply run `NODE_ENV=test node server` + +The `NODE_ENV=test` is set to speed up communications between pods (see [constants.js](https://github.com/Chocobozzz/PeerTube/blob/master/server/initializers/constants.js#L71)). + +`npm run help` give you all available commands. + +If you want to test the decentralization feature, you can easily run 3 pods by runnin `npm run play`. The pods password are `test1`, `test2` and `test3`. + + +## Architecture + +The server is composed by: + + * a REST API + * a WebTorrent Tracker + * A separate Electron process + +The seperate Electron process has the goal to seed videos through WebRTC because WebRTC directly in NodeJS is not usable for now. + +![Architecture scheme](https://github.com/Chocobozzz/PeerTube/blob/master/support/doc/server/upload-video.png) + +When an user upload a video, the rest API asks the Electron process to seed it (communicate with IPC) and then adds it to its Mongo database. + +If an user wants to watch the video, the tracker will indicate all other users that are watching the video + the Electron process. + +## Newcomers + +The server entrypoint is [server.js](https://github.com/Chocobozzz/PeerTube/blob/master/server.js). You can begin to look at this file. +Then you can try to understand the [controllers](https://github.com/Chocobozzz/PeerTube/tree/master/server/controllers): they are the entrypoint of each API request. diff --git a/support/doc/server/upload-video.png b/support/doc/server/upload-video.png new file mode 100644 index 0000000000000000000000000000000000000000..b3a867a42150216b72c88b75d2baee5b2959a444 GIT binary patch literal 58712 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

-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 literal 0 HcmV?d00001 -- 2.41.0