Commit Graph

116 Commits

Author SHA1 Message Date
John Livingston 8f66ea4032
Fix #180: Letsencrypt import not working
Letsencrypt certificate import procedure was not working on server that had never installed Prosody.
Adding `prosody_user` in the Prosody configuration file to fix this.
Updating the procedure: the `chown` is no more needed in `/etc/letsencrypt/renewal-hooks/deploy/prosody.sh`.
2023-06-08 10:22:43 +02:00
John Livingston 472caf9f5b
Fix: direct s2s connection not always possible
Trying to connect to a remote instance using direct s2s won't work if local instance has not the feature enabled, and if the remote instance does not know the local one.
So using Websocket S2S in such case (that embed a discovery mecanism).
2023-06-01 13:06:59 +02:00
John Livingston f644ad0d88
Fix #124 (dirty hack):
This commit is a dirty hack to fix issue with ARM64 Prosody AppImage.
The fixed appimagebuild tool is not released by the dev team.
So i patch it in my build script. This is not a good solution, but it
works, and let me go forward.
2023-05-31 18:13:35 +02:00
John Livingston b3582e6bfa
Fix missing self signed certificates is some conditions. 2023-05-31 16:52:53 +02:00
John Livingston 2de38661d6
Websocket S2S: ping every 55s to keep alive. 2023-05-31 16:52:52 +02:00
John Livingston 92d92e3350
Fix: i misunderstood the parameter s2s_close_timeout. And removing a duplicate hook. 2023-05-31 16:52:52 +02:00
John Livingston 8fe48a068f
Refactoring the debug mode code, and adding some options. 2023-05-31 16:52:49 +02:00
John Livingston b525c203da
Chat Federation: first working PoC! 2023-05-31 16:52:49 +02:00
John Livingston 5a945a0cb7
Chat Federation WIP:
Found that net.websocket is not appropriate.
This commit is a proof of concept. It has to be cleaned.
Still not working, but close!
2023-05-31 16:52:48 +02:00
John Livingston 9a2da60b7d
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.
2023-05-31 16:52:47 +02:00
John Livingston 3bc05d88df
Chat Federation: using S2S if available.
* if both local and remote instance have external XMPP connections enabled, the user joins the remote room with his local account
* some code refactoring (builtin.ts)

Note: documentation and settings descriptions are to do.

