- [RTL layout](#rtl-layout)
- [Testing](#testing)
- [Unit/integration tests](#unitintegration-tests)
- - [Testing the federation of PeerTube servers](#testing-the-federation-of-peertube-servers)
+ - [Play with a federation of PeerTube servers](#play-with-a-federation-of-peertube-servers)
- [Emails](#emails)
- [OpenAPI documentation](#openapi-documentation)
- [Environment variables](#environment-variables)
+ - [Generate/pull translations](#generatepull-translations)
+ - [Release PeerTube](#release-peertube)
+ - [PeerTube packages](#peertube-packages)
+ - [CI](#ci)
+ - [Monitoring](#monitoring)
+ - [Test live stream](#test-live-stream)
- [Plugins & Themes](#plugins--themes)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
### 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:
```
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:
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`.
### RTL layout
-To test RTL layout using `ar` locale:
+To test RTL (right-to-left) layout using `ar` locale:
```
$ npm run dev -- --ar-locale
See the [dedicated documentation](/support/doc/development/tests.md) to run tests locally.
-#### Testing the federation of PeerTube servers
+#### Play with a federation of PeerTube servers
Create a PostgreSQL user **with the same name as your username** in order to avoid using the *postgres* user.
Then, we can create the databases (if they don't already exist):
$ NODE_APP_INSTANCE=3 NODE_ENV=test npm start
```
-Then you will get access to the three nodes at `http://localhost:900{1,2,3}`
+Then you will get access to the three nodes at `http://127.0.0.1:900{1,2,3}`
with the `root` as username and `test{1,2,3}` for the password.
Instance configurations are in `config/test-{1,2,3}.yaml`.
### 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:
```
-npx redoc-cli serve --watch ./support/doc/api/openapi.yaml
+npx @redocly/cli preview-docs ./support/doc/api/openapi.yaml
```
### 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:
* `PEERTUBE_LOCAL_CONFIG`: directory to find the local configuration file (used by web admin)
* `NODE_DB_LOG=false`: disable SQL request logging
+### Generate/pull translations
+
+See the [dedicated documentation](/support/doc/development/localization.md) to update PeerTube translations from Weblate or to support a new locale.
+
+### Release PeerTube
+
+See the [dedicated documentation](/support/doc/development/release.md) to release a new version of PeerTube.
+
+### PeerTube packages
+
+This repository also contains other packages/libraries than PeerTube (embed API, PeerTube types...).
+You can see the list on the [dedicated documentation](/support/doc/development/lib.md).
+
+### CI
+
+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
+
+You can check the content of the client bundle or benchmark the REST API.
+To do so, see the [dedicated documentation](/support/doc/development/monitoring.md).
+
+### Test live stream
+
+To easily test a live 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:
+
+```
+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