]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - support/doc/tools.md
Add info about admin username in doc
[github/Chocobozzz/PeerTube.git] / support / doc / tools.md
index 175c22cd81cce5bad10169cac4351cf19bfb43ef..c08747cdcc6d1ddd55716c3dc9e8389cf51caf62 100644 (file)
@@ -10,7 +10,6 @@
   - [CLI wrapper](#cli-wrapper)
     - [peertube-import-videos.js](#peertube-import-videosjs)
     - [peertube-upload.js](#peertube-uploadjs)
-    - [peertube-watch.js](#peertube-watchjs)
     - [peertube-plugins.js](#peertube-pluginsjs)
     - [peertube-redundancy.js](#peertube-redundancyjs)
 - [Server tools](#server-tools)
   - [regenerate-thumbnails.js](#regenerate-thumbnailsjs)
   - [create-transcoding-job.js](#create-transcoding-jobjs)
   - [create-import-video-file-job.js](#create-import-video-file-jobjs)
+  - [create-move-video-storage-job.js](#create-move-video-storage-jobjs)
   - [prune-storage.js](#prune-storagejs)
-  - [optimize-old-videos.js](#optimize-old-videosjs)
   - [update-host.js](#update-hostjs)
   - [reset-password.js](#reset-passwordjs)
   - [plugin install/uninstall](#plugin-installuninstall)
-  - [REPL (Read Eval Print Loop)](#repl-read-eval-print-loop)
-    - [.help](#help)
-    - [Lodash example](#lodash-example)
-    - [YoutubeDL example](#youtubedl-example)
-    - [Models examples](#models-examples)
 
 <!-- END doctoc generated TOC please keep comment here to allow auto update -->
 
@@ -76,8 +70,6 @@ You can access it as `peertube` via an alias in your `.bashrc` like `alias peert
     auth [action]         register your accounts on remote instances to use them with other commands
     upload|up             upload a video
     import-videos|import  import a video from a streaming platform
-    watch|w               watch a video in the terminal ✩°。⋆
-    repl                  initiate a REPL to access internals
     plugins|p [action]    manage instance plugins
     redundancy|r [action] manage video redundancies
     help [cmd]            display help for [cmd]
@@ -101,12 +93,6 @@ You can now use that account to upload videos without feeding the same parameter
 $ peertube up <videoFile>
 ```
 
-And now that your video is online, you can watch it from the confort of your terminal (use `peertube watch --help` to see the supported players):
-
-```bash
-$ peertube watch https://peertube.cpy.re/videos/watch/e8a1af4e-414a-4d58-bfe6-2146eed06d10
-```
-
 To list, install, uninstall dynamically plugins/themes of an instance:
 
 ```bash
@@ -170,22 +156,6 @@ $ cd ${CLONE}
 $ node dist/server/tools/peertube-upload.js --help
 ```
 
-#### peertube-watch.js
-
-You can use this script to play videos directly from the CLI.
-
-It provides support for different players:
-
-- ascii (default ; plays in ascii art in your terminal!)
-- mpv
-- mplayer
-- vlc
-- stdout
-- xbmc
-- airplay
-- chromecast
-
-
 #### peertube-plugins.js
 
 Install/update/uninstall or list local or NPM PeerTube plugins:
@@ -239,26 +209,43 @@ These scripts should be run on the server, in `peertube-latest` directory.
 To parse PeerTube last log file:
 
 ```bash
+$ # Basic installation
 $ cd /var/www/peertube/peertube-latest
 $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run parse-log -- --level info
+
+$ # Docker installation
+$ cd /var/www/peertube-docker
+$ docker-compose exec -u peertube peertube npm run parse-log -- --level info
 ```
 
 `--level` is optional and could be `info`/`warn`/`error`
 
-You can also remove SQL or HTTP logs using `--not-tags`:
+You can also remove SQL or HTTP logs using `--not-tags` (PeerTube >= 3.2):
 
-```
+```bash
+$ # Basic installation
 $ cd /var/www/peertube/peertube-latest
 $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run parse-log -- --level debug --not-tags http sql
+
+$ # Docker installation
+$ cd /var/www/peertube-docker
+$ docker-compose exec -u peertube peertube npm run parse-log -- --level debug --not-tags http sql
 ```
 
 ### regenerate-thumbnails.js
 
+**PeerTube >= 3.2**
+
 Regenerating local video thumbnails could be useful because new PeerTube releases may increase thumbnail sizes:
 
-```
+```bash
+$ # Basic installation
 $ cd /var/www/peertube/peertube-latest
 $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run regenerate-thumbnails
+
+$ # Docker installation
+$ cd /var/www/peertube-docker
+$ docker-compose exec -u peertube peertube npm run regenerate-thumbnails
 ```
 
 ### create-transcoding-job.js
@@ -266,54 +253,95 @@ $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production
 You can use this script to force transcoding of an existing video. PeerTube needs to be running.
 
 To generate transcoding jobs depending on the instance configuration:
+
 ```bash
+$ # Basic installation
 $ cd /var/www/peertube/peertube-latest
 $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-transcoding-job -- -v [videoUUID]
+
+$ # Docker installation
+$ cd /var/www/peertube-docker
+$ docker-compose exec -u peertube peertube npm run create-transcoding-job -- -v [videoUUID]
 ```
 
 Or to transcode to a specific resolution:
+
 ```bash
+$ # Basic installation
 $ cd /var/www/peertube/peertube-latest
 $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-transcoding-job -- -v [videoUUID] -r [resolution]
+
+$ # Docker installation
+$ cd /var/www/peertube-docker
+$ docker-compose exec -u peertube peertube npm run create-transcoding-job -- -v [videoUUID] -r [resolution]
 ```
+
 The resolution should be an integer (`1080`, `720`, `480`, etc.)
 
 To generate an HLS playlist for a video:
 
 ```bash
+$ # Basic installation
 $ cd /var/www/peertube/peertube-latest
 $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-transcoding-job -- --generate-hls -v [videoUUID]
+
+$ # Docker installation
+$ cd /var/www/peertube-docker
+$ docker-compose exec -u peertube peertube npm run create-transcoding-job -- --generate-hls -v [videoUUID]
 ```
 
 ### create-import-video-file-job.js
 
-You can use this script to import a video file to replace an already uploaded file or to add a new resolution to a video. PeerTube needs to be running.
+You can use this script to import a video file to replace an already uploaded file or to add a new webtorrent resolution to a video. PeerTube needs to be running.
+You can then create a transcoding job using `npm run create-transcoding-job` if you need to optimize your file or create an HLS version of it.
 
 ```bash
+$ # Basic installation
 $ cd /var/www/peertube/peertube-latest
 $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-import-video-file-job -- -v [videoUUID] -i [videoFile]
+
+$ # Docker installation
+$ cd /var/www/peertube-docker
+$ docker-compose exec -u peertube peertube npm run create-import-video-file-job -- -v [videoUUID] -i [videoFile]
 ```
 
-### prune-storage.js
+### create-move-video-storage-job.js
 
-Some transcoded videos or shutdown at a bad time can leave some unused files on your storage.
-Stop PeerTube and delete these files (a confirmation will be demanded first):
+**PeerTube >= 4.0**
+
+Use this script to move all video files or a specific video file to object storage.
 
 ```bash
+$ # Basic installation
 $ cd /var/www/peertube/peertube-latest
-$ sudo systemctl stop peertube && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run prune-storage
+$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-move-video-storage-job -- --to-object-storage -v [videoUUID]
+
+$ # Docker installation
+$ cd /var/www/peertube-docker
+$ docker-compose exec -u peertube peertube npm run create-move-video-storage-job -- --to-object-storage -v [videoUUID]
+```
+
+The script can also move all video files that are not already in object storage:
+
+```bash
+$ # Basic installation
+$ cd /var/www/peertube/peertube-latest
+$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-move-video-storage-job -- --to-object-storage --all-videos
+
+$ # Docker installation
+$ cd /var/www/peertube-docker
+$ docker-compose exec -u peertube peertube npm run create-move-video-storage-job -- --to-object-storage --all-videos
 ```
 
-### optimize-old-videos.js
 
-Before version v1.0.0-beta.16, Peertube did not specify a bitrate for the
-transcoding of uploaded videos. This means that videos might be encoded into
-very large files that are too large for streaming. This script re-transcodes
-these videos so that they can be watched properly, even on slow connections.
+### prune-storage.js
+
+Some transcoded videos or shutdown at a bad time can leave some unused files on your storage.
+Stop PeerTube and delete these files (a confirmation will be demanded first):
 
 ```bash
 $ cd /var/www/peertube/peertube-latest
-$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run optimize-old-videos
+$ sudo systemctl stop peertube && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run prune-storage
 ```
 
 
@@ -325,8 +353,13 @@ invalid torrent files and invalid URLs in your database. To fix this, you have
 to run the command below (keep in mind your follower instances will NOT update their URLs).
 
 ```bash
+$ # Basic installation
 $ cd /var/www/peertube/peertube-latest
 $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run update-host
+
+$ # Docker installation
+$ cd /var/www/peertube-docker
+$ docker-compose exec -u peertube peertube npm run update-host
 ```
 
 ### reset-password.js
@@ -334,8 +367,13 @@ $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production
 To reset a user password from CLI, run:
 
 ```bash
+$ # Basic installation
 $ cd /var/www/peertube/peertube-latest
 $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run reset-password -- -u target_username
+
+$ # Docker installation
+$ cd /var/www/peertube-docker
+$ docker-compose exec -u peertube peertube npm run reset-password -- -u target_username
 ```
 
 
@@ -349,6 +387,10 @@ To install/update a plugin or a theme from the disk:
 ```bash
 $ cd /var/www/peertube/peertube-latest
 $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run plugin:install -- --plugin-path /local/plugin/path
+
+$ # Docker installation
+$ cd /var/www/peertube-docker
+$ docker-compose exec -u peertube peertube npm run plugin:install -- --plugin-path /local/plugin/path
 ```
 
 From NPM:
@@ -356,6 +398,10 @@ From NPM:
 ```bash
 $ cd /var/www/peertube/peertube-latest
 $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run plugin:install -- --npm-name peertube-plugin-myplugin
+
+$ # Docker installation
+$ cd /var/www/peertube-docker
+$ docker-compose exec -u peertube peertube npm run plugin:install -- --npm-name peertube-plugin-myplugin
 ```
 
 To uninstall a plugin or a theme:
@@ -363,135 +409,8 @@ To uninstall a plugin or a theme:
 ```bash
 $ cd /var/www/peertube/peertube-latest
 $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run plugin:uninstall -- --npm-name peertube-plugin-myplugin
-```
-
-### REPL (Read Eval Print Loop)
-
-If you want to interact with the application libraries and objects even when PeerTube is not running, there is a REPL for that.
-
-usage: `node ./dist/server/tools/peertube-repl.js`
-
-"The default evaluator will, by default, assign the result of the most recently evaluated expression to the special variable `_` (underscore). Explicitly setting `_` to a value will disable this behavior."
-
-- type `.help` to list commands available in the repl, notice it starts with a dot
-- type `.exit` to exit, note that you still have to press CTRL-C to actually exit, or press CTRL-C (3 times) without typing `.exit` to exit
-- type `context` to list all available objects and libraries in the context, note: `Promise` is also available but it's not listed in the context, in case you need promises for something
-- type `env` to see the loaded environment variables
-- type `path` to access path library
-- type `lodash` to access lodash library
-- type `uuidv1` to access uuid/v1 library
-- type `uuidv3` to access uuid/v3 library
-- type `uuidv4` to access uuid/v4 library
-- type `uuidv5` to access uuid/v5 library
-- type `YoutubeDL` to access youtube-dl library
-- type `cli` to access the cli helpers object
-- type `logger` to access the logger; if you log to it, it will write to stdout and to the peertube.log file
-- type `constants` to access the constants loaded by the server
-- type `coreUtils` to access the core-utils helpers object
-- type `ffmpegUtils` to access the ffmpeg-utils helpers object
-- type `peertubeCryptoUtils` to access the peertube-crypto helpers object
-- type `signupUtils` to access the signup helpers object
-- type `utils` to access the utils helpers object
-- type `YoutubeDLUtils` to access the youtube-dl helpers object
-- type `sequelizeTypescript` to access sequelizeTypescript
-- type `modelsUtils` to access the models/utils
-- type `models` to access the shortcut to sequelizeTypescript.models
-- type `transaction` to access the shortcut to sequelizeTypescript.transaction
-- type `query` to access the shortcut to sequelizeTypescript.query
-- type `queryInterface` to access the shortcut to sequelizeTypescript.queryInterface
-
-#### .help
-
-```
-PeerTube [1.0.0] (b10eb595)> .help
-.break    Sometimes you get stuck, this gets you out
-.clear    Break, and also clear the local context
-.editor   Enter editor mode
-.exit     Exit the repl
-.help     Print this help message
-.load     Load JS from a file into the REPL session
-.r        Reset REPL
-.reset    Reset REPL
-.save     Save all evaluated commands in this REPL session to a file
-PeerTube [1.0.0] (b10eb595)>
-```
-
-#### Lodash example
 
-```
-PeerTube [1.0.0] (b10eb595)> lodash.keys(context)
-[ 'global',
-  'console',
-  'DTRACE_NET_SERVER_CONNECTION',
-  'DTRACE_NET_STREAM_END',
-  'DTRACE_HTTP_SERVER_REQUEST',
-  'DTRACE_HTTP_SERVER_RESPONSE',
-  'DTRACE_HTTP_CLIENT_REQUEST',
-  'DTRACE_HTTP_CLIENT_RESPONSE',
-  'process',
-  'Buffer',
-  'clearImmediate',
-  'clearInterval',
-  'clearTimeout',
-  'setImmediate',
-  'setInterval',
-  'setTimeout',
-  'XMLHttpRequest',
-  'compact2string',
-  'module',
-  'require',
-  'path',
-  'repl',
-  'context',
-  'env',
-  'lodash',
-  'uuidv1',
-  'uuidv3',
-  'uuidv4',
-  'uuidv5',
-  'cli',
-  'logger',
-  'constants',
-  'Sequelize',
-  'sequelizeTypescript',
-  'modelsUtils',
-  'models',
-  'transaction',
-  'query',
-  'queryInterface',
-  'YoutubeDL',
-  'coreUtils',
-  'ffmpegUtils',
-  'peertubeCryptoUtils',
-  'signupUtils',
-  'utils',
-  'YoutubeDLUtils' ]
-PeerTube [1.0.0] (b10eb595)>
-```
-
-#### YoutubeDL example
-```
-YoutubeDL.getInfo('https://www.youtube.com/watch?v=I5ZN289jjDo', function(err, data) {console.log(err, data)})
-```
-
-#### Models examples
-```
-PeerTube [1.0.0] (b10eb595)> new models.ActorModel({id: 3}).getVideoChannel().then(function(data){console.log(data.dataValues.name)})
-Promise {
-  _bitField: 0,
-  _fulfillmentHandler0: undefined,
-  _rejectionHandler0: undefined,
-  _promise0: undefined,
-  _receiver0: undefined }
-PeerTube [1.0.0] (b10eb595)> Main root channel
-PeerTube [1.0.0] (b10eb595)> let out; new models.UserModel({id: 1}).getAccount().then(function (data) {out = data.dataValues.id})
-Promise {
-  _bitField: 0,
-  _fulfillmentHandler0: undefined,
-  _rejectionHandler0: undefined,
-  _promise0: undefined,
-  _receiver0: undefined }
-PeerTube [1.0.0] (b10eb595)> out
-2
-PeerTube [1.0.0] (b10eb595)>
+$ # Docker installation
+$ cd /var/www/peertube-docker
+$ docker-compose exec -u peertube peertube npm run plugin:uninstall -- --npm-name peertube-plugin-myplugin
 ```