aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/benchmark.yml2
-rw-r--r--.github/workflows/nightly.yml2
-rw-r--r--.github/workflows/test.yml2
-rw-r--r--packages/peertube-runner/.gitignore1
-rw-r--r--packages/peertube-runner/.npmignore6
-rw-r--r--packages/peertube-runner/package.json5
-rw-r--r--packages/peertube-runner/peertube-runner.ts5
-rwxr-xr-xscripts/build/peertube-runner.sh2
-rw-r--r--server/tests/api/live/live-save-replay.ts2
-rw-r--r--support/doc/tools.md84
10 files changed, 79 insertions, 32 deletions
diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml
index 2566f5ba8..ab1780c74 100644
--- a/.github/workflows/benchmark.yml
+++ b/.github/workflows/benchmark.yml
@@ -35,7 +35,7 @@ jobs:
35 35
36 - uses: './.github/actions/reusable-prepare-peertube-build' 36 - uses: './.github/actions/reusable-prepare-peertube-build'
37 with: 37 with:
38 node-version: '14.x' 38 node-version: '16.x'
39 39
40 - uses: './.github/actions/reusable-prepare-peertube-run' 40 - uses: './.github/actions/reusable-prepare-peertube-run'
41 41
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index 0bb685ff1..bb1f27a6b 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -18,7 +18,7 @@ jobs:
18 18
19 - uses: './.github/actions/reusable-prepare-peertube-build' 19 - uses: './.github/actions/reusable-prepare-peertube-build'
20 with: 20 with:
21 node-version: '14.x' 21 node-version: '16.x'
22 22
23 - name: Build 23 - name: Build
24 run: npm run nightly 24 run: npm run nightly
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 678b0674b..407907e53 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -55,7 +55,7 @@ jobs:
55 55
56 - uses: './.github/actions/reusable-prepare-peertube-build' 56 - uses: './.github/actions/reusable-prepare-peertube-build'
57 with: 57 with:
58 node-version: '14.x' 58 node-version: '16.x'
59 59
60 - uses: './.github/actions/reusable-prepare-peertube-run' 60 - uses: './.github/actions/reusable-prepare-peertube-run'
61 61
diff --git a/packages/peertube-runner/.gitignore b/packages/peertube-runner/.gitignore
index f06235c46..6426ab063 100644
--- a/packages/peertube-runner/.gitignore
+++ b/packages/peertube-runner/.gitignore
@@ -1,2 +1,3 @@
1node_modules 1node_modules
2dist 2dist
3meta.json
diff --git a/packages/peertube-runner/.npmignore b/packages/peertube-runner/.npmignore
new file mode 100644
index 000000000..f38d9947c
--- /dev/null
+++ b/packages/peertube-runner/.npmignore
@@ -0,0 +1,6 @@
1register
2server
3shared
4meta.json
5peertube-runner.ts
6tsconfig.json
diff --git a/packages/peertube-runner/package.json b/packages/peertube-runner/package.json
index dde0e2d62..f04d0b64f 100644
--- a/packages/peertube-runner/package.json
+++ b/packages/peertube-runner/package.json
@@ -1,7 +1,8 @@
1{ 1{
2 "name": "peertube-runner", 2 "name": "@peertube/peertube-runner",
3 "version": "1.0.0", 3 "version": "0.0.2",
4 "main": "dist/peertube-runner.js", 4 "main": "dist/peertube-runner.js",
5 "bin": "dist/peertube-runner.js",
5 "license": "AGPL-3.0", 6 "license": "AGPL-3.0",
6 "dependencies": {}, 7 "dependencies": {},
7 "devDependencies": { 8 "devDependencies": {
diff --git a/packages/peertube-runner/peertube-runner.ts b/packages/peertube-runner/peertube-runner.ts
index f02526ef9..9c3e498d6 100644
--- a/packages/peertube-runner/peertube-runner.ts
+++ b/packages/peertube-runner/peertube-runner.ts
@@ -1,9 +1,14 @@
1#!/usr/bin/env node
2
1import { Command, InvalidArgumentError } from '@commander-js/extra-typings' 3import { Command, InvalidArgumentError } from '@commander-js/extra-typings'
2import { listRegistered, registerRunner, unregisterRunner } from './register' 4import { listRegistered, registerRunner, unregisterRunner } from './register'
3import { RunnerServer } from './server' 5import { RunnerServer } from './server'
4import { ConfigManager, logger } from './shared' 6import { ConfigManager, logger } from './shared'
5 7
8const packageJSON = require('./package.json')
9
6const program = new Command() 10const program = new Command()
11 .version(packageJSON.version)
7 .option( 12 .option(
8 '--id <id>', 13 '--id <id>',
9 'Runner server id, so you can run multiple PeerTube server runners with different configurations on the same machine', 14 'Runner server id, so you can run multiple PeerTube server runners with different configurations on the same machine',
diff --git a/scripts/build/peertube-runner.sh b/scripts/build/peertube-runner.sh
index 9c326747b..7f6ad5ede 100755
--- a/scripts/build/peertube-runner.sh
+++ b/scripts/build/peertube-runner.sh
@@ -10,4 +10,4 @@ rm -rf ./dist
10rm -rf ./dist 10rm -rf ./dist
11mkdir ./dist 11mkdir ./dist
12 12
13./node_modules/.bin/esbuild ./peertube-runner.ts --bundle --platform=node --target=node14 --external:"./lib-cov/fluent-ffmpeg" --external:pg-hstore --outfile=dist/peertube-runner.js 13./node_modules/.bin/esbuild ./peertube-runner.ts --bundle --platform=node --target=node16 --external:"./lib-cov/fluent-ffmpeg" --external:pg-hstore --outfile=dist/peertube-runner.js
diff --git a/server/tests/api/live/live-save-replay.ts b/server/tests/api/live/live-save-replay.ts
index 3a9a84f7e..676d0af69 100644
--- a/server/tests/api/live/live-save-replay.ts
+++ b/server/tests/api/live/live-save-replay.ts
@@ -217,7 +217,7 @@ describe('Save replay setting', function () {
217 }) 217 })
218 218
219 it('Should correctly terminate the stream on blacklist and delete the live', async function () { 219 it('Should correctly terminate the stream on blacklist and delete the live', async function () {
220 this.timeout(40000) 220 this.timeout(60000)
221 221
222 await publishLiveAndBlacklist({ permanent: false, replay: false }) 222 await publishLiveAndBlacklist({ permanent: false, replay: false })
223 223
diff --git a/support/doc/tools.md b/support/doc/tools.md
index ae52f2c7d..c86f0d12b 100644
--- a/support/doc/tools.md
+++ b/support/doc/tools.md
@@ -1,30 +1,8 @@
1# CLI tools guide 1# CLI tools guide
2 2
3<!-- START doctoc generated TOC please keep comment here to allow auto update --> 3[[toc]]
4<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> 4
5**Table of Contents** 5## Remote PeerTube CLI
6
7- [Remote Tools](#remote-tools)
8 - [Dependencies](#dependencies)
9 - [Installation](#installation)
10 - [CLI wrapper](#cli-wrapper)
11 - [peertube-import-videos.js](#peertube-import-videosjs)
12 - [peertube-upload.js](#peertube-uploadjs)
13 - [peertube-plugins.js](#peertube-pluginsjs)
14 - [peertube-redundancy.js](#peertube-redundancyjs)
15- [Server tools](#server-tools)
16 - [parse-log](#parse-log)
17 - [regenerate-thumbnails.js](#regenerate-thumbnailsjs)
18 - [create-import-video-file-job.js](#create-import-video-file-jobjs)
19 - [create-move-video-storage-job.js](#create-move-video-storage-jobjs)
20 - [prune-storage.js](#prune-storagejs)
21 - [update-host.js](#update-hostjs)
22 - [reset-password.js](#reset-passwordjs)
23 - [plugin install/uninstall](#plugin-installuninstall)
24
25<!-- END doctoc generated TOC please keep comment here to allow auto update -->
26
27## Remote Tools
28 6
29You need at least 512MB RAM to run the script. 7You need at least 512MB RAM to run the script.
30Scripts can be launched directly from a PeerTube server, or from a separate server, even a desktop PC. 8Scripts can be launched directly from a PeerTube server, or from a separate server, even a desktop PC.
@@ -371,3 +349,59 @@ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production np
371cd /var/www/peertube-docker 349cd /var/www/peertube-docker
372docker-compose exec -u peertube peertube npm run plugin:uninstall -- --npm-name peertube-plugin-myplugin 350docker-compose exec -u peertube peertube npm run plugin:uninstall -- --npm-name peertube-plugin-myplugin
373``` 351```
352
353## PeerTube runner
354
355PeerTube >= 5.2 supports VOD or Live transcoding by a remote PeerTube runner.
356
357
358### Installation
359
360```bash
361sudo npm install -g @peertube/peertube-runner
362```
363
364### Configuration
365
366The runner uses env paths like `~/.config`, `~/.cache` and `~/.local/share` directories to store runner configuration or temporary files.
367
368Multiple PeerTube runners can run on the same OS by using the `--id` CLI option (each runner uses its own config/tmp directories):
369
370```bash
371peertube-runner [commands] --id instance-1
372peertube-runner [commands] --id instance-2
373peertube-runner [commands] --id instance-3
374```
375
376
377### Run the server
378
379Run the runner in server mode so it can run transcoding jobs of registered PeerTube instances:
380
381```bash
382peertube-runner server
383```
384
385### Register
386
387To register the runner on a new PeerTube instance so the runner can process its transcoding job:
388
389```bash
390peertube-runner register --url http://peertube.example.com --registration-token ptrrt-... --runner-name my-runner-name
391```
392
393The runner will then use a websocket connection with the PeerTube instance to be notified about new available transcoding jobs.
394
395### Unregister
396
397To unregister a PeerTube instance:
398
399```bash
400peertube-runner unregister --url http://peertube.example.com
401```
402
403### List registered instances
404
405```bash
406peertube-runner list-registered
407```