Related to #112
2023-05-31 16:52:47 +02:00
John Livingston d359d3ad99 Fix Prosody room topic:
Due to a bug in mod_muc_http_defaults (https://hg.prosody.im/prosody-modules/rev/6d99ddd99694),
room topics were badly configured. The plugin will fix them at startup, and stops trying to set the subject.
2023-04-14 11:33:41 +02:00
John Livingston cf0e4d8061 Fix settings read. 2023-04-14 11:33:41 +02:00
John Livingston 801798852c Prosody: new settings to provide a custom certificates dir 2023-04-14 11:33:41 +02:00
John Livingston a87a622cba Prosody: renew self signed certificates periodically 2023-04-14 11:33:41 +02:00
John Livingston b4dabfeeb9 New debug mode:
Debug mode is no more triggered by the NODE_ENV value, but by testing
the existance of a file in the plugin data directory.
2023-04-14 11:33:41 +02:00
John Livingston f8b83defb5 Fix Prosody configuration. 2023-04-14 11:33:41 +02:00
John Livingston 772689f9ce Prosody: Generating self-signed certificates for s2s connections. 2023-04-14 11:33:41 +02:00
John Livingston 38023df6be XMPP clients connections WIP + fix mod_muc_http_defaults 2023-04-14 11:33:41 +02:00
John Livingston d544a53b38 XMPP clients connections WIP 2023-04-14 11:33:41 +02:00
John Livingston 4d9d9d39b0 XMPP clients connections WIP:
* new option to allow external xmpp account s2s connections
* settings to setup the port and network interfaces
* documentation WIP

Related to issue #114
2023-04-14 11:33:41 +02:00
John Livingston c81c2eb9bb Diagnostic tool: add the result of `prosodyctl check` in the debug section. 2023-04-14 11:33:41 +02:00
John Livingston ed3f236120
Prosody Appimage: supports only x86_64:
* stop trying to generated an ARM64 AppImage (as it is buggy)
* display a warning in the settings if incompatible CPU detected
* documentation for a workaround

Implements #120.
2022-12-12 19:17:43 +01:00
John Livingston 24696acdbe
#120: adding a certs directory to avoid Prosody error logs. 2022-12-06 17:19:53 +01:00
John Livingston e6da0a879f
Prosody AppImage: aarch64 architecture. 2022-11-22 11:35:38 +01:00
John Livingston 6f47ffe19d
Comment update. 2022-11-18 17:06:53 +01:00
John Livingston 174b996b74
Updating comment. 2022-11-18 12:36:14 +01:00
John Livingston 8f5b2ae565
Prosody AppImage: extract in a dedicated folder 2022-11-15 16:30:24 +01:00
John Livingston 27e8fbf05f
Fix: creating working directories before extracting Prosody AppImage 2022-11-15 16:07:12 +01:00
John Livingston 459d92cef9
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
2022-11-15 15:20:10 +01:00
John Livingston a25cdb44ef
Fix WS timeouts:
Nginx as also a timeout. Seems to be 30s. So we ping every 25s, and set an intermediate timeout for Prosody.
2022-11-01 11:58:02 +01:00
John Livingston 90e86a130a
Fix Websocket timeouts:
* defining a ping_interval in ConverseJS
* defining a longer c2s_close_timeout in Prosody configuration
2022-11-01 11:37:24 +01:00
John Livingston 6a54f4d747
Disco: hide external components. 2022-11-01 11:23:34 +01:00
John Livingston ab89351f42
Prosody server: enabling mod_disco. 2022-11-01 10:35:42 +01:00
John Livingston 9e06e32351
Websocket: only activate on Prosody if the feature is available. 2022-10-13 18:56:00 +02:00
John Livingston e7eca75736
Fix Prosody WS configuration. 2022-10-13 10:47:36 +02:00
John Livingston 6f8c7b8a93
Websocket for builtin Prosody. WIP 2022-10-13 10:47:33 +02:00
John Livingston 507da6e042
Fix Peertube crash when stopping the BOSH proxy. 2022-10-13 10:44:02 +02:00
John Livingston de179e90d3
Promisify proxy close. 2022-10-13 10:44:01 +02:00
John Livingston 1bb202d9d3
Replacing express-http-proxy by http-proxy + code refactoring. 2022-10-13 10:43:59 +02:00
John Livingston 7906ddf625
Prosody mode only:
Removing old modes (ConverseJS and External URI).
Work in progress.
2022-10-10 18:08:20 +02:00
John Livingston 01a052d380
Fix #97 #54: Settings to hide the chat for anonymous users 2022-04-11 18:12:12 +02:00
John Livingston 7db856ce0f
Using types declarations from the official @peertube/peertube-types package. 2022-01-11 01:29:33 +01:00
John Livingston bf35172856
Builtin Prosody: display random avatars for anonymous users. 2022-01-06 05:30:55 +01:00
John Livingston 6afb640df2
Builtin-Prosody: use Peertube's avatar. 2022-01-05 18:53:44 +01:00
John Livingston be592aeacf
Enable Prosody modules pep and vcard_legacy. 2022-01-05 02:01:54 +01:00
John Livingston 586df3983c
Fix typo. 2021-12-13 21:51:00 +01:00
John Livingston df3f87e903
XMPP external components. 2021-12-11 19:09:01 +01:00
John Livingston 2e7cec04d9
Reverting work on DemoBot (it is now an external package). 2021-12-11 17:40:26 +01:00
John Livingston 42988a5d04
Demo Bot: Complete code refactoring. WIP. 2021-12-08 15:29:34 +01:00