diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index b3847b8d7..b88027042 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -9,8 +9,6 @@ Interested in contributing? Awesome! * [Write documentation](#write-documentation) * [Develop](#develop) * [Improve the website](#improve-the-website) - * [Troubleshooting](#troubleshooting) - * [Tutorials](#tutorials) ## Translate @@ -101,7 +99,7 @@ You can get a complete PeerTube development setup with Gitpod, a free one-click ### Server side -You can find a documentation of the server code/architecture [here](/support/doc/development/server/code.md). +You can find a documentation of the server code/architecture [here](https://docs.joinpeertube.org/#/contribute-architecture?id=server-code). To develop on the server-side: @@ -116,7 +114,7 @@ restart. ### Client side You can find a documentation of the server code/architecture -[here](/support/doc/development/client/code.md). +[here](https://docs.joinpeertube.org/#/contribute-architecture?id=client-code). To develop on the client side: @@ -193,11 +191,3 @@ $ npm run mocha -- --exit --require ts-node/register/type-check --bail server/te Instance configurations are in `config/test-{1,2,3,4,5,6}.yaml`. Note that only instance 2 has transcoding enabled. - -### Troubleshooting - -Please check out the issues and [list of common errors](https://docs.joinpeertube.org/lang/en/devdocs/troubleshooting.html). - -### Tutorials - -Please check out the related section in the [development documentation](https://docs.joinpeertube.org/lang/en/devdocs/index.html#tutorials). Contribute tutorials at [framagit.org/framasoft/peertube/documentation](https://framagit.org/framasoft/peertube/documentation). diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md deleted file mode 100644 index f3254d2d6..000000000 --- a/ARCHITECTURE.md +++ /dev/null @@ -1,45 +0,0 @@ -# Architecture - -## Vocabulary - - - **Fediverse:** several servers following one another, several users - following each other. Designates federated communities in general. - - **Vidiverse:** same as Fediverse, but federating videos specifically. - - **Instance:** a server which runs PeerTube in the fediverse. - - **Origin instance:** the instance on which the video was uploaded and which - is seeding (through the WebSeed protocol) the video. - - **Cache instance:** an instance that decided to make available a WebSeed - of its own for a video originating from another instance. It sends a `ptCache` - activity to notify the origin instance, which will then update its list of - WebSeeds for the video. - - **Following:** the action of a PeerTube instance which will follow another - instance (subscribe to its videos). - -## Base - -### Communications - * All the communication between the instances are signed with [Linked Data - Signatures](https://w3c-dvcg.github.io/ld-signatures/) with the private key - of the account that authored the action. - * We use the [ActivityPub](https://www.w3.org/TR/activitypub/) protocol (only - server-server for now). Object models could be found in - [shared/models/activitypub - directory](/shared/models/activitypub). - * All the requests are retried several times if they fail. - -### Instance - * An instance has a websocket tracker which is responsible for all videos - uploaded by its users. - * An instance has an administrator that can follow other instances. - * An instance can be configured to follow back automatically. - * An instance can blacklist other instances (only used in "follow back" - mode). - * An instance cannot choose which other instances follow it, but it can - decide to **reject all** followers. - * After having uploaded a video, the instance seeds it (WebSeed protocol). - * If a user wants to watch a video, they ask its instance the magnet URI and - the frontend adds the torrent (with WebTorrent), creates the HTML5 video - player and streams the file into it. - * A user watching a video seeds it too (BitTorrent). Thus another user who is - watching the same video can get the data from the origin server and other - users watching it. diff --git a/CHANGELOG.md b/CHANGELOG.md index 62b1b057a..172509269 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -224,8 +224,8 @@ and update your [.env](https://github.com/Chocobozzz/PeerTube/blob/develop/suppo ### Maintenance - * Improve REST API documentation: https://docs.joinpeertube.org/api.html ([@rigelk](https://github.com/rigelk)) - * Add basic ActivityPub documentation: https://docs.joinpeertube.org/lang/en/devdocs/federation.html ([@rigelk](https://github.com/rigelk)) + * Improve REST API documentation ([@rigelk](https://github.com/rigelk)) + * Add basic ActivityPub documentation ([@rigelk](https://github.com/rigelk)) * Add CLI option to run PeerTube without client ([@rigelk](https://github.com/rigelk)) * Add manpage to peertube CLI ([@rigelk](https://github.com/rigelk)) * Make backups of files in optimize-old-videos script ([@Nutomic](https://github.com/nutomic)) @@ -310,8 +310,8 @@ and update your [.env](https://github.com/Chocobozzz/PeerTube/blob/develop/suppo ### Maintenance - * Improve REST API documentation: https://docs.joinpeertube.org/api.html ([@rigelk](https://github.com/rigelk)) - * Add basic ActivityPub documentation: https://docs.joinpeertube.org/lang/en/devdocs/federation.html ([@rigelk](https://github.com/rigelk)) + * Improve REST API documentation ([@rigelk](https://github.com/rigelk)) + * Add basic ActivityPub documentation ([@rigelk](https://github.com/rigelk)) * Add CLI option to run PeerTube without client ([@rigelk](https://github.com/rigelk)) * Add manpage to peertube CLI ([@rigelk](https://github.com/rigelk)) * Make backups of files in optimize-old-videos script ([@Nutomic](https://github.com/nutomic)) @@ -525,7 +525,7 @@ This release could contain bugs. Don't expect a stable v1.1.0 until December :) ### Features - * Video redundancy system (experimental, see [the doc](https://docs.joinpeertube.org/lang/en/devdocs/architecture.html#redundancy-between-instances)) + * Video redundancy system (experimental) * Add peertube script (see [the doc](/support/doc/tools.md#cli-wrapper)) ([@rigelk](https://github.com/rigelk)) * Improve download modal ([@rigelk](https://github.com/rigelk)) * Add redirect after login ([@BO41](https://github.com/BO41)) diff --git a/FAQ.md b/FAQ.md index 7d8be96a7..1a3b1847b 100644 --- a/FAQ.md +++ b/FAQ.md @@ -58,7 +58,7 @@ is named "Framatube". Yes, the origin server always seeds videos uploaded on it thanks to [Webseed](http://www.bittorrent.org/beps/bep_0019.html). -It can also be helped by other servers using [redundancy](https://docs.joinpeertube.org/lang/en/devdocs/architecture.html#redundancy-between-instances). +It can also be helped by other servers using [redundancy](https://docs.joinpeertube.org/#/contribute-architecture?id=redundancy-between-instances). ## What is WebSeed? diff --git a/README.md b/README.md index a5060cf0d..b30de208b 100644 --- a/README.md +++ b/README.md @@ -115,7 +115,7 @@ Be it as a user or an instance administrator, you can decide what your experienc
-In 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 redundancy guide). +In 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 redundancy guide).
Content 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 incentivize alter creativity (more about that in our FAQ).
@@ -153,7 +153,7 @@ Feel free to reach out if you have any questions or ideas! :speech_balloon:
See the [production guide](/support/doc/production.md), which is the recommended way.
-See the [community packages](https://docs.joinpeertube.org/lang/en/docs/install.html), which cover various platforms (including [YunoHost](https://install-app.yunohost.org/?app=peertube) and [Docker](/support/doc/docker.md)).
+See the [community packages](https://docs.joinpeertube.org/#/install-unofficial), which cover various platforms (including [YunoHost](https://install-app.yunohost.org/?app=peertube) and [Docker](/support/doc/docker.md)).
:book: Documentation
----------------------------------------------------------------
@@ -162,13 +162,13 @@ If you have a question, please try to find the answer in the [FAQ](/FAQ.md) firs
### User documentation
-See the [user documentation](https://docs.joinpeertube.org/lang/en/userdocs/).
+See the [user documentation](https://docs.joinpeertube.org/#/use-setup-account).
### Admin documentation
See [how to create your own instance](#package-create-your-own-instance).
-See the more general [admin documentation](https://docs.joinpeertube.org/lang/en/docs/).
+See the more general [admin documentation](https://docs.joinpeertube.org/#/admin-following-instances).
#### Tools
@@ -178,13 +178,13 @@ See the more general [admin documentation](https://docs.joinpeertube.org/lang/en
### Technical documentation
-See the [architecture blueprint](https://docs.joinpeertube.org/lang/en/devdocs/architecture.html) for a more detailed explanation of the architectural choices.
+See the [architecture blueprint](https://docs.joinpeertube.org/#/contribute-architecture) for a more detailed explanation of the architectural choices.
See our REST API documentation:
* OpenAPI 3.0.0 schema: [/support/doc/api/openapi.yaml](/support/doc/api/openapi.yaml)
- * Spec explorer: [docs.joinpeertube.org/api.html](http://docs.joinpeertube.org/api.html)
+ * Spec explorer: [docs.joinpeertube.org/#/api-rest-reference.html](https://docs.joinpeertube.org/#/api-rest-reference.html)
-See our [ActivityPub documentation](https://docs.joinpeertube.org/lang/en/devdocs/federation.html).
+See our [ActivityPub documentation](https://docs.joinpeertube.org/#/api-activitypub).
:heart: Supports of our crowdfunding
----------------------------------------------------------------
diff --git a/support/doc/api/openapi.yaml b/support/doc/api/openapi.yaml
index 9963e1d26..3c7688a7c 100644
--- a/support/doc/api/openapi.yaml
+++ b/support/doc/api/openapi.yaml
@@ -38,7 +38,7 @@ info:
}
```
externalDocs:
- url: https://docs.joinpeertube.org/api.html
+ url: https://docs.joinpeertube.org/#/api-rest-reference.html
tags:
- name: Accounts
description: >
@@ -1739,7 +1739,7 @@ components:
- Have an account with sufficient authorization levels
- - [Generate](https://docs.joinpeertube.org/lang/en/devdocs/rest.html) a
+ - [Generate](https://docs.joinpeertube.org/#/api-rest-getting-started) a
Bearer Token
- Make Authenticated Requests
diff --git a/support/doc/api/quickstart.md b/support/doc/api/quickstart.md
index 00874a1c9..2222be741 100644
--- a/support/doc/api/quickstart.md
+++ b/support/doc/api/quickstart.md
@@ -47,7 +47,7 @@ $ curl -H 'Authorization: Bearer 90286a0bdf0f7315d9d3fe8dabf9e1d2be9c97d0' https
```
-### List videos
+## List videos
```bash
$ curl https://peertube.example.com/api/v1/videos
diff --git a/support/doc/development/client/code.md b/support/doc/development/client/code.md
deleted file mode 100644
index 235116e78..000000000
--- a/support/doc/development/client/code.md
+++ /dev/null
@@ -1,67 +0,0 @@
-# Client code documentation
-
-The client is a HTML/CSS/JavaScript web application (single page application -> SPA) developed with [TypeScript](https://www.typescriptlang.org/)/[Angular](https://angular.io/).
-
-
-## Technologies
-
- * [TypeScript](https://www.typescriptlang.org/) -> Language
- * [Angular](https://angular.io) -> JavaScript framework
- * [SASS](http://sass-lang.com/) -> CSS framework
- * [Webpack](https://webpack.js.org/) -> Source builder (compile TypeScript, SASS files, bundle them...)
- * [Bootstrap](http://getbootstrap.com/) -> CSS framework
- * [WebTorrent](https://webtorrent.io/) -> JavaScript library to make P2P in the browser
- * [VideoJS](http://videojs.com/) -> JavaScript player framework
-
-
-## Files
-
-The client files are in the `client` directory. The Webpack 2 configurations files are in `client/config` and the source files in `client/src`.
-The client modules description are in the [client/package.json](/client/package.json). There are many modules that are used to compile the web application in development or production mode.
-Here is the description of the useful `client` files directory:
-
- tslint.json -> TypeScript linter rules
- tsconfig.json -> TypeScript configuration for the compilation
- .bootstraprc -> Bootstrap configuration file (which module we need)
- config -> Webpack configuration files
- src
- |__ app -> TypeScript files for Angular application
- |__ assets -> static files (images...)
- |__ sass -> SASS files that are global for the application
- |__ standalone -> files outside the Angular application (embed HTML page...)
- |__ index.html -> root HTML file for our Angular application
- |__ main.ts -> Main TypeScript file that boostraps our Angular application
- |__ polyfills.ts -> Polyfills imports (ES 2015...)
-
-Details of the Angular application file structure. It tries to follow [the official Angular styleguide](https://angular.io/docs/ts/latest/guide/style-guide.html).
-
- app
- |__ +admin -> Admin components (followers, users...)
- |__ account -> Account components (password change...)
- |__ core -> Core components/services
- |__ header -> Header components (logo, search...)
- |__ login -> Login component
- |__ menu -> Menu component (on the left)
- |__ shared -> Shared components/services (search component, REST services...)
- |__ signup -> Signup form
- |__ videos -> Video components (list, watch, upload...)
- |__ app.component.{html,scss,ts} -> Main application component
- |__ app-routing.module.ts -> Main Angular routes
- |__ app.module.ts -> Angular root module that imports all submodules we need
-
-## Conventions
-
-Uses [TSLint](https://palantir.github.io/tslint/) for TypeScript linting and [Angular styleguide](https://angular.io/docs/ts/latest/guide/style-guide.html).
-
-## Concepts
-
-In a Angular application, we create components that we put together. Each component is defined by an HTML structure, a TypeScript file and optionally a SASS file.
-If you are not familiar with Angular I recommend you to read the [quickstart guide](https://angular.io/docs/ts/latest/quickstart.html).
-
-## Components tree
-
-
-
-## Newcomers
-
-The main client component is `app.component.ts`. You can begin to look at this file. Then you could navigate in the different submodules to see how components are built.
diff --git a/support/doc/development/client/components-tree.png b/support/doc/development/client/components-tree.png
deleted file mode 100644
index 09582d742..000000000
Binary files a/support/doc/development/client/components-tree.png and /dev/null differ
diff --git a/support/doc/development/client/components-tree.svg b/support/doc/development/client/components-tree.svg
deleted file mode 100644
index fd6951d93..000000000
--- a/support/doc/development/client/components-tree.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
\ No newline at end of file
diff --git a/support/doc/development/client/components-tree.xml b/support/doc/development/client/components-tree.xml
deleted file mode 100644
index 5a37c48bc..000000000
--- a/support/doc/development/client/components-tree.xml
+++ /dev/null
@@ -1 +0,0 @@
-