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

@ -3,7 +3,7 @@ import { migrateSettings } from './lib/migration/settings'
import { initSettings } from './lib/settings'
import { initCustomFields } from './lib/custom-fields'
import { initRouters } from './lib/routers/index'
import { ensureProsodyRunning, ensureProsodyNotRunning } from './lib/prosody/ctl'
import { prepareProsody, ensureProsodyRunning, ensureProsodyNotRunning } from './lib/prosody/ctl'
import decache from 'decache'
// FIXME: Peertube unregister don't have any parameter.
@ -25,6 +25,7 @@ async function register (options: RegisterServerOptions): Promise<any> {
await initRouters(options)
try {
await prepareProsody(options)
await ensureProsodyRunning(options)
} catch (error) {
options.peertubeHelpers.logger.error('Error when launching Prosody: ' + (error as string))