Chat Federation (and a lot more) WIP:

Note: websocket s2s is not working yet, still WIP.

New Features

* Chat Federation:
  * You can now connect to a remote chat with your local account.
  * This remote connection is done using a custom implementation of [XEP-0468: WebSocket S2S](https://xmpp.org/extensions/xep-0468.html), using some specific discovering method (so that it will work without any DNS configuration).

Minor changes and fixes

* Possibility to debug Prosody in development environments.
* Using process.spawn instead of process.exec to launch Prosody (safer, and more optimal).
* Prosody AppImage: fix path mapping: we only map necessary /etc/ subdir, so that the AppImage can access to /etc/resolv.conf, /etc/hosts, ...
* Prosody AppImage: hidden debug mode to disable lua-unbound, that seems broken in some docker dev environments.
This commit is contained in:
John Livingston
2023-05-19 12:52:52 +02:00
parent 1174f661be
commit 9a2da60b7d
27 changed files with 1592 additions and 106 deletions

View File

@ -64,7 +64,12 @@ AppDir:
# Note: this assume that peertube-plugin-livechat is not in a subdir of one of following mappings.
# This seems a reasonable assumption.
path_mappings:
- /etc/:$APPDIR/etc/
# Dont map entire /etc/ (or dns resolution will not work properly)
- /etc/init.d/:$APPDIR/etc/init.d/
- /etc/ld.so.conf.d/:$APPDIR/etc/ld.so.conf.d/
- /etc/logrotate.d/:$APPDIR/etc/logrotate.d/
- /etc/prosody/:$APPDIR/etc/prosody/
- /etc/ssl/:$APPDIR/etc/ssl/
- /lib/:$APPDIR/lib/
- /lib64/:$APPDIR/lib64/
- /runtime/:$APPDIR/runtime/

View File

@ -58,7 +58,12 @@ AppDir:
# Note: this assume that peertube-plugin-livechat is not in a subdir of one of following mappings.
# This seems a reasonable assumption.
path_mappings:
- /etc/:$APPDIR/etc/
# Dont map entire /etc/ (or dns resolution will not work properly)
- /etc/init.d/:$APPDIR/etc/init.d/
- /etc/ld.so.conf.d/:$APPDIR/etc/ld.so.conf.d/
- /etc/logrotate.d/:$APPDIR/etc/logrotate.d/
- /etc/prosody/:$APPDIR/etc/prosody/
- /etc/ssl/:$APPDIR/etc/ssl/
- /lib/:$APPDIR/lib/
- /lib64/:$APPDIR/lib64/
- /runtime/:$APPDIR/runtime/

View File

@ -3,6 +3,19 @@
-- This file is a launcher, that takes the first argument to choose what to launch.
local what = table.remove(arg, 1);
if what == 'debug' then
-- Special debug mode. Should not be used in production.
print('Activating MobDebug...');
mobdebug_path = table.remove(arg, 1);
mobdebug_host = table.remove(arg, 1);
mobdebug_port = table.remove(arg, 1);
local lua_path_sep = package.config:sub(3,3);
local dir_sep = package.config:sub(1,1);
package.path = package.path..lua_path_sep..mobdebug_path..dir_sep.."?.lua";
require "mobdebug".start(mobdebug_host, mobdebug_port);
what = table.remove(arg, 1);
end
if what == 'prosody' then
dofile('/usr/bin/prosody');
elseif what == 'prosodyctl' then