From b82a4941d819ebbf267ffba59d935cfd8e6daaba Mon Sep 17 00:00:00 2001 From: Christof Schulze <christof.schulze@gmx.net> Date: Wed, 12 Mar 2025 22:39:47 +0100 Subject: [PATCH 1/4] prosody.cfg: migrated to 0.12 disabled modules that are now in core: * csi_battery_saver * graceful_shutdown enabled modules: * csi & csi_simple as replacement for csi_battery_saver * limits (nice protection) * bookmarks (because of a more unified user experience) added but disabled * cloud_notify (will be in 0.13 - it is a community module now. Use it then) * http - this allows http uploads and image sharing but was disabled before so not enabling now * vcard_muc - this allows to set vcards for muc ie change profile picture. It is however a community module and thus disabled by default. --- files/prosody/jabber.n39.eu.cfg.lua | 4 ++++ templates/prosody/prosody.cfg.lua.j2 | 36 +++++++++++++++++++++------- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/files/prosody/jabber.n39.eu.cfg.lua b/files/prosody/jabber.n39.eu.cfg.lua index 5168396..c4e71e1 100644 --- a/files/prosody/jabber.n39.eu.cfg.lua +++ b/files/prosody/jabber.n39.eu.cfg.lua @@ -11,6 +11,10 @@ VirtualHost "jabber.n39.eu" --- Store MUC messages in an archive and allow users to access it --modules_enabled = { "muc_mam" } Component "conference.jabber.n39.eu" "muc" + modules_enabled = { + "muc_mam"; +-- "vcard_muc"; + } -- alex: service discovery disco_items = { diff --git a/templates/prosody/prosody.cfg.lua.j2 b/templates/prosody/prosody.cfg.lua.j2 index 1545068..12f049b 100644 --- a/templates/prosody/prosody.cfg.lua.j2 +++ b/templates/prosody/prosody.cfg.lua.j2 @@ -45,8 +45,11 @@ modules_enabled = { "tls"; -- Add support for secure TLS on c2s/s2s connections "dialback"; -- s2s dialback support "disco"; -- Service discovery + "limits"; -- bandwidth limits for xmpp connections -- Not essential, but recommended + "bookmarks"; -- synchronize the list of open rooms between +clients "carbons"; -- Keep multiple clients in sync "pep"; -- Enables users to publish their avatar, mood, activity, playing music and more "private"; -- Private XML storage (for room bookmarks, etc.) @@ -60,17 +63,22 @@ modules_enabled = { "time"; -- Let others know the time here on this server "ping"; -- Replies to XMPP pings with pongs "register"; -- Allow users to register on this server using a client and change passwords - --"mam"; -- Store messages in an archive and allow users to access it - --"csi_simple"; -- Simple Mobile optimizations + "account_activity"; -- record time when account was last used + -- "cloud_notify"; -- push notifications for mobile devices + + -- "mam"; -- Store messages in an archive and allow users to access it + "csi_simple"; -- Simple Mobile optimizations -- buffer +unimportant messages to inactive devices -- Admin interfaces "admin_adhoc"; -- Allows administration via an XMPP client that supports ad-hoc commands - "admin_telnet"; -- Opens telnet console interface on localhost port 5582 + "admin_shell"; -- Opens telnet console interface on localhost port 5582 -- HTTP modules --"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP" --"websocket"; -- XMPP over WebSockets --"http_files"; -- Serve static files from a directory over HTTP + -- "http"; -- allow http uploads -- Other specific functionality --"limits"; -- Enable bandwidth limiting for XMPP connections @@ -82,12 +90,7 @@ modules_enabled = { --"motd"; -- Send a message to users when they log in --"legacyauth"; -- Legacy authentication. Only used by some old clients and bots. --"proxy65"; -- Enables a file transfer proxy service which clients behind NAT can use - - -- alex "smacks"; -- XEP-0198: Stream Management - "csi"; -- XEP-0352: Client State Indication - "csi_battery_saver"; - "graceful_shutdown"; } -- These modules are auto-loaded, but should you want @@ -99,6 +102,16 @@ modules_disabled = { -- "posix"; -- POSIX functionality, sends server to background, enables syslog, etc. } + +limits = { + c2s = { + rate = "200kb/s"; + }; + s2sin = { + rate = "1000kb/s"; + }; +} + -- Disable account creation by default, for security -- For more information see https://prosody.im/doc/creating_accounts allow_registration = false @@ -144,6 +157,13 @@ authentication = "internal_hashed" storage = "sql" -- Default is "internal" + +-- Component "xmpp.n39.eu" "http_file_share" + +-- http_file_share_size_limit = 160*1024*1024; +-- http_file_share_daily_quota = 500*1024*1024; +-- http_file_share_expires_after = 7*24*60*60; + -- For the "sql" backend, you can uncomment *one* of the below to configure: sql = { driver = "SQLite3", database = "prosody.sqlite" } -- Default. 'database' is the filename. --sql = { driver = "MySQL", database = "prosody", username = "prosody", password = "secret", host = "localhost" } From 14327233b9b085ea2ffe042238e07692cc24eed4 Mon Sep 17 00:00:00 2001 From: Christof Schulze <christof.schulze@gmx.net> Date: Mon, 24 Mar 2025 00:08:14 +0100 Subject: [PATCH 2/4] prosody: daemonize removed this is handled via cli option and therefore by docker --- templates/prosody/prosody.cfg.lua.j2 | 3 --- 1 file changed, 3 deletions(-) diff --git a/templates/prosody/prosody.cfg.lua.j2 b/templates/prosody/prosody.cfg.lua.j2 index 12f049b..04c794f 100644 --- a/templates/prosody/prosody.cfg.lua.j2 +++ b/templates/prosody/prosody.cfg.lua.j2 @@ -1,6 +1,3 @@ --- When running in Docker do not daemonize (for nice shutdown, logging etc.) -daemonize = false; - -- Prosody XMPP Server Configuration -- -- Information on configuring Prosody can be found on our From 21dd9ed725721ad8fae48e22c2970f1931cad70f Mon Sep 17 00:00:00 2001 From: Christof Schulze <christof.schulze@gmx.net> Date: Mon, 24 Mar 2025 00:08:53 +0100 Subject: [PATCH 3/4] prosody: use_libevent removed there is auto-detection in place since 0.12 --- templates/prosody/prosody.cfg.lua.j2 | 4 ---- 1 file changed, 4 deletions(-) diff --git a/templates/prosody/prosody.cfg.lua.j2 b/templates/prosody/prosody.cfg.lua.j2 index 04c794f..2686bfe 100644 --- a/templates/prosody/prosody.cfg.lua.j2 +++ b/templates/prosody/prosody.cfg.lua.j2 @@ -22,10 +22,6 @@ -- Example: admins = { "user1@example.com", "user2@example.net" } admins = { "alex@{{ prosody_domain_name }}", "tux@{{ prosody_domain_name }}" } --- Enable use of libevent for better performance under high load --- For more information see: https://prosody.im/doc/libevent -use_libevent = true - -- Prosody will always look in its source directory for modules, but -- this option allows you to specify additional locations where Prosody -- will look for modules first. For community modules, see https://modules.prosody.im/ From da93c0fdababbe8dc784b17d02209b85d6c77a2b Mon Sep 17 00:00:00 2001 From: Christof Schulze <christof.schulze@gmx.net> Date: Mon, 24 Mar 2025 00:10:13 +0100 Subject: [PATCH 4/4] prosody: plugin_paths cleared we do not need community moules, therefore no path needs to be specified --- templates/prosody/prosody.cfg.lua.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/prosody/prosody.cfg.lua.j2 b/templates/prosody/prosody.cfg.lua.j2 index 2686bfe..5b7fd8e 100644 --- a/templates/prosody/prosody.cfg.lua.j2 +++ b/templates/prosody/prosody.cfg.lua.j2 @@ -25,7 +25,7 @@ admins = { "alex@{{ prosody_domain_name }}", "tux@{{ prosody_domain_name }}" } -- Prosody will always look in its source directory for modules, but -- this option allows you to specify additional locations where Prosody -- will look for modules first. For community modules, see https://modules.prosody.im/ -plugin_paths = { "/usr/local/lib/prosody-modules" } +plugin_paths = { } -- This is the list of modules Prosody will load on startup. -- It looks for mod_modulename.lua in the plugins folder, so make sure that exists too.