[the steps](/support/doc/dependencies.md)
to install the dependencies.
1) Install [parallel](https://www.gnu.org/software/parallel/) to be able to run tests.
-1) Fork the Github repository.
+1) Fork the GitHub repository.
1) Run the following commands.
```
-$ git clone https://github.com/Chocobozzz/PeerTube
-$ cd PeerTube
-$ git remote add me git@github.com:YOUR_GITHUB_USERNAME/PeerTube.git
-$ yarn install --pure-lockfile
+git clone https://github.com/Chocobozzz/PeerTube
+cd PeerTube
+git remote add me git@github.com:YOUR_GITHUB_USERNAME/PeerTube.git
+yarn install --pure-lockfile
```
Note that development is done on the `develop` branch. If you want to hack on
-Peertube, you should switch to that branch. Also note that you have to repeat
+PeerTube, you should switch to that branch. Also note that you have to repeat
the `yarn install --pure-lockfile` command.
When you create a new branch you should also tell to use your repo for upload
not default one. To do just do:
```
-$ git push --set-upstream me <your branch name>
+git push --set-upstream me <your branch name>
```
Then, create a postgres database and user with the values set in the
Then enable extensions PeerTube needs:
```
-$ sudo -u postgres psql -c "CREATE EXTENSION pg_trgm;" peertube_dev
-$ sudo -u postgres psql -c "CREATE EXTENSION unaccent;" peertube_dev
+sudo -u postgres psql -c "CREATE EXTENSION pg_trgm;" peertube_dev
+sudo -u postgres psql -c "CREATE EXTENSION unaccent;" peertube_dev
```
-Peertube also requires a running redis server, no special setup is needed for
+PeerTube also requires a running redis server, no special setup is needed for
this.
In dev mode, administrator username is **root** and password is **test**.
### Server side
-You can find a documentation of the server code/architecture [here](https://docs.joinpeertube.org/contribute-architecture?id=server-code).
-
To develop on the server-side:
```
-$ npm run dev:server
+npm run dev:server
```
Then, the server will listen on `localhost:9000`. When server source files
change, these are automatically recompiled and the server will automatically
restart.
-### Client side
-
-You can find a documentation of the client code/architecture
-[here](https://docs.joinpeertube.org/contribute-architecture?id=client-code).
+More detailed documentation is available:
+ * [Server code/architecture](https://docs.joinpeertube.org/contribute/architecture#server)
+ * [Server development (adding a new feature...)](/support/doc/development/server.md)
+### Client side
To develop on the client side:
```
-$ npm run dev:client
+npm run dev:client
```
The API will listen on `localhost:9000` and the frontend on `localhost:3000`.
Client files are automatically compiled on change, and the web browser will
reload them automatically thanks to hot module replacement.
+More detailed documentation is available:
+ * [Client code/architecture](https://docs.joinpeertube.org/contribute/architecture#client)
+
+
### Client and server side
The API will listen on `localhost:9000` and the frontend on `localhost:3000`.
and the web server is automatically restarted.
```
-$ npm run dev
+npm run dev
```
### Embed
The following command will compile embed files and run the PeerTube server:
```
-$ npm run dev:embed
+npm run dev:embed
```
### RTL layout
To test RTL (right-to-left) layout using `ar` locale:
```
-$ npm run dev -- --ar-locale
+npm run dev -- --ar-locale
```
### Testing
Then, we can create the databases (if they don't already exist):
```
-$ sudo -u postgres createuser you_username --createdb --superuser
-$ createdb -O peertube peertube_test{1,2,3}
+sudo -u postgres createuser you_username --createdb --superuser
+createdb -O peertube peertube_test{1,2,3}
```
Build the application and flush the old tests data:
```
-$ npm run build
-$ npm run clean:server:test
+npm run build
+npm run clean:server:test
```
To run 3 nodes:
```
-$ NODE_APP_INSTANCE=1 NODE_ENV=test npm start
-$ NODE_APP_INSTANCE=2 NODE_ENV=test npm start
-$ NODE_APP_INSTANCE=3 NODE_ENV=test npm start
+NODE_APP_INSTANCE=1 NODE_ENV=test npm start
+NODE_APP_INSTANCE=2 NODE_ENV=test npm start
+NODE_APP_INSTANCE=3 NODE_ENV=test npm start
```
Then you will get access to the three nodes at `http://127.0.0.1:900{1,2,3}`
### OpenAPI documentation
-The [REST API documentation](https://docs.joinpeertube.org/api-rest-reference.html) is generated from `support/doc/api/openapi.yaml` file.
+The [REST API documentation](https://docs.joinpeertube.org/api/rest-reference.html) is generated from `support/doc/api/openapi.yaml` file.
To quickly get a preview of your changes, you can generate the documentation *on the fly* using the following command:
```
### Environment variables
PeerTube can be configured using environment variables.
-See the list on https://docs.joinpeertube.org/maintain-configuration?id=environment-variables
+See the list on https://docs.joinpeertube.org/maintain/configuration#environment-variables
Additionally to these ones, we provide some environment for dev/test purpose:
### CI
-PeerTube uses Github actions to run tests every time a commit is pushed or a PR is opened.
+PeerTube uses GitHub actions to run tests every time a commit is pushed or a PR is opened.
You can find more information about these tasks on the [dedicated documentation](/support/doc/development/ci.md).
### Monitoring
### Test live stream
-To easily test a live on PeerTube:
+To easily test a live stream on PeerTube:
* Enable live support in web admin configuration
* Create a permanent live on the PeerTube instance
* Get the **RTMP URL** and the **Live stream key**
- * Send the live to PeerTube using `ffmpeg` using a local video:
+ * Send the live stream to PeerTube using `ffmpeg` using a local video:
```
ffmpeg -stream_loop -1 -re -i any-video.mp4 -c copy -f flv rtmp://{RTMP URL}/live/{STREAM KEY}
## Plugins & Themes
-See the dedicated documentation: https://docs.joinpeertube.org/contribute-plugins
+See the dedicated documentation: https://docs.joinpeertube.org/contribute/plugins