aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github/CONTRIBUTING.md
diff options
context:
space:
mode:
Diffstat (limited to '.github/CONTRIBUTING.md')
-rw-r--r--.github/CONTRIBUTING.md77
1 files changed, 39 insertions, 38 deletions
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 989087728..dec6a5cd0 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -1,14 +1,12 @@
1# Welcome to the contributing guide for PeerTube 1# Welcome to the contributing guide for PeerTube
2 2
3Interesting in contributing? Awesome :) 3Interesting in contributing? Awesome!
4 4
5**Quick Links:** 5**Quick Links:**
6 6
7 * [Give your feedback](#give-your-feedback) 7 * [Give your feedback](#give-your-feedback)
8 * [Develop on the Server side](#develop-on-the-server-side)
9 * [Develop on the Client side](#develop-on-the-client-side)
10 * [Get started with development](#get-started-with-development)
11 * [Write documentation](#write-documentation) 8 * [Write documentation](#write-documentation)
9 * [Develop](#develop)
12 10
13 11
14## Give your feedback 12## Give your feedback
@@ -16,40 +14,32 @@ Interesting in contributing? Awesome :)
16You don't need to know how to code to start contributing to PeerTube! Other 14You don't need to know how to code to start contributing to PeerTube! Other
17contributions are very valuable too, among which: you can test the software and 15contributions are very valuable too, among which: you can test the software and
18report bugs, you can give feedback on potential bugs, features that you are 16report bugs, you can give feedback on potential bugs, features that you are
19interested in, user interace, design, decentralized architecture... 17interested in, user interface, design, decentralized architecture...
20 18
21 19
22## Development 20## Write documentation
23
24## Develop on the Server side
25 21
26The server is a web server developed with 22You can help to write the documentation of the REST API, code, architecture,
27[NodeJS](https://nodejs.org)/[Express](http://expressjs.com). 23demonstrations...
28 24
29Newcomer? You can find a documentation of the server code/architecture 25## Develop
30[here](https://github.com/Chocobozzz/PeerTube/blob/master/support/doc/server/code.md).
31 26
32Don't hesitate to talk about features you want to develop by creating an issue 27Don't hesitate to talk about features you want to develop by creating an issue
33before you start working on them :). 28before you start working on them :).
34 29
30### Prerequisites
35 31
36## Develop on the Client side 32First, make sure that you have followed
37 33[the steps](/support/doc/dependencies.md)
38The client is a web application developed with 34to install the dependencies.
39[TypeScript](https://www.typescriptlang.org/)/[Angular2](https://angular.io/).
40
41Newcomer? You can find a documentation of the server code/architecture
42[here](https://github.com/Chocobozzz/PeerTube/blob/master/support/doc/client/code.md).
43
44
45## Get started with development
46
47In this mode, the server will run requests between instances more quickly, the
48video durations are limited to a few seconds.
49 35
50### Prerequisites 36Then clone the sources and install node modules:
51 37
52First, make sure that you have followed the steps to install the dependencies. 38```bash
39$ git clone -b master https://github.com/Chocobozzz/PeerTube
40$ cd PeerTube
41$ yarn install --pure-lockfile
42```
53 43
54Then, create a postgres database and user with the values set in the 44Then, create a postgres database and user with the values set in the
55`config/default.yaml` file. For instance, if you do not change the values 45`config/default.yaml` file. For instance, if you do not change the values
@@ -57,40 +47,51 @@ there, the following commands would create a new database called `peertube_dev`
57and a postgres user called `peertube` with password `peertube`: 47and a postgres user called `peertube` with password `peertube`:
58 48
59```bash 49```bash
60 # sudo -u postgres createuser -P peertube 50# sudo -u postgres createuser -P peertube
61 Enter password for new role: peertube 51Enter password for new role: peertube
62 # sudo -u postgres createdb -O peertube peertube_dev 52# sudo -u postgres createdb -O peertube peertube_dev
63``` 53```
64 54
55In dev mode, administrator username is **root** and password is **test**.
56
65### Server side 57### Server side
66 58
59You can find a documentation of the server code/architecture [here](/support/doc/development/server/code.md).
60
67To develop on the server-side: 61To develop on the server-side:
68 62
69```bash 63```bash
70 $ npm run dev:server 64$ npm run dev:server
71``` 65```
72 66
73Then, the server will listen on `localhost:9000`. When server source files 67Then, the server will listen on `localhost:9000`. When server source files
74change, these are automatically recompiled and the server will automatically 68change, these are automatically recompiled and the server will automatically
75restart. 69restart. Server is in `TEST` mode so it will run requests between instances more quickly.
76 70
77### Client side 71### Client side
78 72
73You can find a documentation of the server code/architecture
74[here](/support/doc/development/client/code.md).
75
76
79To develop on the client side: 77To develop on the client side:
80 78
81```bash 79```bash
82 $ npm run dev:client 80$ npm run dev:client
83``` 81```
84 82
85The API will listen on `localhost:9000` and the frontend on `localhost:3000`. 83The API will listen on `localhost:9000` and the frontend on `localhost:3000`.
86Client files are automatically compiled on change, and the web browser will 84Client files are automatically compiled on change, and the web browser will
87reload them automatically thanks to hot module replacement. 85reload them automatically thanks to hot module replacement.
88 86
89**Username**: *root* <br/> 87### Test federation
90**Password**: *test*
91 88
89This will run 3 nodes:
92 90
93## Write documentation 91```bash
92$ npm run clean:server:test
93$ npm run play
94```
94 95
95You can help to write the documentation of the REST API, code, architecture, 96Then you will get access to the three nodes at `http://localhost:900{1,2,3}`
96demonstrations... 97with the `root` as username and `test{1,2,3}` for the password.