aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.github/CONTRIBUTING.md10
-rw-r--r--.github/ISSUE_TEMPLATE/10-installation-issue.yml4
-rw-r--r--.github/ISSUE_TEMPLATE/20-documentation-issue.yml2
-rw-r--r--.github/PULL_REQUEST_TEMPLATE.md2
-rw-r--r--CHANGELOG.md102
-rw-r--r--README.md16
-rw-r--r--client/src/app/+about/about-peertube/about-peertube.component.html6
-rw-r--r--client/src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html4
-rw-r--r--client/src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html2
-rw-r--r--client/src/app/+my-library/my-video-playlists/my-video-playlist-elements.component.html2
-rw-r--r--client/src/app/+signup/shared/signup-success-after-email.component.html2
-rw-r--r--client/src/app/+signup/shared/signup-success-before-email.component.html2
-rw-r--r--client/src/app/menu/menu.component.html2
-rw-r--r--client/src/app/modal/admin-welcome-modal.component.html12
-rw-r--r--client/src/app/shared/shared-custom-markup/custom-markup-help.component.html2
-rw-r--r--client/src/app/shared/shared-video-live/live-documentation-link.component.html2
-rw-r--r--client/src/standalone/player/README.md2
-rw-r--r--config/default.yaml8
-rw-r--r--config/production.yaml.example8
-rw-r--r--packages/types/README.md2
-rw-r--r--server/initializers/checker-after-init.ts2
-rw-r--r--server/middlewares/doc.ts2
-rw-r--r--server/middlewares/error.ts2
-rw-r--r--server/tests/api/check-params/videos.ts10
-rw-r--r--server/tests/api/server/follow-constraints.ts2
-rw-r--r--server/tools/README.md2
-rw-r--r--support/doc/api/embeds.md80
-rw-r--r--support/doc/api/openapi.yaml22
-rw-r--r--support/doc/docker.md4
-rw-r--r--support/doc/plugins/guide.md8
-rw-r--r--support/doc/production.md2
-rw-r--r--support/openapi/go/README.mustache2
-rw-r--r--support/openapi/python/README.mustache2
33 files changed, 166 insertions, 166 deletions
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index e635969ad..4b62a7a30 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -138,7 +138,7 @@ You can get a complete PeerTube development setup with Gitpod, a free one-click
138 138
139### Server side 139### Server side
140 140
141You can find a documentation of the server code/architecture [here](https://docs.joinpeertube.org/contribute-architecture?id=server-code). 141You can find a documentation of the server code/architecture [here](https://docs.joinpeertube.org/contribute/architecture#server).
142 142
143To develop on the server-side: 143To develop on the server-side:
144 144
@@ -153,7 +153,7 @@ restart.
153### Client side 153### Client side
154 154
155You can find a documentation of the client code/architecture 155You can find a documentation of the client code/architecture
156[here](https://docs.joinpeertube.org/contribute-architecture?id=client-code). 156[here](https://docs.joinpeertube.org/contribute/architecture#client).
157 157
158 158
159To develop on the client side: 159To develop on the client side:
@@ -242,7 +242,7 @@ To test emails with PeerTube:
242 242
243### OpenAPI documentation 243### OpenAPI documentation
244 244
245The [REST API documentation](https://docs.joinpeertube.org/api-rest-reference.html) is generated from `support/doc/api/openapi.yaml` file. 245The [REST API documentation](https://docs.joinpeertube.org/api/rest-reference.html) is generated from `support/doc/api/openapi.yaml` file.
246To quickly get a preview of your changes, you can generate the documentation *on the fly* using the following command: 246To quickly get a preview of your changes, you can generate the documentation *on the fly* using the following command:
247 247
248``` 248```
@@ -252,7 +252,7 @@ npx @redocly/cli preview-docs ./support/doc/api/openapi.yaml
252### Environment variables 252### Environment variables
253 253
254PeerTube can be configured using environment variables. 254PeerTube can be configured using environment variables.
255See the list on https://docs.joinpeertube.org/maintain-configuration?id=environment-variables 255See the list on https://docs.joinpeertube.org/maintain/configuration#environment-variables
256 256
257Additionally to these ones, we provide some environment for dev/test purpose: 257Additionally to these ones, we provide some environment for dev/test purpose:
258 258
@@ -298,4 +298,4 @@ ffmpeg -stream_loop -1 -re -i any-video.mp4 -c copy -f flv rtmp://{RTMP URL}/liv
298 298
299## Plugins & Themes 299## Plugins & Themes
300 300
301See the dedicated documentation: https://docs.joinpeertube.org/contribute-plugins 301See the dedicated documentation: https://docs.joinpeertube.org/contribute/plugins
diff --git a/.github/ISSUE_TEMPLATE/10-installation-issue.yml b/.github/ISSUE_TEMPLATE/10-installation-issue.yml
index 7bc55b2bd..059135eff 100644
--- a/.github/ISSUE_TEMPLATE/10-installation-issue.yml
+++ b/.github/ISSUE_TEMPLATE/10-installation-issue.yml
@@ -5,8 +5,8 @@ body:
5 attributes: 5 attributes:
6 value: | 6 value: |
7 Please check the official documentation first: 7 Please check the official documentation first:
8 - Classic installation: https://docs.joinpeertube.org/install-any-os 8 - Classic installation: https://docs.joinpeertube.org/install/any-os
9 - Docker installation: https://docs.joinpeertube.org/install-docker 9 - Docker installation: https://docs.joinpeertube.org/install/docker
10 10
11 - type: markdown 11 - type: markdown
12 attributes: 12 attributes:
diff --git a/.github/ISSUE_TEMPLATE/20-documentation-issue.yml b/.github/ISSUE_TEMPLATE/20-documentation-issue.yml
index 354749ad5..fc0cc6b4a 100644
--- a/.github/ISSUE_TEMPLATE/20-documentation-issue.yml
+++ b/.github/ISSUE_TEMPLATE/20-documentation-issue.yml
@@ -15,4 +15,4 @@ body:
15 description: | 15 description: |
16 Are you up to submit a pull request? Chances are, only a small edit is required, so give it a try: 16 Are you up to submit a pull request? Chances are, only a small edit is required, so give it a try:
17 * Click "Edit this page" if on https://docs.joinpeertube.org 17 * Click "Edit this page" if on https://docs.joinpeertube.org
18 * Edit https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/api/openapi.yaml if on https://docs.joinpeertube.org/api-rest-reference.html 18 * Edit https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/api/openapi.yaml if on https://docs.joinpeertube.org/api/rest-reference.html
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index abc25477f..e9621ff89 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -10,7 +10,7 @@
10## Has this been tested? 10## Has this been tested?
11 11
12<!-- Put an `x` in the box that applies: --> 12<!-- Put an `x` in the box that applies: -->
13<!-- Check the unit test guide: https://docs.joinpeertube.org/contribute-getting-started?id=unit-tests --> 13<!-- Check the unit test guide: https://docs.joinpeertube.org/contribute/getting-started#unit-integration-tests -->
14 14
15- [ ] 👍 yes, I added tests to the test suite 15- [ ] 👍 yes, I added tests to the test suite
16- [ ] 💭 no, because this PR is a draft and still needs work 16- [ ] 💭 no, because this PR is a draft and still needs work
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0513356e3..53f17a587 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -41,7 +41,7 @@
41 41
42### Documentation 42### Documentation
43 43
44 * Add [Monitoring/Observability documentation](https://docs.joinpeertube.org/maintain-observability) using PeerTube OpenTelemetry feature 44 * Add [Monitoring/Observability documentation](https://docs.joinpeertube.org/maintain/observability) using PeerTube OpenTelemetry feature
45 45
46### Maintenance 46### Maintenance
47 47
@@ -55,12 +55,12 @@
55 55
56### Plugins/Themes/Embed API 56### Plugins/Themes/Embed API
57 57
58 * Add server plugin hooks (https://docs.joinpeertube.org/api-plugins): 58 * Add server plugin hooks (https://docs.joinpeertube.org/api/plugins):
59 * `filter:activity-pub.remote-video-comment.create.accept.result` 59 * `filter:activity-pub.remote-video-comment.create.accept.result`
60 * Add server plugin helpers 60 * Add server plugin helpers
61 * `socket.sendNotification` and `socket.sendVideoLiveNewState` [#5239](https://github.com/Chocobozzz/PeerTube/pull/5239) 61 * `socket.sendNotification` and `socket.sendVideoLiveNewState` [#5239](https://github.com/Chocobozzz/PeerTube/pull/5239)
62 * Add ability for plugins to register a websocket route using `registerWebSocketRoute` 62 * Add ability for plugins to register a websocket route using `registerWebSocketRoute`
63 * Add client plugin hooks (https://docs.joinpeertube.org/api-plugins): 63 * Add client plugin hooks (https://docs.joinpeertube.org/api/plugins):
64 * `filter:internal.player.p2p-media-loader.options.result` [#5318](https://github.com/Chocobozzz/PeerTube/pull/5318) 64 * `filter:internal.player.p2p-media-loader.options.result` [#5318](https://github.com/Chocobozzz/PeerTube/pull/5318)
65 65
66### CLI tools 66### CLI tools
@@ -166,7 +166,7 @@
166 166
167 * Theme: 167 * Theme:
168 * Removed unused `--secondaryColor` CSS variable 168 * Removed unused `--secondaryColor` CSS variable
169 * Add client plugin hooks (https://docs.joinpeertube.org/api-plugins): 169 * Add client plugin hooks (https://docs.joinpeertube.org/api/plugins):
170 * `filter:api.my-library.video-playlist-elements.list.params` & `filter:api.my-library.video-playlist-elements.list.result` [#5098](https://github.com/Chocobozzz/PeerTube/pull/5098) 170 * `filter:api.my-library.video-playlist-elements.list.params` & `filter:api.my-library.video-playlist-elements.list.result` [#5098](https://github.com/Chocobozzz/PeerTube/pull/5098)
171 * `action:video-channel-create.init` 171 * `action:video-channel-create.init`
172 * `action:video-channel-update.init` & `action:video-channel-update.video-channel.loaded` 172 * `action:video-channel-update.init` & `action:video-channel-update.video-channel.loaded`
@@ -176,12 +176,12 @@
176 * `filter:share.video-embed-url.build.params` & `filter:share.video-embed-url.build.result` & `filter:share.video-playlist-embed-url.build.params` & `filter:share.video-playlist-embed-url.build.result` 176 * `filter:share.video-embed-url.build.params` & `filter:share.video-embed-url.build.result` & `filter:share.video-playlist-embed-url.build.params` & `filter:share.video-playlist-embed-url.build.result`
177 * `filter:share.video-url.build.params` & `filter:share.video-url.build.result` & `filter:share.video-playlist-url.build.params` & `filter:share.video-playlist-url.build.result` 177 * `filter:share.video-url.build.params` & `filter:share.video-url.build.result` & `filter:share.video-playlist-url.build.params` & `filter:share.video-playlist-url.build.result`
178 * `action:modal.share.shown` 178 * `action:modal.share.shown`
179 * Add server plugin hooks (https://docs.joinpeertube.org/api-plugins): 179 * Add server plugin hooks (https://docs.joinpeertube.org/api/plugins):
180 * `filter:job-queue.process.params` & `filter:job-queue.process.result` 180 * `filter:job-queue.process.params` & `filter:job-queue.process.result`
181 * `filter:transcoding.manual.resolutions-to-transcode.result` & `filter:transcoding.auto.resolutions-to-transcode.result` 181 * `filter:transcoding.manual.resolutions-to-transcode.result` & `filter:transcoding.auto.resolutions-to-transcode.result`
182 * `action:api.video-channel.created` & `action:api.video-channel.updated` & `action:api.video-channel.deleted` 182 * `action:api.video-channel.created` & `action:api.video-channel.updated` & `action:api.video-channel.deleted`
183 * `action:notifier.notification.created` 183 * `action:notifier.notification.created`
184 * Add HTML placeholder (https://docs.joinpeertube.org/contribute-plugins?id=html-placeholder-elements): 184 * Add HTML placeholder (https://docs.joinpeertube.org/contribute/plugins#html-placeholder-elements):
185 * `share-modal-playlist-settings` & `share-modal-video-settings` 185 * `share-modal-playlist-settings` & `share-modal-video-settings`
186 186
187### Features 187### Features
@@ -324,9 +324,9 @@
324 * Classic installation: `cd /var/www/peertube/peertube-latest && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production node dist/scripts/migrations/peertube-4.2.js` 324 * Classic installation: `cd /var/www/peertube/peertube-latest && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production node dist/scripts/migrations/peertube-4.2.js`
325 * Docker installation: `cd /var/www/peertube-docker && docker-compose exec -u peertube peertube node dist/scripts/migrations/peertube-4.2.js` 325 * Docker installation: `cd /var/www/peertube-docker && docker-compose exec -u peertube peertube node dist/scripts/migrations/peertube-4.2.js`
326 * **Important** SQL migrations (in particular `0685-multiple-actor-images`) can take several minutes to complete 326 * **Important** SQL migrations (in particular `0685-multiple-actor-images`) can take several minutes to complete
327 * **Important** You must update your nginx configuration to support video web editor: https://docs.joinpeertube.org/install-any-os?id=nginx 327 * **Important** You must update your nginx configuration to support video web editor: https://docs.joinpeertube.org/install/any-os#nginx
328 * REST API: 328 * REST API:
329 * `PUT /api/v1/videos/{id}/watching` is deprecated, use `POST /api/v1/videos/videos/{id}/views` instead: https://docs.joinpeertube.org/api-rest-reference.html#operation/addView 329 * `PUT /api/v1/videos/{id}/watching` is deprecated, use `POST /api/v1/videos/videos/{id}/views` instead: https://docs.joinpeertube.org/api/rest-reference.html#operation/addView
330 330
331### Maintenance 331### Maintenance
332 332
@@ -348,7 +348,7 @@
348 * `filter:api.video-playlist.videos.list.params` and `filter:api.video-playlist.videos.list.result` 348 * `filter:api.video-playlist.videos.list.params` and `filter:api.video-playlist.videos.list.result`
349 * Support `getSettings()`, `isLoggedIn()` and `getAuthHeader()` client plugin helpers in embed 349 * Support `getSettings()`, `isLoggedIn()` and `getAuthHeader()` client plugin helpers in embed
350 * Player URL query parameters: 350 * Player URL query parameters:
351 * Support `controlBar=0` to hide player control bar. See [the documentation](https://docs.joinpeertube.org/api-embed-player?id=url-parameters) for more information 351 * Support `controlBar=0` to hide player control bar. See [the documentation](https://docs.joinpeertube.org/api/embed-player#url-parameters) for more information
352 352
353### Features 353### Features
354 354
@@ -429,8 +429,8 @@
429 429
430### Plugins/Themes/Embed API 430### Plugins/Themes/Embed API
431 431
432 * Introduce ability for plugins to create client pages: https://docs.joinpeertube.org/contribute-plugins?id=create-client-page 432 * Introduce ability for plugins to create client pages: https://docs.joinpeertube.org/contribute/plugins#create-client-page
433 * Plugins that register custom video fields can choose in which tab they want to display them and can report errors: https://docs.joinpeertube.org/contribute-plugins?id=add-custom-fields-to-video-form 433 * Plugins that register custom video fields can choose in which tab they want to display them and can report errors: https://docs.joinpeertube.org/contribute/plugins#add-custom-fields-to-video-form
434 * Add new client plugin id selectors 434 * Add new client plugin id selectors
435 * Add `#plugin-selector-about-instance-moderation`, `#plugin-selector-about-instance-other-information`, `#plugin-selector-about-instance-features`, `#plugin-selector-about-instance-statistics`, `#plugin-selector-about-menu-instance`, `#plugin-selector-about-menu-peertube`, `#plugin-selector-about-menu-network` in about page [#4597](https://github.com/Chocobozzz/PeerTube/pull/4597) 435 * Add `#plugin-selector-about-instance-moderation`, `#plugin-selector-about-instance-other-information`, `#plugin-selector-about-instance-features`, `#plugin-selector-about-instance-statistics`, `#plugin-selector-about-menu-instance`, `#plugin-selector-about-menu-peertube`, `#plugin-selector-about-menu-network` in about page [#4597](https://github.com/Chocobozzz/PeerTube/pull/4597)
436 * Add `#plugin-selector-menu-user-dropdown-language-item` in menu [#4597](https://github.com/Chocobozzz/PeerTube/pull/4597) 436 * Add `#plugin-selector-menu-user-dropdown-language-item` in menu [#4597](https://github.com/Chocobozzz/PeerTube/pull/4597)
@@ -560,11 +560,11 @@
560 560
561### Plugins/Themes/Embed API 561### Plugins/Themes/Embed API
562 562
563*Documentation: https://docs.joinpeertube.org/api-plugins* 563*Documentation: https://docs.joinpeertube.org/api/plugins*
564 564
565 * Add client plugin hooks: 565 * Add client plugin hooks:
566 * `filter:api.video-watch.video-playlist-elements.get.params` and `filter:api.video-watch.video-playlist-elements.get.result` [#4387](https://github.com/Chocobozzz/PeerTube/pull/4387) 566 * `filter:api.video-watch.video-playlist-elements.get.params` and `filter:api.video-watch.video-playlist-elements.get.result` [#4387](https://github.com/Chocobozzz/PeerTube/pull/4387)
567 * Introduce plugin id selectors: https://docs.joinpeertube.org/contribute-plugins?id=plugin-selector-on-html-elements 567 * Introduce plugin id selectors: https://docs.joinpeertube.org/contribute/plugins#plugin-selector-on-html-elements
568 * Add `#plugin-selector-login-form` to login form 568 * Add `#plugin-selector-login-form` to login form
569 569
570### Docker 570### Docker
@@ -576,7 +576,7 @@
576 576
577### CLI tools 577### CLI tools
578 578
579 * Add [create-move-video-storage-jobs](https://docs.joinpeertube.org/maintain-tools?id=create-move-video-storage-jobjs) script to move local video files in object storage [#4481](https://github.com/Chocobozzz/PeerTube/pull/4481) 579 * Add [create-move-video-storage-jobs](https://docs.joinpeertube.org/maintain/tools#create-move-video-storage-jobjs) script to move local video files in object storage [#4481](https://github.com/Chocobozzz/PeerTube/pull/4481)
580 * Removed `peertube-repl` and `peertube-watch` scripts 580 * Removed `peertube-repl` and `peertube-watch` scripts
581 * Apply import interval only when reasonable [#4552](https://github.com/Chocobozzz/PeerTube/pull/4552) 581 * Apply import interval only when reasonable [#4552](https://github.com/Chocobozzz/PeerTube/pull/4552)
582 582
@@ -684,7 +684,7 @@
684 684
685### Plugins/Themes/Embed API 685### Plugins/Themes/Embed API
686 686
687*Documentation: https://docs.joinpeertube.org/api-plugins* 687*Documentation: https://docs.joinpeertube.org/api/plugins*
688 688
689 * Server helpers 689 * Server helpers
690 * **Deprecate** `videoLanguageManager.addLanguage` and `videoLanguageManager.deleteLanguage`: use `videoLanguageManager.addConstant` and `videoLanguageManager.deleteConstant` instead 690 * **Deprecate** `videoLanguageManager.addLanguage` and `videoLanguageManager.deleteLanguage`: use `videoLanguageManager.addConstant` and `videoLanguageManager.deleteConstant` instead
@@ -698,7 +698,7 @@
698 698
699### Custom markup API 699### Custom markup API
700 700
701*Documentation: https://docs.joinpeertube.org/api-custom-client-markup* 701*Documentation: https://docs.joinpeertube.org/api/custom-client-markup*
702 702
703 * Add ability to only display VOD or live videos in `<peertube-videos-list>` element 703 * Add ability to only display VOD or live videos in `<peertube-videos-list>` element
704 * `<peertube-container>` fills all available width. Can be changed using `data-justify-content` attribute 704 * `<peertube-container>` fills all available width. Can be changed using `data-justify-content` attribute
@@ -723,7 +723,7 @@
723 * Hide or display sensitive content 723 * Hide or display sensitive content
724 * Choose to display all videos or only local videos 724 * Choose to display all videos or only local videos
725 * :tada: **Beta:** Add support for saving video files in object storage [#4290](https://github.com/Chocobozzz/PeerTube/pull/4290) 725 * :tada: **Beta:** Add support for saving video files in object storage [#4290](https://github.com/Chocobozzz/PeerTube/pull/4290)
726 * Check the documentation: https://docs.joinpeertube.org/admin-remote-storage 726 * Check the documentation: https://docs.joinpeertube.org/admin/remote-storage
727 * :tada: Add ability for instances to follow any actor (so specific accounts and channels) 727 * :tada: Add ability for instances to follow any actor (so specific accounts and channels)
728 * Updated HLS.js (library to play HLS playlists in PeerTube player) to V1: 728 * Updated HLS.js (library to play HLS playlists in PeerTube player) to V1:
729 * Remember last bandwidth to prevent resolution change at the beginning of the video 729 * Remember last bandwidth to prevent resolution change at the beginning of the video
@@ -776,7 +776,7 @@
776### IMPORTANT NOTES 776### IMPORTANT NOTES
777 777
778 * **Important:** v3.2.0 introduced a `pg_dump` export bug in the auto upgrade script. v3.2.1 fixed this bug. To upgrade from v3.2.**0**: 778 * **Important:** v3.2.0 introduced a `pg_dump` export bug in the auto upgrade script. v3.2.1 fixed this bug. To upgrade from v3.2.**0**:
779 * You can upgrade manually https://docs.joinpeertube.org/install-any-os?id=manually 779 * You can upgrade manually https://docs.joinpeertube.org/install/any-os#manually
780 * Or you can apply the changes introduced in this commit: https://github.com/Chocobozzz/PeerTube/commit/86dc0b9cc9374cba7548bb613ff43d92f90570a8 and then use the auto upgrade script 780 * Or you can apply the changes introduced in this commit: https://github.com/Chocobozzz/PeerTube/commit/86dc0b9cc9374cba7548bb613ff43d92f90570a8 and then use the auto upgrade script
781 * **Important:** Due to a bug in ffmpeg, PeerTube is not compatible with ffmpeg 4.4. See https://github.com/Chocobozzz/PeerTube/issues/3990 781 * **Important:** Due to a bug in ffmpeg, PeerTube is not compatible with ffmpeg 4.4. See https://github.com/Chocobozzz/PeerTube/issues/3990
782 782
@@ -794,16 +794,16 @@
794 794
795 * Add client helpers: 795 * Add client helpers:
796 * `getBaseRouterRoute()` [#4153](https://github.com/Chocobozzz/PeerTube/pull/4153) 796 * `getBaseRouterRoute()` [#4153](https://github.com/Chocobozzz/PeerTube/pull/4153)
797 * Add client plugin hooks (https://docs.joinpeertube.org/api-plugins): 797 * Add client plugin hooks (https://docs.joinpeertube.org/api/plugins):
798 * `filter:left-menu.links.create.result` to add/remove left menu links 798 * `filter:left-menu.links.create.result` to add/remove left menu links
799 * `filter:internal.player.videojs.options.result` to filter options sent to videojs player [#4126](https://github.com/Chocobozzz/PeerTube/pull/4126) 799 * `filter:internal.player.videojs.options.result` to filter options sent to videojs player [#4126](https://github.com/Chocobozzz/PeerTube/pull/4126)
800 * Add server plugin hooks (https://docs.joinpeertube.org/api-plugins): 800 * Add server plugin hooks (https://docs.joinpeertube.org/api/plugins):
801 * `action:api.video-playlist-element.created` 801 * `action:api.video-playlist-element.created`
802 802
803 803
804### Features 804### Features
805 805
806 * :tada: Add ability to create a custom homepage using HTML, markdown and [custom HTML tags](https://docs.joinpeertube.org/api-custom-client-markup) [#4007](https://github.com/Chocobozzz/PeerTube/pull/4007) 806 * :tada: Add ability to create a custom homepage using HTML, markdown and [custom HTML tags](https://docs.joinpeertube.org/api/custom-client-markup) [#4007](https://github.com/Chocobozzz/PeerTube/pull/4007)
807 * :tada: Add ability to search playlists in PeerTube instance and [SepiaSearch](https://sepiasearch.org/) 807 * :tada: Add ability to search playlists in PeerTube instance and [SepiaSearch](https://sepiasearch.org/)
808 * :tada: Shorter public URLs (old URLs are still supported): 808 * :tada: Shorter public URLs (old URLs are still supported):
809 * Handle short UUID (`8r4jooaQpHp8tw1E1qpSeYq` instead of `3caf7bea-5ceb-4959-81a0-b44d184e897c`) for playlists and videos 809 * Handle short UUID (`8r4jooaQpHp8tw1E1qpSeYq` instead of `3caf7bea-5ceb-4959-81a0-b44d184e897c`) for playlists and videos
@@ -811,7 +811,7 @@
811 * Use `/a/:accountName` instead of `/accounts/:accountName` and `/c/:channelName` instead of `/video-channels/:channelName` [#4009](https://github.com/Chocobozzz/PeerTube/pull/4009) 811 * Use `/a/:accountName` instead of `/accounts/:accountName` and `/c/:channelName` instead of `/video-channels/:channelName` [#4009](https://github.com/Chocobozzz/PeerTube/pull/4009)
812 * Provide `/@:username` page that automatically redirect to the account or channel page [#4009](https://github.com/Chocobozzz/PeerTube/pull/4009) 812 * Provide `/@:username` page that automatically redirect to the account or channel page [#4009](https://github.com/Chocobozzz/PeerTube/pull/4009)
813 * :tada: Add RTL layout support 813 * :tada: Add RTL layout support
814 * Add ability to use HTML, markdown and [custom HTML tags](https://docs.joinpeertube.org/api-custom-client-markup) in instance description 814 * Add ability to use HTML, markdown and [custom HTML tags](https://docs.joinpeertube.org/api/custom-client-markup) in instance description
815 * Default to dark theme (if available) if requested by the web browser 815 * Default to dark theme (if available) if requested by the web browser
816 * Add ability for admins to configure minimum age required in signup page [#4010](https://github.com/Chocobozzz/PeerTube/pull/4010) 816 * Add ability for admins to configure minimum age required in signup page [#4010](https://github.com/Chocobozzz/PeerTube/pull/4010)
817 * Use a dedicated URL for each tab in publish page 817 * Use a dedicated URL for each tab in publish page
@@ -861,7 +861,7 @@
861### IMPORTANT NOTES 861### IMPORTANT NOTES
862 862
863 * **Important:** v3.2.0 introduced a `pg_dump` export bug in the auto upgrade script. To upgrade from v3.2.0: 863 * **Important:** v3.2.0 introduced a `pg_dump` export bug in the auto upgrade script. To upgrade from v3.2.0:
864 * You can upgrade manually https://docs.joinpeertube.org/install-any-os?id=manually 864 * You can upgrade manually https://docs.joinpeertube.org/install/any-os#manually
865 * Or you can apply the changes introduced in this commit: https://github.com/Chocobozzz/PeerTube/commit/86dc0b9cc9374cba7548bb613ff43d92f90570a8 and then use the auto upgrade script 865 * Or you can apply the changes introduced in this commit: https://github.com/Chocobozzz/PeerTube/commit/86dc0b9cc9374cba7548bb613ff43d92f90570a8 and then use the auto upgrade script
866 866
867### Bug fixes 867### Bug fixes
@@ -880,9 +880,9 @@
880 * **Important:** Drop NodeJS 10 support 880 * **Important:** Drop NodeJS 10 support
881 * PeerTube is not compatible with NodeJS 16 yet 881 * PeerTube is not compatible with NodeJS 16 yet
882 * By default, HLS transcoding is now enabled and webtorrent is disabled. We suggest you to reflect this change. 882 * By default, HLS transcoding is now enabled and webtorrent is disabled. We suggest you to reflect this change.
883 See [the documentation](https://docs.joinpeertube.org/admin-configuration?id=webtorrent-transcoding-or-hls-transcoding) for more information 883 See [the documentation](https://docs.joinpeertube.org/admin/configuration#webtorrent-transcoding-or-hls-transcoding) for more information
884 * PeerTube client now displays bigger video thumbnails. 884 * PeerTube client now displays bigger video thumbnails.
885 To fix old thumbnails quality, run `regenerate-thumbnails` script after your PeerTube upgrade: https://docs.joinpeertube.org/maintain-tools?id=regenerate-thumbnailsjs 885 To fix old thumbnails quality, run `regenerate-thumbnails` script after your PeerTube upgrade: https://docs.joinpeertube.org/maintain/tools#regenerate-thumbnailsjs
886 886
887### Docker 887### Docker
888 888
@@ -903,9 +903,9 @@
903 903
904 * Theme: 904 * Theme:
905 * `--submenuColor` becomes `--submenuBackgroundColor` 905 * `--submenuColor` becomes `--submenuBackgroundColor`
906 * Support HTML placeholders for plugins. See [the documentation](https://docs.joinpeertube.org/contribute-plugins?id=html-placeholder-elements) for more information 906 * Support HTML placeholders for plugins. See [the documentation](https://docs.joinpeertube.org/contribute/plugins#html-placeholder-elements) for more information
907 * `player-next` next to the PeerTube player 907 * `player-next` next to the PeerTube player
908 * Support storing files for plugins in a dedicated directory. See [the documentation](https://docs.joinpeertube.org/contribute-plugins?id=storage) for more information 908 * Support storing files for plugins in a dedicated directory. See [the documentation](https://docs.joinpeertube.org/contribute/plugins#storage) for more information
909 * Transcoding: 909 * Transcoding:
910 * Add `inputOptions` option support for transcoding profile [#3917](https://github.com/Chocobozzz/PeerTube/pull/3917) 910 * Add `inputOptions` option support for transcoding profile [#3917](https://github.com/Chocobozzz/PeerTube/pull/3917)
911 * Add `scaleFilter.name` option support for transcoding profile [#3917](https://github.com/Chocobozzz/PeerTube/pull/3917) 911 * Add `scaleFilter.name` option support for transcoding profile [#3917](https://github.com/Chocobozzz/PeerTube/pull/3917)
@@ -923,7 +923,7 @@
923 * `plugin.getBaseRouterRoute()` 923 * `plugin.getBaseRouterRoute()`
924 * `plugin.getDataDirectoryPath()` 924 * `plugin.getDataDirectoryPath()`
925 * `user.getAuthUser()` 925 * `user.getAuthUser()`
926 * Add client plugin hooks (https://docs.joinpeertube.org/api-plugins): 926 * Add client plugin hooks (https://docs.joinpeertube.org/api/plugins):
927 * `action:modal.video-download.shown` 927 * `action:modal.video-download.shown`
928 * `action:video-upload.init` 928 * `action:video-upload.init`
929 * `action:video-url-import.init` 929 * `action:video-url-import.init`
@@ -932,7 +932,7 @@
932 * `action:auth-user.logged-in` & `action:auth-user.logged-out` 932 * `action:auth-user.logged-in` & `action:auth-user.logged-out`
933 * `action:auth-user.information-loaded` 933 * `action:auth-user.information-loaded`
934 * `action:admin-plugin-settings.init` 934 * `action:admin-plugin-settings.init`
935 * Add server plugin hooks (https://docs.joinpeertube.org/api-plugins): 935 * Add server plugin hooks (https://docs.joinpeertube.org/api/plugins):
936 * `filter:api.download.video.allowed.result` & `filter:api.download.torrent.allowed.result` to forbid download 936 * `filter:api.download.video.allowed.result` & `filter:api.download.torrent.allowed.result` to forbid download
937 * `filter:html.embed.video-playlist.allowed.result` & `filter:html.embed.video.allowed.result` to forbid embed 937 * `filter:html.embed.video-playlist.allowed.result` & `filter:html.embed.video.allowed.result` to forbid embed
938 * `filter:api.search.videos.local.list.params` & `filter:api.search.videos.local.list.result` 938 * `filter:api.search.videos.local.list.params` & `filter:api.search.videos.local.list.result`
@@ -1042,11 +1042,11 @@
1042 1042
1043### Plugins/Themes/Embed API 1043### Plugins/Themes/Embed API
1044 1044
1045 * Add server plugin hooks (https://docs.joinpeertube.org/api-plugins): 1045 * Add server plugin hooks (https://docs.joinpeertube.org/api/plugins):
1046 * `filter:api.user.me.videos.list.params` and `filter:api.user.me.videos.list.result` 1046 * `filter:api.user.me.videos.list.params` and `filter:api.user.me.videos.list.result`
1047 * Add server helpers: 1047 * Add server helpers:
1048 * `videos.loadByIdOrUUID` 1048 * `videos.loadByIdOrUUID`
1049 * Add server transcoding helpers (https://docs.joinpeertube.org/contribute-plugins?id=add-new-transcoding-profiles): 1049 * Add server transcoding helpers (https://docs.joinpeertube.org/contribute/plugins#add-new-transcoding-profiles):
1050 * `transcodingManager.addVODProfile` 1050 * `transcodingManager.addVODProfile`
1051 * `transcodingManager.addVODEncoderPriority` 1051 * `transcodingManager.addVODEncoderPriority`
1052 * `transcodingManager.addLiveProfile` 1052 * `transcodingManager.addLiveProfile`
@@ -1161,7 +1161,7 @@
1161 1161
1162### Docker 1162### Docker
1163 1163
1164 * Fix [upgrade documentation](https://docs.joinpeertube.org/install-docker?id=upgrade) 1164 * Fix [upgrade documentation](https://docs.joinpeertube.org/install/docker#upgrade)
1165 * Add live RTMP port in docker compose 1165 * Add live RTMP port in docker compose
1166 1166
1167### Bug fixes 1167### Bug fixes
@@ -1195,13 +1195,13 @@
1195 * Replace traefik by nginx in our docker-compose template: 1195 * Replace traefik by nginx in our docker-compose template:
1196 * Better consistency with our default setup (we now use the same stack) 1196 * Better consistency with our default setup (we now use the same stack)
1197 * Use our default nginx template enabling many optimizations 1197 * Use our default nginx template enabling many optimizations
1198 * Update the documentation to take into account this change: https://docs.joinpeertube.org/install-docker 1198 * Update the documentation to take into account this change: https://docs.joinpeertube.org/install/docker
1199 1199
1200### Plugins/Themes/Embed API 1200### Plugins/Themes/Embed API
1201 1201
1202 * Add ability for auth plugins to redirect user on logout [#32](https://framagit.org/framasoft/peertube/PeerTube/-/merge_requests/32) & [#33](https://framagit.org/framasoft/peertube/PeerTube/-/merge_requests/33) 1202 * Add ability for auth plugins to redirect user on logout [#32](https://framagit.org/framasoft/peertube/PeerTube/-/merge_requests/32) & [#33](https://framagit.org/framasoft/peertube/PeerTube/-/merge_requests/33)
1203 * Add `input-password` setting to plugins [#3375](https://github.com/Chocobozzz/PeerTube/issues/3375) 1203 * Add `input-password` setting to plugins [#3375](https://github.com/Chocobozzz/PeerTube/issues/3375)
1204 * Add server plugin hooks (https://docs.joinpeertube.org/api-plugins): 1204 * Add server plugin hooks (https://docs.joinpeertube.org/api/plugins):
1205 * `filter:api.accounts.videos.list.params` 1205 * `filter:api.accounts.videos.list.params`
1206 * `filter:api.accounts.videos.list.result` 1206 * `filter:api.accounts.videos.list.result`
1207 * `filter:api.video-channels.videos.list.params` 1207 * `filter:api.video-channels.videos.list.params`
@@ -1352,16 +1352,16 @@
1352 1352
1353### Plugins/Themes/Embed API 1353### Plugins/Themes/Embed API
1354 1354
1355 * Add embed API (https://docs.joinpeertube.org/api-embed-player): 1355 * Add embed API (https://docs.joinpeertube.org/api/embed-player):
1356 * `playNextVideo` method 1356 * `playNextVideo` method
1357 * `playPreviousVideo` method 1357 * `playPreviousVideo` method
1358 * `getCurrentPosition` method 1358 * `getCurrentPosition` method
1359 * Embed URL parameters 1359 * Embed URL parameters
1360 * Add ability to disable PeerTube link in embed using an URL param (`peertubeLink=0`) 1360 * Add ability to disable PeerTube link in embed using an URL param (`peertubeLink=0`)
1361 * Add plugins support in embed 1361 * Add plugins support in embed
1362 * Add client plugin hooks (https://docs.joinpeertube.org/api-plugins): 1362 * Add client plugin hooks (https://docs.joinpeertube.org/api/plugins):
1363 * `action:embed.player.loaded` (for embed) 1363 * `action:embed.player.loaded` (for embed)
1364 * Add custom fields in video update/upload form using `registerVideoField` (https://docs.joinpeertube.org/contribute-plugins?id=add-custom-fields-to-video-form) 1364 * Add custom fields in video update/upload form using `registerVideoField` (https://docs.joinpeertube.org/contribute/plugins#add-custom-fields-to-video-form)
1365 1365
1366### Features 1366### Features
1367 1367
@@ -1571,7 +1571,7 @@ A new endpoint to report videos will be created in PeerTube 2.4 and will also al
1571 1571
1572### CLI tools 1572### CLI tools
1573 1573
1574 * Add redundancy CLI: https://docs.joinpeertube.org/maintain-tools?id=peertube-redundancyjs 1574 * Add redundancy CLI: https://docs.joinpeertube.org/maintain/tools#peertube-redundancyjs
1575 * Add ability to pass remaining options to youtube-dl binary in peertube-import script ([@drzraf](https://github.com/drzraf)) 1575 * Add ability to pass remaining options to youtube-dl binary in peertube-import script ([@drzraf](https://github.com/drzraf))
1576 1576
1577### Docker 1577### Docker
@@ -1581,19 +1581,19 @@ A new endpoint to report videos will be created in PeerTube 2.4 and will also al
1581 1581
1582### Maintenance 1582### Maintenance
1583 1583
1584 * Add nginx configuration to redirect videos to an S3 bucket ([@rigelk](https://github.com/rigelk)) and update of the [corresponding documentation](https://docs.joinpeertube.org/admin-remote-storage). 1584 * Add nginx configuration to redirect videos to an S3 bucket ([@rigelk](https://github.com/rigelk)) and update of the [corresponding documentation](https://docs.joinpeertube.org/admin/remote-storage).
1585 1585
1586### Plugins/Themes/Embed API 1586### Plugins/Themes/Embed API
1587 1587
1588 * Add embed API (https://docs.joinpeertube.org/api-embed-player): 1588 * Add embed API (https://docs.joinpeertube.org/api/embed-player):
1589 * `playbackState` can be `ended` 1589 * `playbackState` can be `ended`
1590 * `playbackStatusUpdate` has a `duration` field 1590 * `playbackStatusUpdate` has a `duration` field
1591 * `setCaption` and `getCaptions` methods 1591 * `setCaption` and `getCaptions` methods
1592 * Add client plugin hooks (https://docs.joinpeertube.org/api-plugins): 1592 * Add client plugin hooks (https://docs.joinpeertube.org/api/plugins):
1593 * `action:login.init` 1593 * `action:login.init`
1594 * `action:video-watch.video-threads.loaded` 1594 * `action:video-watch.video-threads.loaded`
1595 * `action:video-watch.video-thread-replies.loaded` ([@ipbc-dev](https://github.com/ipbc-dev)) 1595 * `action:video-watch.video-thread-replies.loaded` ([@ipbc-dev](https://github.com/ipbc-dev))
1596 * Add server plugin hooks (https://docs.joinpeertube.org/api-plugins): 1596 * Add server plugin hooks (https://docs.joinpeertube.org/api/plugins):
1597 * `filter:api.video.pre-import-url.accept.result` 1597 * `filter:api.video.pre-import-url.accept.result`
1598 * `filter:api.video.pre-import-torrent.accept.result` 1598 * `filter:api.video.pre-import-torrent.accept.result`
1599 * `filter:api.video.post-import-url.accept.result` 1599 * `filter:api.video.post-import-url.accept.result`
@@ -1785,13 +1785,13 @@ A new endpoint to report videos will be created in PeerTube 2.4 and will also al
1785 1785
1786We added some sections in the documentation website: 1786We added some sections in the documentation website:
1787 1787
1788 * S3 remote storage: https://docs.joinpeertube.org/admin-remote-storage 1788 * S3 remote storage: https://docs.joinpeertube.org/admin/remote-storage
1789 * Instances redundancy: https://docs.joinpeertube.org/admin-following-instances 1789 * Instances redundancy: https://docs.joinpeertube.org/admin/following-instances
1790 * Moderate your instance: https://docs.joinpeertube.org/admin-moderation 1790 * Moderate your instance: https://docs.joinpeertube.org/admin/moderation
1791 * Customize your instance (install plugins & themes): https://docs.joinpeertube.org/admin-customize-instance 1791 * Customize your instance (install plugins & themes): https://docs.joinpeertube.org/admin/customize-instance
1792 * PeerTube logs (standard log/audit log): https://docs.joinpeertube.org/admin-logs 1792 * PeerTube logs (standard log/audit log): https://docs.joinpeertube.org/admin/logs
1793 * Mute accounts/instances: https://docs.joinpeertube.org/use-mute 1793 * Mute accounts/instances: https://docs.joinpeertube.org/use/mute
1794 * Controlled player embed API: https://docs.joinpeertube.org/api-embed-player 1794 * Controlled player embed API: https://docs.joinpeertube.org/api/embed-player
1795 1795
1796### Docker 1796### Docker
1797 1797
@@ -1826,7 +1826,7 @@ We added some sections in the documentation website:
1826 1826
1827 * PeerTube moved translations from Zanata to Weblate. Here is the new translations website URL: https://weblate.framasoft.org/projects/peertube/ 1827 * PeerTube moved translations from Zanata to Weblate. Here is the new translations website URL: https://weblate.framasoft.org/projects/peertube/
1828 * We now provide a JavaScript library to control a PeerTube embed: https://www.npmjs.com/package/@peertube/embed-api 1828 * We now provide a JavaScript library to control a PeerTube embed: https://www.npmjs.com/package/@peertube/embed-api
1829 * Add ability to generate HLS videos using `create-transcoding-job` script (see [the documentation](https://docs.joinpeertube.org/maintain-tools?id=create-transcoding-jobjs)) 1829 * Add ability to generate HLS videos using `create-transcoding-job` script (see [the documentation](https://docs.joinpeertube.org/maintain/tools#create-transcoding-jobjs))
1830 * Update nginx template: (you need to [update manually](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/production.md#nginx)) 1830 * Update nginx template: (you need to [update manually](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/production.md#nginx))
1831 * Add streaming playlists endpoint 1831 * Add streaming playlists endpoint
1832 * Add `client_body_temp_path` hint 1832 * Add `client_body_temp_path` hint
@@ -2095,7 +2095,7 @@ We added some sections in the documentation website:
2095### Features 2095### Features
2096 2096
2097 * :tada: Support Finnish, Greek and Scottish Gaelic languages 2097 * :tada: Support Finnish, Greek and Scottish Gaelic languages
2098 * :tada: Add basic plugins and themes support (**beta**): https://docs.joinpeertube.org/contribute-plugins 2098 * :tada: Add basic plugins and themes support (**beta**): https://docs.joinpeertube.org/contribute/plugins
2099 * Install plugins or themes from the administration panel 2099 * Install plugins or themes from the administration panel
2100 * Choose a default theme for your instance 2100 * Choose a default theme for your instance
2101 * Users can choose the theme they want among the list of themes their administrator installed 2101 * Users can choose the theme they want among the list of themes their administrator installed
diff --git a/README.md b/README.md
index 5fe24a9f2..8f3de1c97 100644
--- a/README.md
+++ b/README.md
@@ -116,7 +116,7 @@ Be it as a user or an instance administrator, you can decide what your experienc
116 116
117<h3 align="right">Communities that help each other</h3> 117<h3 align="right">Communities that help each other</h3>
118<p align="right"> 118<p align="right">
119In addition to visitors using WebTorrent to share the load among them, instances can help each other by caching one another's videos. This way even small instances have a way to show content to a wider audience, as they will be shouldered by friend instances (more about that in our <a href="https://docs.joinpeertube.org/contribute-architecture?id=redundancy-between-instances">redundancy guide</a>). 119In addition to visitors using WebTorrent to share the load among them, instances can help each other by caching one another's videos. This way even small instances have a way to show content to a wider audience, as they will be shouldered by friend instances (more about that in our <a href="https://docs.joinpeertube.org/contribute/architecture#redundancy-between-instances">redundancy guide</a>).
120</p> 120</p>
121<p align="right"> 121<p align="right">
122Content creators can get help from their viewers in the simplest way possible: a support button showing a message linking to their donation accounts or really anything else. No more pay-per-view and advertisements that hurt visitors and alter creativity (more about that in our <a href="https://github.com/Chocobozzz/PeerTube/blob/develop/FAQ.md">FAQ</a>). 122Content creators can get help from their viewers in the simplest way possible: a support button showing a message linking to their donation accounts or really anything else. No more pay-per-view and advertisements that hurt visitors and alter creativity (more about that in our <a href="https://github.com/Chocobozzz/PeerTube/blob/develop/FAQ.md">FAQ</a>).
@@ -147,7 +147,7 @@ Feel free to reach out if you have any questions or ideas! :speech_balloon:
147 147
148See the [production guide](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/production.md), which is the recommended way to install or upgrade PeerTube. For hardware requirements, see [Should I have a big server to run PeerTube?](https://joinpeertube.org/faq#should-i-have-a-big-server-to-run-peertube) in the FAQ. 148See the [production guide](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/production.md), which is the recommended way to install or upgrade PeerTube. For hardware requirements, see [Should I have a big server to run PeerTube?](https://joinpeertube.org/faq#should-i-have-a-big-server-to-run-peertube) in the FAQ.
149 149
150See the [community packages](https://docs.joinpeertube.org/install-unofficial), which cover various platforms (including [YunoHost](https://install-app.yunohost.org/?app=peertube) and [Docker](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/docker.md)). 150See the [community packages](https://docs.joinpeertube.org/install/unofficial), which cover various platforms (including [YunoHost](https://install-app.yunohost.org/?app=peertube) and [Docker](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/docker.md)).
151 151
152:book: Documentation 152:book: Documentation
153---------------------------------------------------------------- 153----------------------------------------------------------------
@@ -156,27 +156,27 @@ If you have a question, please try to find the answer in the [FAQ](https://joinp
156 156
157### User documentation 157### User documentation
158 158
159See the [user documentation](https://docs.joinpeertube.org/use-setup-account). 159See the [user documentation](https://docs.joinpeertube.org/use/setup-account).
160 160
161### Admin documentation 161### Admin documentation
162 162
163See [how to create your own instance](https://github.com/Chocobozzz/PeerTube/blob/develop/README.md#package-create-your-own-instance). 163See [how to create your own instance](https://github.com/Chocobozzz/PeerTube/blob/develop/README.md#package-create-your-own-instance).
164 164
165See the more general [admin documentation](https://docs.joinpeertube.org/admin-following-instances). 165See the more general [admin documentation](https://docs.joinpeertube.org/admin/following-instances).
166 166
167### Tools documentation 167### Tools documentation
168 168
169Learn how to import/upload videos from CLI or admin your PeerTube instance with the [tools documentation](https://docs.joinpeertube.org/maintain-tools). 169Learn how to import/upload videos from CLI or admin your PeerTube instance with the [tools documentation](https://docs.joinpeertube.org/maintain/tools).
170 170
171### Technical documentation 171### Technical documentation
172 172
173See the [architecture blueprint](https://docs.joinpeertube.org/contribute-architecture) for a more detailed explanation of the architectural choices. 173See the [architecture blueprint](https://docs.joinpeertube.org/contribute/architecture) for a more detailed explanation of the architectural choices.
174 174
175See our REST API documentation: 175See our REST API documentation:
176 * OpenAPI 3.0.0 schema: [/support/doc/api/openapi.yaml](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/api/openapi.yaml) 176 * OpenAPI 3.0.0 schema: [/support/doc/api/openapi.yaml](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/api/openapi.yaml)
177 * Spec explorer: [docs.joinpeertube.org/api-rest-reference.html](https://docs.joinpeertube.org/api-rest-reference.html) 177 * Spec explorer: [docs.joinpeertube.org/api-rest-reference.html](https://docs.joinpeertube.org/api/rest-reference.html)
178 178
179See our [ActivityPub documentation](https://docs.joinpeertube.org/api-activitypub). 179See our [ActivityPub documentation](https://docs.joinpeertube.org/api/activitypub).
180 180
181## License 181## License
182 182
diff --git a/client/src/app/+about/about-peertube/about-peertube.component.html b/client/src/app/+about/about-peertube/about-peertube.component.html
index c0177fe6c..d1c3c678a 100644
--- a/client/src/app/+about/about-peertube/about-peertube.component.html
+++ b/client/src/app/+about/about-peertube/about-peertube.component.html
@@ -25,7 +25,7 @@
25 <div class="card"> 25 <div class="card">
26 <div class="card-body"> 26 <div class="card-body">
27 <div class="card-title"> 27 <div class="card-title">
28 <a i18n class="link-orange" target="_blank" rel="noopener noreferrer" href="https://docs.joinpeertube.org/use-setup-account">Use PeerTube documentation</a> 28 <a i18n class="link-orange" target="_blank" rel="noopener noreferrer" href="https://docs.joinpeertube.org/use/setup-account">Use PeerTube documentation</a>
29 </div> 29 </div>
30 30
31 <div i18n class="card-text"> 31 <div i18n class="card-text">
@@ -37,7 +37,7 @@
37 <div class="card"> 37 <div class="card">
38 <div class="card-body"> 38 <div class="card-body">
39 <div class="card-title"> 39 <div class="card-title">
40 <a i18n class="link-orange" target="_blank" rel="noopener noreferrer" href="https://docs.joinpeertube.org/use-third-party-application">PeerTube Applications</a> 40 <a i18n class="link-orange" target="_blank" rel="noopener noreferrer" href="https://docs.joinpeertube.org/use/third-party-application">PeerTube Applications</a>
41 </div> 41 </div>
42 42
43 <div i18n class="card-text"> 43 <div i18n class="card-text">
@@ -49,7 +49,7 @@
49 <div class="card"> 49 <div class="card">
50 <div class="card-body"> 50 <div class="card-body">
51 <div class="card-title"> 51 <div class="card-title">
52 <a i18n class="link-orange" target="_blank" rel="noopener noreferrer" href="https://docs.joinpeertube.org/contribute-getting-started">Contribute on PeerTube</a> 52 <a i18n class="link-orange" target="_blank" rel="noopener noreferrer" href="https://docs.joinpeertube.org/contribute/getting-started">Contribute on PeerTube</a>
53 </div> 53 </div>
54 54
55 <div i18n class="card-text"> 55 <div i18n class="card-text">
diff --git a/client/src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html b/client/src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
index 2a9f9d69d..8399b5d56 100644
--- a/client/src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
+++ b/client/src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
@@ -280,7 +280,7 @@
280 i18n-labelText labelText="Allow import with HTTP URL (e.g. YouTube)" 280 i18n-labelText labelText="Allow import with HTTP URL (e.g. YouTube)"
281 > 281 >
282 <ng-container ngProjectAs="description"> 282 <ng-container ngProjectAs="description">
283 <span i18n>⚠️ If enabled, we recommend to use <a class="link-orange" href="https://docs.joinpeertube.org/maintain-configuration?id=security">a HTTP proxy</a> to prevent private URL access from your PeerTube server</span> 283 <span i18n>⚠️ If enabled, we recommend to use <a class="link-orange" href="https://docs.joinpeertube.org/maintain/configuration#security">a HTTP proxy</a> to prevent private URL access from your PeerTube server</span>
284 </ng-container> 284 </ng-container>
285 </my-peertube-checkbox> 285 </my-peertube-checkbox>
286 </div> 286 </div>
@@ -503,7 +503,7 @@
503 <div i18n>⚠️ This functionality requires a lot of attention and extra moderation.</div> 503 <div i18n>⚠️ This functionality requires a lot of attention and extra moderation.</div>
504 504
505 <span i18n> 505 <span i18n>
506 See <a class="link-orange" href="https://docs.joinpeertube.org/admin-following-instances?id=automatically-follow-other-instances" rel="noopener noreferrer" target="_blank">the documentation</a> for more information about the expected URL 506 See <a class="link-orange" href="https://docs.joinpeertube.org/admin/following-instances#automatically-follow-other-instances" rel="noopener noreferrer" target="_blank">the documentation</a> for more information about the expected URL
507 </span> 507 </span>
508 </ng-container> 508 </ng-container>
509 509
diff --git a/client/src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html b/client/src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
index 1e7691f9e..de9e7253e 100644
--- a/client/src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
+++ b/client/src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
@@ -10,7 +10,7 @@
10 </span> 10 </span>
11 11
12 <span i18n> 12 <span i18n>
13 However, you may want to read <a class="link-orange" target="_blank" rel="noopener noreferrer" href="https://docs.joinpeertube.org/admin-configuration?id=transcoding">our guidelines</a> before tweaking the following values. 13 However, you may want to read <a class="link-orange" target="_blank" rel="noopener noreferrer" href="https://docs.joinpeertube.org/admin/configuration#vod-transcoding">our guidelines</a> before tweaking the following values.
14 </span> 14 </span>
15 </div> 15 </div>
16 </div> 16 </div>
diff --git a/client/src/app/+my-library/my-video-playlists/my-video-playlist-elements.component.html b/client/src/app/+my-library/my-video-playlists/my-video-playlist-elements.component.html
index 806dd6f48..df4687ce9 100644
--- a/client/src/app/+my-library/my-video-playlists/my-video-playlist-elements.component.html
+++ b/client/src/app/+my-library/my-video-playlists/my-video-playlist-elements.component.html
@@ -29,7 +29,7 @@
29 </div> 29 </div>
30 30
31 <div i18n> 31 <div i18n>
32 See the <a target="_blank" href="https://docs.joinpeertube.org/use-library?id=playlist">documentation</a> for more information. 32 See the <a target="_blank" href="https://docs.joinpeertube.org/use/library#playlist">documentation</a> for more information.
33 </div> 33 </div>
34 </div> 34 </div>
35 35
diff --git a/client/src/app/+signup/shared/signup-success-after-email.component.html b/client/src/app/+signup/shared/signup-success-after-email.component.html
index 1c3536ada..683e55525 100644
--- a/client/src/app/+signup/shared/signup-success-after-email.component.html
+++ b/client/src/app/+signup/shared/signup-success-after-email.component.html
@@ -15,7 +15,7 @@
15 <p i18n>Your email has been verified and your account has been created!</p> 15 <p i18n>Your email has been verified and your account has been created!</p>
16 16
17 <p i18n> 17 <p i18n>
18 If you need help to use PeerTube, you can have a look at the <a class="link-orange" href="https://docs.joinpeertube.org/use-setup-account" target="_blank" rel="noopener noreferrer">documentation</a>. 18 If you need help to use PeerTube, you can have a look at the <a class="link-orange" href="https://docs.joinpeertube.org/use/setup-account" target="_blank" rel="noopener noreferrer">documentation</a>.
19 </p> 19 </p>
20 </ng-container> 20 </ng-container>
21</div> 21</div>
diff --git a/client/src/app/+signup/shared/signup-success-before-email.component.html b/client/src/app/+signup/shared/signup-success-before-email.component.html
index b9668ee82..8e2494b65 100644
--- a/client/src/app/+signup/shared/signup-success-before-email.component.html
+++ b/client/src/app/+signup/shared/signup-success-before-email.component.html
@@ -29,7 +29,7 @@
29 </p> 29 </p>
30 30
31 <p *ngIf="!requiresApproval" i18n> 31 <p *ngIf="!requiresApproval" i18n>
32 If you need help to use PeerTube, you can have a look at the <a class="link-orange" href="https://docs.joinpeertube.org/use-setup-account" target="_blank" rel="noopener noreferrer">documentation</a>. 32 If you need help to use PeerTube, you can have a look at the <a class="link-orange" href="https://docs.joinpeertube.org/use/setup-account" target="_blank" rel="noopener noreferrer">documentation</a>.
33 </p> 33 </p>
34 </ng-container> 34 </ng-container>
35</div> 35</div>
diff --git a/client/src/app/menu/menu.component.html b/client/src/app/menu/menu.component.html
index 0fb9897b9..6c5258010 100644
--- a/client/src/app/menu/menu.component.html
+++ b/client/src/app/menu/menu.component.html
@@ -142,7 +142,7 @@
142 <a i18n href="https://joinpeertube.org/help" i18n-title title="Get help using PeerTube" target="_blank" rel="noopener noreferrer">Help</a> 142 <a i18n href="https://joinpeertube.org/help" i18n-title title="Get help using PeerTube" target="_blank" rel="noopener noreferrer">Help</a>
143 <a i18n href="https://joinpeertube.org/faq" i18n-title title="Frequently asked questions about PeerTube" target="_blank" rel="noopener noreferrer">FAQ</a> 143 <a i18n href="https://joinpeertube.org/faq" i18n-title title="Frequently asked questions about PeerTube" target="_blank" rel="noopener noreferrer">FAQ</a>
144 <a i18n routerLink="/about/instance" fragment="statistics">Stats</a> 144 <a i18n routerLink="/about/instance" fragment="statistics">Stats</a>
145 <a i18n href="https://docs.joinpeertube.org/api-rest-reference.html" i18n-title title="API documentation" target="_blank" rel="noopener noreferrer">API</a> 145 <a i18n href="https://docs.joinpeertube.org/api/rest-reference.html" i18n-title title="API documentation" target="_blank" rel="noopener noreferrer">API</a>
146 <a role="button" (click)="openHotkeysCheatSheet()" class="c-hand" i18n>Keyboard shortcuts</a> 146 <a role="button" (click)="openHotkeysCheatSheet()" class="c-hand" i18n>Keyboard shortcuts</a>
147 </div> 147 </div>
148 </div> 148 </div>
diff --git a/client/src/app/modal/admin-welcome-modal.component.html b/client/src/app/modal/admin-welcome-modal.component.html
index b74d73185..826b547c3 100644
--- a/client/src/app/modal/admin-welcome-modal.component.html
+++ b/client/src/app/modal/admin-welcome-modal.component.html
@@ -8,22 +8,22 @@
8 8
9 <div class="block-documentation"> 9 <div class="block-documentation">
10 <div class="columns"> 10 <div class="columns">
11 <a class="link-block" href="https://docs.joinpeertube.org/maintain-tools" target="_blank" rel="noopener noreferrer"> 11 <a class="link-block" href="https://docs.joinpeertube.org/maintain/tools" target="_blank" rel="noopener noreferrer">
12 <a i18n class="link-title" href="https://docs.joinpeertube.org/maintain-tools" target="_blank" rel="noopener noreferrer">CLI 12 <a i18n class="link-title" href="https://docs.joinpeertube.org/maintain/tools" target="_blank" rel="noopener noreferrer">CLI
13 documentation</a> 13 documentation</a>
14 14
15 <div i18n>Upload or import videos, parse logs, prune storage directories, reset user password...</div> 15 <div i18n>Upload or import videos, parse logs, prune storage directories, reset user password...</div>
16 </a> 16 </a>
17 17
18 <a class="link-block" href="https://docs.joinpeertube.org/admin-following-instances" target="_blank" rel="noopener noreferrer"> 18 <a class="link-block" href="https://docs.joinpeertube.org/admin/following-instances" target="_blank" rel="noopener noreferrer">
19 <a i18n class="link-title" href="https://docs.joinpeertube.org/admin-following-instances" target="_blank" rel="noopener noreferrer">Administer 19 <a i18n class="link-title" href="https://docs.joinpeertube.org/admin/following-instances" target="_blank" rel="noopener noreferrer">Administer
20 documentation</a> 20 documentation</a>
21 21
22 <div i18n>Managing users, following other instances, dealing with spammers...</div> 22 <div i18n>Managing users, following other instances, dealing with spammers...</div>
23 </a> 23 </a>
24 24
25 <a class="link-block" href="https://docs.joinpeertube.org/use-setup-account" target="_blank" rel="noopener noreferrer"> 25 <a class="link-block" href="https://docs.joinpeertube.org/use/setup-account" target="_blank" rel="noopener noreferrer">
26 <a i18n class="link-title" href="https://docs.joinpeertube.org/use-setup-account" target="_blank" rel="noopener noreferrer">Use 26 <a i18n class="link-title" href="https://docs.joinpeertube.org/use/setup-account" target="_blank" rel="noopener noreferrer">Use
27 documentation</a> 27 documentation</a>
28 28
29 <div i18n>Setup your account, managing video playlists, discover third-party applications...</div> 29 <div i18n>Setup your account, managing video playlists, discover third-party applications...</div>
diff --git a/client/src/app/shared/shared-custom-markup/custom-markup-help.component.html b/client/src/app/shared/shared-custom-markup/custom-markup-help.component.html
index 0ca84ff78..73a2b4058 100644
--- a/client/src/app/shared/shared-custom-markup/custom-markup-help.component.html
+++ b/client/src/app/shared/shared-custom-markup/custom-markup-help.component.html
@@ -1,3 +1,3 @@
1<ng-container i18n> 1<ng-container i18n>
2 <a href="https://en.wikipedia.org/wiki/Markdown#Example" target="_blank" rel="noreferrer noopener">Markdown compatible</a> that also supports <a href="https://docs.joinpeertube.org/api-custom-client-markup" target="_blank" rel="noreferrer noopener">custom PeerTube HTML tags</a> 2 <a href="https://en.wikipedia.org/wiki/Markdown#Example" target="_blank" rel="noreferrer noopener">Markdown compatible</a> that also supports <a href="https://docs.joinpeertube.org/api/custom-client-markup" target="_blank" rel="noreferrer noopener">custom PeerTube HTML tags</a>
3</ng-container> 3</ng-container>
diff --git a/client/src/app/shared/shared-video-live/live-documentation-link.component.html b/client/src/app/shared/shared-video-live/live-documentation-link.component.html
index 27248645f..9e5195e74 100644
--- a/client/src/app/shared/shared-video-live/live-documentation-link.component.html
+++ b/client/src/app/shared/shared-video-live/live-documentation-link.component.html
@@ -1,4 +1,4 @@
1<p i18n> 1<p i18n>
2 See <a class="link-orange" href="https://docs.joinpeertube.org/use-create-upload-video?id=publish-a-live-in-peertube-gt-v3" target="_blank" rel="noopener noreferrer">the documentation</a> 2 See <a class="link-orange" href="https://docs.joinpeertube.org/use/create-upload-video#publish-a-live" target="_blank" rel="noopener noreferrer">the documentation</a>
3 to learn how to use the PeerTube live streaming feature. 3 to learn how to use the PeerTube live streaming feature.
4</p> 4</p>
diff --git a/client/src/standalone/player/README.md b/client/src/standalone/player/README.md
index 0639b4650..7b47e8f02 100644
--- a/client/src/standalone/player/README.md
+++ b/client/src/standalone/player/README.md
@@ -1,3 +1,3 @@
1# @peertube/embed-api 1# @peertube/embed-api
2 2
3See https://docs.joinpeertube.org/api-embed-player 3See https://docs.joinpeertube.org/api/embed-player
diff --git a/config/default.yaml b/config/default.yaml
index bb4a823fa..d2bfae2aa 100644
--- a/config/default.yaml
+++ b/config/default.yaml
@@ -217,7 +217,7 @@ log:
217 accept_client_log: true 217 accept_client_log: true
218 218
219# Support of Open Telemetry metrics and tracing 219# Support of Open Telemetry metrics and tracing
220# For more information: https://docs.joinpeertube.org/maintain-observability 220# For more information: https://docs.joinpeertube.org/maintain/observability
221open_telemetry: 221open_telemetry:
222 metrics: 222 metrics:
223 enabled: false 223 enabled: false
@@ -557,7 +557,7 @@ import:
557 # Classic HTTP or all sites supported by youtube-dl https://rg3.github.io/youtube-dl/supportedsites.html 557 # Classic HTTP or all sites supported by youtube-dl https://rg3.github.io/youtube-dl/supportedsites.html
558 http: 558 http:
559 # We recommend to use a HTTP proxy if you enable HTTP import to prevent private URL access from this server 559 # We recommend to use a HTTP proxy if you enable HTTP import to prevent private URL access from this server
560 # See https://docs.joinpeertube.org/maintain-configuration?id=security for more information 560 # See https://docs.joinpeertube.org/maintain/configuration#security for more information
561 enabled: false 561 enabled: false
562 562
563 youtube_dl_release: 563 youtube_dl_release:
@@ -581,7 +581,7 @@ import:
581 # Magnet URI or torrent file (use classic TCP/UDP/WebSeed to download the file) 581 # Magnet URI or torrent file (use classic TCP/UDP/WebSeed to download the file)
582 torrent: 582 torrent:
583 # We recommend to only enable magnet URI/torrent import if you trust your users 583 # We recommend to only enable magnet URI/torrent import if you trust your users
584 # See https://docs.joinpeertube.org/maintain-configuration?id=security for more information 584 # See https://docs.joinpeertube.org/maintain/configuration#security for more information
585 enabled: false 585 enabled: false
586 586
587 # Add ability for your users to synchronize their channels with external channels, playlists, etc 587 # Add ability for your users to synchronize their channels with external channels, playlists, etc
@@ -741,7 +741,7 @@ search:
741 search_index: 741 search_index:
742 enabled: false 742 enabled: false
743 # URL of the search index, that should use the same search API and routes 743 # URL of the search index, that should use the same search API and routes
744 # than PeerTube: https://docs.joinpeertube.org/api-rest-reference.html 744 # than PeerTube: https://docs.joinpeertube.org/api/rest-reference.html
745 # You should deploy your own with https://framagit.org/framasoft/peertube/search-index, 745 # You should deploy your own with https://framagit.org/framasoft/peertube/search-index,
746 # and can use https://search.joinpeertube.org/ for tests, but keep in mind the latter is an unmoderated search index 746 # and can use https://search.joinpeertube.org/ for tests, but keep in mind the latter is an unmoderated search index
747 url: '' 747 url: ''
diff --git a/config/production.yaml.example b/config/production.yaml.example
index f1ebf9095..0c942c5ec 100644
--- a/config/production.yaml.example
+++ b/config/production.yaml.example
@@ -215,7 +215,7 @@ log:
215 accept_client_log: true 215 accept_client_log: true
216 216
217# Support of Open Telemetry metrics and tracing 217# Support of Open Telemetry metrics and tracing
218# For more information: https://docs.joinpeertube.org/maintain-observability 218# For more information: https://docs.joinpeertube.org/maintain/observability
219open_telemetry: 219open_telemetry:
220 metrics: 220 metrics:
221 enabled: false 221 enabled: false
@@ -567,7 +567,7 @@ import:
567 # Classic HTTP or all sites supported by youtube-dl https://rg3.github.io/youtube-dl/supportedsites.html 567 # Classic HTTP or all sites supported by youtube-dl https://rg3.github.io/youtube-dl/supportedsites.html
568 http: 568 http:
569 # We recommend to use a HTTP proxy if you enable HTTP import to prevent private URL access from this server 569 # We recommend to use a HTTP proxy if you enable HTTP import to prevent private URL access from this server
570 # See https://docs.joinpeertube.org/maintain-configuration?id=security for more information 570 # See https://docs.joinpeertube.org/maintain/configuration#security for more information
571 enabled: false 571 enabled: false
572 572
573 youtube_dl_release: 573 youtube_dl_release:
@@ -591,7 +591,7 @@ import:
591 # Magnet URI or torrent file (use classic TCP/UDP/WebSeed to download the file) 591 # Magnet URI or torrent file (use classic TCP/UDP/WebSeed to download the file)
592 torrent: 592 torrent:
593 # We recommend to only enable magnet URI/torrent import if you trust your users 593 # We recommend to only enable magnet URI/torrent import if you trust your users
594 # See https://docs.joinpeertube.org/maintain-configuration?id=security for more information 594 # See https://docs.joinpeertube.org/maintain/configuration#security for more information
595 enabled: false 595 enabled: false
596 596
597 # Add ability for your users to synchronize their channels with external channels, playlists, etc. 597 # Add ability for your users to synchronize their channels with external channels, playlists, etc.
@@ -751,7 +751,7 @@ search:
751 search_index: 751 search_index:
752 enabled: false 752 enabled: false
753 # URL of the search index, that should use the same search API and routes 753 # URL of the search index, that should use the same search API and routes
754 # than PeerTube: https://docs.joinpeertube.org/api-rest-reference.html 754 # than PeerTube: https://docs.joinpeertube.org/api/rest-reference.html
755 # You should deploy your own with https://framagit.org/framasoft/peertube/search-index, 755 # You should deploy your own with https://framagit.org/framasoft/peertube/search-index,
756 # and can use https://search.joinpeertube.org/ for tests, but keep in mind the latter is an unmoderated search index 756 # and can use https://search.joinpeertube.org/ for tests, but keep in mind the latter is an unmoderated search index
757 url: '' 757 url: ''
diff --git a/packages/types/README.md b/packages/types/README.md
index adeca48e5..3151be344 100644
--- a/packages/types/README.md
+++ b/packages/types/README.md
@@ -16,4 +16,4 @@ yarn add --dev @peertube/peertube-types
16 16
17## Usage 17## Usage
18 18
19> See [contribute-plugins](https://docs.joinpeertube.org/contribute-plugins?id=typescript) **Typescript** section of the doc. 19> See [contribute-plugins](https://docs.joinpeertube.org/contribute/plugins#typescript) **Typescript** section of the doc.
diff --git a/server/initializers/checker-after-init.ts b/server/initializers/checker-after-init.ts
index 0df7414be..14ed82cb4 100644
--- a/server/initializers/checker-after-init.ts
+++ b/server/initializers/checker-after-init.ts
@@ -251,7 +251,7 @@ function checkLiveConfig () {
251 251
252 if (CONFIG.LIVE.RTMPS.ENABLED) { 252 if (CONFIG.LIVE.RTMPS.ENABLED) {
253 if (!CONFIG.LIVE.RTMPS.KEY_FILE) { 253 if (!CONFIG.LIVE.RTMPS.KEY_FILE) {
254 throw new Error('You must specify a key file to enabled RTMPS') 254 throw new Error('You must specify a key file to enable RTMPS')
255 } 255 }
256 256
257 if (!CONFIG.LIVE.RTMPS.CERT_FILE) { 257 if (!CONFIG.LIVE.RTMPS.CERT_FILE) {
diff --git a/server/middlewares/doc.ts b/server/middlewares/doc.ts
index eef76acaa..c43f41977 100644
--- a/server/middlewares/doc.ts
+++ b/server/middlewares/doc.ts
@@ -5,7 +5,7 @@ function openapiOperationDoc (options: {
5 operationId?: string 5 operationId?: string
6}) { 6}) {
7 return (req: express.Request, res: express.Response, next: express.NextFunction) => { 7 return (req: express.Request, res: express.Response, next: express.NextFunction) => {
8 res.locals.docUrl = options.url || 'https://docs.joinpeertube.org/api-rest-reference.html#operation/' + options.operationId 8 res.locals.docUrl = options.url || 'https://docs.joinpeertube.org/api/rest-reference.html#operation/' + options.operationId
9 9
10 if (next) return next() 10 if (next) return next()
11 } 11 }
diff --git a/server/middlewares/error.ts b/server/middlewares/error.ts
index 96a85012a..7b116eb57 100644
--- a/server/middlewares/error.ts
+++ b/server/middlewares/error.ts
@@ -28,7 +28,7 @@ function apiFailMiddleware (req: express.Request, res: express.Response, next: e
28 detail: message, 28 detail: message,
29 29
30 type: type 30 type: type
31 ? `https://docs.joinpeertube.org/api-rest-reference.html#section/Errors/${type}` 31 ? `https://docs.joinpeertube.org/api/rest-reference.html#section/Errors/${type}`
32 : undefined 32 : undefined
33 }, extension) 33 }, extension)
34 34
diff --git a/server/tests/api/check-params/videos.ts b/server/tests/api/check-params/videos.ts
index 572ca8997..2a83143e2 100644
--- a/server/tests/api/check-params/videos.ts
+++ b/server/tests/api/check-params/videos.ts
@@ -421,9 +421,9 @@ describe('Test videos API validator', function () {
421 const error = body as unknown as PeerTubeProblemDocument 421 const error = body as unknown as PeerTubeProblemDocument
422 422
423 if (mode === 'legacy') { 423 if (mode === 'legacy') {
424 expect(error.docs).to.equal('https://docs.joinpeertube.org/api-rest-reference.html#operation/uploadLegacy') 424 expect(error.docs).to.equal('https://docs.joinpeertube.org/api/rest-reference.html#operation/uploadLegacy')
425 } else { 425 } else {
426 expect(error.docs).to.equal('https://docs.joinpeertube.org/api-rest-reference.html#operation/uploadResumableInit') 426 expect(error.docs).to.equal('https://docs.joinpeertube.org/api/rest-reference.html#operation/uploadResumableInit')
427 } 427 }
428 428
429 expect(error.type).to.equal('about:blank') 429 expect(error.type).to.equal('about:blank')
@@ -680,7 +680,7 @@ describe('Test videos API validator', function () {
680 const res = await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) 680 const res = await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields })
681 const error = res.body as PeerTubeProblemDocument 681 const error = res.body as PeerTubeProblemDocument
682 682
683 expect(error.docs).to.equal('https://docs.joinpeertube.org/api-rest-reference.html#operation/putVideo') 683 expect(error.docs).to.equal('https://docs.joinpeertube.org/api/rest-reference.html#operation/putVideo')
684 684
685 expect(error.type).to.equal('about:blank') 685 expect(error.type).to.equal('about:blank')
686 expect(error.title).to.equal('Bad Request') 686 expect(error.title).to.equal('Bad Request')
@@ -729,7 +729,7 @@ describe('Test videos API validator', function () {
729 const body = await server.videos.get({ id: 'hi', expectedStatus: HttpStatusCode.BAD_REQUEST_400 }) 729 const body = await server.videos.get({ id: 'hi', expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
730 const error = body as unknown as PeerTubeProblemDocument 730 const error = body as unknown as PeerTubeProblemDocument
731 731
732 expect(error.docs).to.equal('https://docs.joinpeertube.org/api-rest-reference.html#operation/getVideo') 732 expect(error.docs).to.equal('https://docs.joinpeertube.org/api/rest-reference.html#operation/getVideo')
733 733
734 expect(error.type).to.equal('about:blank') 734 expect(error.type).to.equal('about:blank')
735 expect(error.title).to.equal('Bad Request') 735 expect(error.title).to.equal('Bad Request')
@@ -835,7 +835,7 @@ describe('Test videos API validator', function () {
835 const body = await server.videos.remove({ id: 'hello', expectedStatus: HttpStatusCode.BAD_REQUEST_400 }) 835 const body = await server.videos.remove({ id: 'hello', expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
836 const error = body as PeerTubeProblemDocument 836 const error = body as PeerTubeProblemDocument
837 837
838 expect(error.docs).to.equal('https://docs.joinpeertube.org/api-rest-reference.html#operation/delVideo') 838 expect(error.docs).to.equal('https://docs.joinpeertube.org/api/rest-reference.html#operation/delVideo')
839 839
840 expect(error.type).to.equal('about:blank') 840 expect(error.type).to.equal('about:blank')
841 expect(error.title).to.equal('Bad Request') 841 expect(error.title).to.equal('Bad Request')
diff --git a/server/tests/api/server/follow-constraints.ts b/server/tests/api/server/follow-constraints.ts
index ff5332858..704d6fc96 100644
--- a/server/tests/api/server/follow-constraints.ts
+++ b/server/tests/api/server/follow-constraints.ts
@@ -146,7 +146,7 @@ describe('Test follow constraints', function () {
146 const body = await servers[0].videos.get({ id: video2UUID, expectedStatus: HttpStatusCode.FORBIDDEN_403 }) 146 const body = await servers[0].videos.get({ id: video2UUID, expectedStatus: HttpStatusCode.FORBIDDEN_403 })
147 const error = body as unknown as PeerTubeProblemDocument 147 const error = body as unknown as PeerTubeProblemDocument
148 148
149 const doc = 'https://docs.joinpeertube.org/api-rest-reference.html#section/Errors/does_not_respect_follow_constraints' 149 const doc = 'https://docs.joinpeertube.org/api/rest-reference.html#section/Errors/does_not_respect_follow_constraints'
150 expect(error.type).to.equal(doc) 150 expect(error.type).to.equal(doc)
151 expect(error.code).to.equal(ServerErrorCode.DOES_NOT_RESPECT_FOLLOW_CONSTRAINTS) 151 expect(error.code).to.equal(ServerErrorCode.DOES_NOT_RESPECT_FOLLOW_CONSTRAINTS)
152 152
diff --git a/server/tools/README.md b/server/tools/README.md
index 449c57ce1..d7ecd4004 100644
--- a/server/tools/README.md
+++ b/server/tools/README.md
@@ -1,3 +1,3 @@
1# PeerTube CLI 1# PeerTube CLI
2 2
3See https://docs.joinpeertube.org/maintain-tools?id=remote-tools 3See https://docs.joinpeertube.org/maintain/tools#remote-tools
diff --git a/support/doc/api/embeds.md b/support/doc/api/embeds.md
index 069882bfe..1dd1443e7 100644
--- a/support/doc/api/embeds.md
+++ b/support/doc/api/embeds.md
@@ -49,131 +49,131 @@ player.seek(32)
49player.pause() 49player.pause()
50``` 50```
51 51
52# URL parameters 52## Embed URL parameters
53 53
54You can customize PeerTube player by specifying URL query parameters. 54You can customize PeerTube player by specifying URL query parameters.
55For example `https://my-instance.example.com/videos/embed/52a10666-3a18-4e73-93da-e8d3c12c305a??start=1s&stop=18s&loop=1&autoplay=1&muted=1&warningTitle=0&controlBar=0&peertubeLink=0&p2p=0` 55For example `https://my-instance.example.com/videos/embed/52a10666-3a18-4e73-93da-e8d3c12c305a??start=1s&stop=18s&loop=1&autoplay=1&muted=1&warningTitle=0&controlBar=0&peertubeLink=0&p2p=0`
56 56
57## start 57### start
58 58
59Start the video at a specific time. 59Start the video at a specific time.
60Value must be raw seconds or a duration (`3m4s`) 60Value must be raw seconds or a duration (`3m4s`)
61 61
62## stop 62### stop
63 63
64Stop the video at a specific time. 64Stop the video at a specific time.
65Value must be raw seconds or a duration (`54s`) 65Value must be raw seconds or a duration (`54s`)
66 66
67## controls 67### controls
68 68
69Mimics video HTML element `controls` attribute, meaning that all controls (including big play button, control bar, etc.) will be removed. 69Mimics video HTML element `controls` attribute, meaning that all controls (including big play button, control bar, etc.) will be removed.
70It can be useful if you want to have a full control of the PeerTube player. 70It can be useful if you want to have a full control of the PeerTube player.
71 71
72Value must be `0` or `1`. 72Value must be `0` or `1`.
73 73
74## controlBar 74### controlBar
75 75
76Hide control bar when the video is played. 76Hide control bar when the video is played.
77 77
78Value must be `0` or `1`. 78Value must be `0` or `1`.
79 79
80## peertubeLink 80### peertubeLink
81 81
82Hide PeerTube instance link in control bar. 82Hide PeerTube instance link in control bar.
83 83
84Value must be `0` or `1`. 84Value must be `0` or `1`.
85 85
86## muted 86### muted
87 87
88Mute the video by default. 88Mute the video by default.
89 89
90Value must be `0` or `1`. 90Value must be `0` or `1`.
91 91
92## loop 92### loop
93 93
94Automatically start again the video when it ends. 94Automatically start again the video when it ends.
95 95
96Value must be `0` or `1`. 96Value must be `0` or `1`.
97 97
98## subtitle 98### subtitle
99 99
100Auto select a subtitle by default. 100Auto select a subtitle by default.
101 101
102Value must be a valid subtitle ISO code (`fr`, `en`, etc.). 102Value must be a valid subtitle ISO code (`fr`, `en`, etc.).
103 103
104## autoplay 104### autoplay
105 105
106Try to automatically play the video. 106Try to automatically play the video.
107Most web browsers disable video autoplay if the user did not interact with the video. You can try to bypass this limitation by muting the video 107Most web browsers disable video autoplay if the user did not interact with the video. You can try to bypass this limitation by muting the video
108 108
109Value must be `0` or `1`. 109Value must be `0` or `1`.
110 110
111## title 111### title
112 112
113Hide embed title. 113Hide embed title.
114 114
115Value must be `0` or `1`. 115Value must be `0` or `1`.
116 116
117## warningTitle 117### warningTitle
118 118
119Hide P2P warning title. 119Hide P2P warning title.
120 120
121Value must be `0` or `1`. 121Value must be `0` or `1`.
122 122
123## p2p 123### p2p
124 124
125Disable P2P. 125Disable P2P.
126 126
127Value must be `0` or `1`. 127Value must be `0` or `1`.
128 128
129## bigPlayBackgroundColor 129### bigPlayBackgroundColor
130 130
131Customize big play button background color. 131Customize big play button background color.
132 132
133Value must be a valid color (`red` or `rgba(100, 100, 100, 0.5)`). 133Value must be a valid color (`red` or `rgba(100, 100, 100, 0.5)`).
134 134
135## foregroundColor 135### foregroundColor
136 136
137Customize embed font color. 137Customize embed font color.
138 138
139Value must be a valid color (`red` or `rgba(100, 100, 100, 0.5)`). 139Value must be a valid color (`red` or `rgba(100, 100, 100, 0.5)`).
140 140
141## mode 141### mode
142 142
143Force a specific player engine. 143Force a specific player engine.
144 144
145Value must be a valid mode (`webtorrent` or `p2p-media-loader`). 145Value must be a valid mode (`webtorrent` or `p2p-media-loader`).
146 146
147## api 147### api
148 148
149Enable embed JavaScript API (see methods below). 149Enable embed JavaScript API (see methods below).
150 150
151Value must be `0` or `1`. 151Value must be `0` or `1`.
152 152
153 153
154# Methods 154## Embed methods
155 155
156## `play() : Promise<void>` 156### `play() : Promise<void>`
157 157
158Starts playback, or resumes playback if it is paused. 158Starts playback, or resumes playback if it is paused.
159 159
160## `pause() : Promise<void>` 160### `pause() : Promise<void>`
161 161
162Pauses playback. 162Pauses playback.
163 163
164## `seek(positionInSeconds : number)` 164### `seek(positionInSeconds : number)`
165 165
166Seek to the given position, as specified in seconds into the video. 166Seek to the given position, as specified in seconds into the video.
167 167
168## `addEventListener(eventName : string, handler : Function)` 168### `addEventListener(eventName : string, handler : Function)`
169 169
170Add a listener for a specific event. See below for the available events. 170Add a listener for a specific event. See below for the available events.
171 171
172## `removeEventListener(eventName : string, handler : Function)` 172### `removeEventListener(eventName : string, handler : Function)`
173 173
174Remove a listener. 174Remove a listener.
175 175
176## `getResolutions() : Promise<PeerTubeResolution[]>` 176### `getResolutions() : Promise<PeerTubeResolution[]>`
177 177
178Get the available resolutions. A `PeerTubeResolution` looks like: 178Get the available resolutions. A `PeerTubeResolution` looks like:
179 179
@@ -188,56 +188,56 @@ Get the available resolutions. A `PeerTubeResolution` looks like:
188 188
189`active` is true if the resolution is the currently selected resolution. 189`active` is true if the resolution is the currently selected resolution.
190 190
191## `setResolution(resolutionId : number): Promise<void>` 191### `setResolution(resolutionId : number): Promise<void>`
192 192
193Change the current resolution. Pass `-1` for automatic resolution (when available). 193Change the current resolution. Pass `-1` for automatic resolution (when available).
194Otherwise, `resolutionId` should be the ID of an object returned by `getResolutions()` 194Otherwise, `resolutionId` should be the ID of an object returned by `getResolutions()`
195 195
196## `getPlaybackRates() : Promise<number[]>` 196### `getPlaybackRates() : Promise<number[]>`
197 197
198Get the available playback rates, where `1` represents normal speed, `0.5` is half speed, `2` is double speed, etc. 198Get the available playback rates, where `1` represents normal speed, `0.5` is half speed, `2` is double speed, etc.
199 199
200## `getPlaybackRates() : Promise<number>` 200### `getPlaybackRates() : Promise<number>`
201 201
202Get the current playback rate. See `getPlaybackRates()` for more information. 202Get the current playback rate. See `getPlaybackRates()` for more information.
203 203
204## `setPlaybackRate(rate: number) : Promise<void>` 204### `setPlaybackRate(rate: number) : Promise<void>`
205 205
206Set the current playback rate. The passed rate should be a value as returned by `getPlaybackRates()`. 206Set the current playback rate. The passed rate should be a value as returned by `getPlaybackRates()`.
207 207
208## `setVolume(factor: number) : Promise<void>` 208### `setVolume(factor: number) : Promise<void>`
209 209
210Set the playback volume. Value should be between `0` and `1`. 210Set the playback volume. Value should be between `0` and `1`.
211 211
212## `getVolume(): Promise<number>` 212### `getVolume(): Promise<number>`
213 213
214Get the playback volume. Returns a value between `0` and `1`. 214Get the playback volume. Returns a value between `0` and `1`.
215 215
216## `setCaption(id: string) : Promise<void>` 216### `setCaption(id: string) : Promise<void>`
217 217
218Update current caption using the caption id. 218Update current caption using the caption id.
219 219
220## `getCaptions(): Promise<{ id: string, label: string, src: string, mode: 'disabled' | 'showing' }>` 220### `getCaptions(): Promise<{ id: string, label: string, src: string, mode: 'disabled' | 'showing' }>`
221 221
222Get video captions. 222Get video captions.
223 223
224## `playNextVideo(): Promise<void>` 224### `playNextVideo(): Promise<void>`
225 225
226Play next video in playlist. 226Play next video in playlist.
227 227
228## `playPreviousVideo(): Promise<void>` 228### `playPreviousVideo(): Promise<void>`
229 229
230Play previous video in playlist. 230Play previous video in playlist.
231 231
232## `getCurrentPosition(): Promise<void>` 232### `getCurrentPosition(): Promise<void>`
233 233
234Get current position in playlist (starts from 1). 234Get current position in playlist (starts from 1).
235 235
236# Events 236## Embed events
237 237
238You can subscribe to events by using `addEventListener()`. See above for details. 238You can subscribe to events by using `addEventListener()`. See above for details.
239 239
240## Event `playbackStatusUpdate` 240### Event `playbackStatusUpdate`
241 241
242Fired every half second to provide the current status of playback. 242Fired every half second to provide the current status of playback.
243The parameter of the callback will resemble: 243The parameter of the callback will resemble:
@@ -256,14 +256,14 @@ The parameter of the callback will resemble:
256The `volume` field contains the volume from `0` (silent) to `1` (full volume). 256The `volume` field contains the volume from `0` (silent) to `1` (full volume).
257The `playbackState` can be `unstarted`, `playing`, `paused` or `ended`. More states may be added later. 257The `playbackState` can be `unstarted`, `playing`, `paused` or `ended`. More states may be added later.
258 258
259## Event `playbackStatusChange` 259### Event `playbackStatusChange`
260 260
261Fired when playback transitions between states, such as `paused` and `playing`. More states may be added later. 261Fired when playback transitions between states, such as `paused` and `playing`. More states may be added later.
262 262
263## Event `resolutionUpdate` 263### Event `resolutionUpdate`
264 264
265Fired when the available resolutions have changed, or when the currently selected resolution has changed. Listener should call `getResolutions()` to get the updated information. 265Fired when the available resolutions have changed, or when the currently selected resolution has changed. Listener should call `getResolutions()` to get the updated information.
266 266
267## Event `volumeChange` 267### Event `volumeChange`
268 268
269Fired when the player volume changed. 269Fired when the player volume changed.
diff --git a/support/doc/api/openapi.yaml b/support/doc/api/openapi.yaml
index 79417e34f..fa50e8f17 100644
--- a/support/doc/api/openapi.yaml
+++ b/support/doc/api/openapi.yaml
@@ -21,7 +21,7 @@ info:
21 - [Go](https://framagit.org/framasoft/peertube/clients/go) 21 - [Go](https://framagit.org/framasoft/peertube/clients/go)
22 - [Kotlin](https://framagit.org/framasoft/peertube/clients/kotlin) 22 - [Kotlin](https://framagit.org/framasoft/peertube/clients/kotlin)
23 23
24 See the [REST API quick start](https://docs.joinpeertube.org/api-rest-getting-started) for a few 24 See the [REST API quick start](https://docs.joinpeertube.org/api/rest-getting-started) for a few
25 examples of using the PeerTube API. 25 examples of using the PeerTube API.
26 26
27 # Authentication 27 # Authentication
@@ -33,7 +33,7 @@ info:
33 ## Roles 33 ## Roles
34 34
35 Accounts are given permissions based on their role. There are three roles on 35 Accounts are given permissions based on their role. There are three roles on
36 PeerTube: Administrator, Moderator, and User. See the [roles guide](https://docs.joinpeertube.org/admin-managing-users?id=roles) for a detail of their permissions. 36 PeerTube: Administrator, Moderator, and User. See the [roles guide](https://docs.joinpeertube.org/admin/managing-users#roles) for a detail of their permissions.
37 37
38 # Errors 38 # Errors
39 39
@@ -46,7 +46,7 @@ info:
46 46
47 { 47 {
48 "detail": "Video not found", 48 "detail": "Video not found",
49 "docs": "https://docs.joinpeertube.org/api-rest-reference.html#operation/getVideo", 49 "docs": "https://docs.joinpeertube.org/api/rest-reference.html#operation/getVideo",
50 "status": 404, 50 "status": 404,
51 "title": "Not Found", 51 "title": "Not Found",
52 "type": "about:blank" 52 "type": "about:blank"
@@ -63,10 +63,10 @@ info:
63 63
64 { 64 {
65 "detail": "Cannot get this video regarding follow constraints", 65 "detail": "Cannot get this video regarding follow constraints",
66 "docs": "https://docs.joinpeertube.org/api-rest-reference.html#operation/getVideo", 66 "docs": "https://docs.joinpeertube.org/api/rest-reference.html#operation/getVideo",
67 "status": 403, 67 "status": 403,
68 "title": "Forbidden", 68 "title": "Forbidden",
69 "type": "https://docs.joinpeertube.org/api-rest-reference.html#section/Errors/does_not_respect_follow_constraints" 69 "type": "https://docs.joinpeertube.org/api/rest-reference.html#section/Errors/does_not_respect_follow_constraints"
70 } 70 }
71 ``` 71 ```
72 72
@@ -84,7 +84,7 @@ info:
84 84
85 { 85 {
86 "detail": "Incorrect request parameters: id", 86 "detail": "Incorrect request parameters: id",
87 "docs": "https://docs.joinpeertube.org/api-rest-reference.html#operation/getVideo", 87 "docs": "https://docs.joinpeertube.org/api/rest-reference.html#operation/getVideo",
88 "instance": "/api/v1/videos/9c9de5e8-0a1e-484a-b099-e80766180", 88 "instance": "/api/v1/videos/9c9de5e8-0a1e-484a-b099-e80766180",
89 "invalid-params": { 89 "invalid-params": {
90 "id": { 90 "id": {
@@ -149,7 +149,7 @@ info:
149 149
150 In addition, all routes serving ActivityPub are CORS-enabled for all origins. 150 In addition, all routes serving ActivityPub are CORS-enabled for all origins.
151externalDocs: 151externalDocs:
152 url: https://docs.joinpeertube.org/api-rest-reference.html 152 url: https://docs.joinpeertube.org/api/rest-reference.html
153tags: 153tags:
154 - name: Register 154 - name: Register
155 description: | 155 description: |
@@ -204,7 +204,7 @@ tags:
204 information across its social graph by posting activities to actors' inbox 204 information across its social graph by posting activities to actors' inbox
205 endpoints. 205 endpoints.
206 externalDocs: 206 externalDocs:
207 url: https://docs.joinpeertube.org/admin-following-instances?id=instances-follows 207 url: https://docs.joinpeertube.org/admin/following-instances#instances-follows
208 - name: Instance Redundancy 208 - name: Instance Redundancy
209 description: > 209 description: >
210 Redundancy is part of the inter-server solidarity that PeerTube fosters. 210 Redundancy is part of the inter-server solidarity that PeerTube fosters.
@@ -212,12 +212,12 @@ tags:
212 to the policy of video selection of your choice. Note that you have a similar functionality 212 to the policy of video selection of your choice. Note that you have a similar functionality
213 to mirror individual videos, see [video mirroring](#tag/Video-Mirroring). 213 to mirror individual videos, see [video mirroring](#tag/Video-Mirroring).
214 externalDocs: 214 externalDocs:
215 url: https://docs.joinpeertube.org/admin-following-instances?id=instances-redundancy 215 url: https://docs.joinpeertube.org/admin/following-instances#instances-redundancy
216 - name: Plugins 216 - name: Plugins
217 description: > 217 description: >
218 Managing plugins installed from a local path or from NPM, or search for new ones. 218 Managing plugins installed from a local path or from NPM, or search for new ones.
219 externalDocs: 219 externalDocs:
220 url: https://docs.joinpeertube.org/api-plugins 220 url: https://docs.joinpeertube.org/api/plugins
221 - name: Abuses 221 - name: Abuses
222 description: | 222 description: |
223 Abuses deal with reports of local or remote videos/comments/accounts alike. 223 Abuses deal with reports of local or remote videos/comments/accounts alike.
@@ -5933,7 +5933,7 @@ components:
5933 Note that the __access token is valid for 1 day__ and is given 5933 Note that the __access token is valid for 1 day__ and is given
5934 along with a __refresh token valid for 2 weeks__. 5934 along with a __refresh token valid for 2 weeks__.
5935 5935
5936 [Generate]: https://docs.joinpeertube.org/api-rest-getting-started 5936 [Generate]: https://docs.joinpeertube.org/api/rest-getting-started
5937 type: oauth2 5937 type: oauth2
5938 flows: 5938 flows:
5939 password: 5939 password:
diff --git a/support/doc/docker.md b/support/doc/docker.md
index 6fc443c8e..e3f9b5477 100644
--- a/support/doc/docker.md
+++ b/support/doc/docker.md
@@ -119,11 +119,11 @@ peertube._domainkey.mydomain.tld. IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
119 119
120#### Administrator password 120#### Administrator password
121 121
122See the production guide ["Administrator" section](https://docs.joinpeertube.org/install-any-os?id=technologist-administrator) 122See the production guide ["Administrator" section](https://docs.joinpeertube.org/install/any-os#administrator)
123 123
124#### What now? 124#### What now?
125 125
126See the production guide ["What now" section](https://docs.joinpeertube.org/install-any-os?id=tada-what-now). 126See the production guide ["What now" section](https://docs.joinpeertube.org/install/any-os#what-now).
127 127
128## Upgrade 128## Upgrade
129 129
diff --git a/support/doc/plugins/guide.md b/support/doc/plugins/guide.md
index f82dbd15b..2cc544f1c 100644
--- a/support/doc/plugins/guide.md
+++ b/support/doc/plugins/guide.md
@@ -585,7 +585,7 @@ async function register ({
585} 585}
586``` 586```
587 587
588See the [plugin API reference](https://docs.joinpeertube.org/api-plugins) to see the complete helpers list. 588See the [plugin API reference](https://docs.joinpeertube.org/api/plugins) to see the complete helpers list.
589 589
590### Client API (themes & plugins) 590### Client API (themes & plugins)
591 591
@@ -839,7 +839,7 @@ PeerTube provides some selectors (using `id` HTML attribute) on important blocks
839 839
840For example `#plugin-selector-login-form` could be used to hide the login form. 840For example `#plugin-selector-login-form` could be used to hide the login form.
841 841
842See the complete list on https://docs.joinpeertube.org/api-plugins 842See the complete list on https://docs.joinpeertube.org/api/plugins
843 843
844#### HTML placeholder elements 844#### HTML placeholder elements
845 845
@@ -855,7 +855,7 @@ async function register (...) {
855} 855}
856``` 856```
857 857
858See the complete list on https://docs.joinpeertube.org/api-plugins 858See the complete list on https://docs.joinpeertube.org/api/plugins
859 859
860#### Add/remove left menu links 860#### Add/remove left menu links
861 861
@@ -1140,7 +1140,7 @@ $ npm deprecate peertube-plugin-xxx@"> 0.0.0" "explain here why you deprecate yo
1140 1140
1141## Plugin & Theme hooks/helpers API 1141## Plugin & Theme hooks/helpers API
1142 1142
1143See the dedicated documentation: https://docs.joinpeertube.org/api-plugins 1143See the dedicated documentation: https://docs.joinpeertube.org/api/plugins
1144 1144
1145 1145
1146## Tips 1146## Tips
diff --git a/support/doc/production.md b/support/doc/production.md
index 3a71a1a80..74bd3a673 100644
--- a/support/doc/production.md
+++ b/support/doc/production.md
@@ -125,7 +125,7 @@ Then edit the `config/production.yaml` file according to your webserver and data
125 125
126Keys defined in `config/production.yaml` will override keys defined in `config/default.yaml`. 126Keys defined in `config/production.yaml` will override keys defined in `config/default.yaml`.
127 127
128**PeerTube does not support webserver host change**. Even though [PeerTube CLI can help you to switch hostname](https://docs.joinpeertube.org/maintain-tools?id=update-hostjs) there's no official support for that since it is a risky operation that might result in unforeseen errors. 128**PeerTube does not support webserver host change**. Even though [PeerTube CLI can help you to switch hostname](https://docs.joinpeertube.org/maintain/tools#update-host-js) there's no official support for that since it is a risky operation that might result in unforeseen errors.
129 129
130### :truck: Webserver 130### :truck: Webserver
131 131
diff --git a/support/openapi/go/README.mustache b/support/openapi/go/README.mustache
index d0fc0fa33..d58657b5b 100644
--- a/support/openapi/go/README.mustache
+++ b/support/openapi/go/README.mustache
@@ -1,6 +1,6 @@
1# Go API client for {{appName}} 1# Go API client for {{appName}}
2 2
3This Python package is automatically generated from [PeerTube's REST API](https://docs.joinpeertube.org/api-rest-reference.html), 3This Python package is automatically generated from [PeerTube's REST API](https://docs.joinpeertube.org/api/rest-reference.html),
4using the [OpenAPI Generator](https://openapi-generator.tech) project: 4using the [OpenAPI Generator](https://openapi-generator.tech) project:
5 5
6- API version: {{appVersion}} 6- API version: {{appVersion}}
diff --git a/support/openapi/python/README.mustache b/support/openapi/python/README.mustache
index 93dcd5ab6..de41970e8 100644
--- a/support/openapi/python/README.mustache
+++ b/support/openapi/python/README.mustache
@@ -1,6 +1,6 @@
1# Python API client for {{appName}} 1# Python API client for {{appName}}
2 2
3This Python package is automatically generated from [PeerTube's REST API](https://docs.joinpeertube.org/api-rest-reference.html), 3This Python package is automatically generated from [PeerTube's REST API](https://docs.joinpeertube.org/api/rest-reference.html),
4using the [OpenAPI Generator](https://openapi-generator.tech) project: 4using the [OpenAPI Generator](https://openapi-generator.tech) project:
5 5
6- API version: {{appVersion}} 6- API version: {{appVersion}}