Embedding Prosody using AppImage:

Thanks to this commit, there is no more need to manually install Prosody
on the server.
The plugin now build and embed an AppImage of Prosody.

In this commit:
* building and using a Prosody AppImage.
* Adding a launcher in the AppImage: the first command argument tells if
  we want to run prosody or prosodyctl
* prosodyCtl functions now uses the AppImage.
* Prosody AppImage: extract once at the startup, then run the squashfs
This commit is contained in:
John Livingston
2022-11-14 16:54:08 +01:00
parent 91ea442ce6
commit 459d92cef9
11 changed files with 231 additions and 15 deletions

View File

@ -27,11 +27,11 @@ function initSettings (options: RegisterServerOptions): void {
(if this button is not opening a new window, please try to refresh the page).`
})
// ********** Chat Mode
// ********** Chat Server
registerSetting({
type: 'html',
private: true,
descriptionHTML: '<h3>Chat mode</h3>'
descriptionHTML: '<h3>Chat Server</h3>'
})
registerSetting({
name: 'chat-help-builtin-prosody',
@ -39,14 +39,22 @@ function initSettings (options: RegisterServerOptions): void {
label: 'Prosody server',
descriptionHTML: `This plugin uses the Prosody XMPP server to handle chat rooms.<br>
The Peertube server will control this Prosody server.<br>
Important Note: you have to install Prosody on your server.
Please read the <a
href="https://github.com/JohnXLivingston/peertube-plugin-livechat/blob/main/documentation/prosody.md"
target="_blank"
>documentation</a>.`,
By default, this plugin comes with a Prosody AppImage.`,
private: true
})
registerSetting({
name: 'use-system-prosody',
type: 'input-checkbox',
label: 'Use system Prosody',
descriptionHTML: `Warning: don't check this settings if you are not sure of what you are doing.<br>
By checking this settings, your Peertube will use the Prosody server that comes with your system,
and not the embeded AppImage.<br>
Only use this if you encounter problems with the embedded Prosody.`,
private: true,
default: false
})
// TODO: fix the settings order. Since there is no more multiple chat-mode, the order is not good.
registerSetting({
name: 'prosody-list-rooms',
label: 'List existing rooms',