]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - .github/CONTRIBUTING.md
Translated using Weblate (Italian)
[github/Chocobozzz/PeerTube.git] / .github / CONTRIBUTING.md
index fcb803e2596a1a2cbc37af34748c4ec5902a2789..80b7cba3c5a740fa1f305468df4a6c4747fee9c0 100644 (file)
@@ -21,10 +21,16 @@ Interested in contributing? Awesome!
   - [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 -->
@@ -82,23 +88,23 @@ First, you should use a server or PC with at least 4GB of RAM. Less RAM may lead
 [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
@@ -115,11 +121,11 @@ Enter password for new role: peertube
 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**.
@@ -132,34 +138,36 @@ You can get a complete PeerTube development setup with Gitpod, a free one-click
 
 ### 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`.
@@ -167,7 +175,7 @@ File changes are automatically recompiled, injected in the web browser (no need
 and the web server is automatically restarted.
 
 ```
-npm run dev
+npm run dev
 ```
 
 ### Embed
@@ -177,15 +185,15 @@ The generated files (HTML entrypoint and multiple JS and CSS files) are served b
 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 layout using `ar` locale:
+To test RTL (right-to-left) layout using `ar` locale:
 
 ```
-npm run dev -- --ar-locale
+npm run dev -- --ar-locale
 ```
 
 ### Testing
@@ -197,32 +205,32 @@ as expected and respect the syntax conventions. They will run upon PR submission
 
 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):
 
 ```
-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://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`.
@@ -240,13 +248,13 @@ The [REST API documentation](https://docs.joinpeertube.org/api-rest-reference.ht
 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:
 
@@ -255,6 +263,41 @@ 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 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 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