[prosody] XMPP server for Yunohost 12

Just try upgrading from the web interface and there were those errors:

args:
  apps:
  - prosody
  name: prosody-pre-upgrade1
  system: null
ended_at: 2025-04-22 19:05:45.390850
error: Nothing to save
interface: api
operation: backup_create
parent: null
related_to:
- - app
  - prosody
started_at: 2025-04-22 19:05:44.517736
success: false
yunohost_version: 12.0.14

============

2025-04-22 16:05:44,595: INFO - Collecting files to be backed up for prosody…
2025-04-22 16:05:44,689: DEBUG - Executing command '['sh', '-c', '/bin/bash -x "/var/cache/yunohost/app_tmp_work_dirs/app_p68yk1v4/scripts/backup"  7>&1']'
2025-04-22 16:05:44,694: DEBUG - + source ../settings/scripts/_common.sh
2025-04-22 16:05:44,695: DEBUG - + source /usr/share/yunohost/helpers
2025-04-22 16:05:44,696: DEBUG - ++++ dirname -- /usr/share/yunohost/helpers
2025-04-22 16:05:44,698: DEBUG - +++ cd -- /usr/share/yunohost
2025-04-22 16:05:44,698: DEBUG - +++ pwd
2025-04-22 16:05:44,699: DEBUG - ++ SCRIPT_DIR=/usr/share/yunohost
2025-04-22 16:05:44,699: DEBUG - ++ YNH_HELPERS_VERSION=2.1
2025-04-22 16:05:44,704: DEBUG - ++ readonly 'XTRACE_ENABLE=set -o xtrace'
2025-04-22 16:05:44,704: DEBUG - ++ XTRACE_ENABLE='set -o xtrace'
2025-04-22 16:05:44,775: DEBUG - + ynh_print_info 'Declaring files to be backed up...'
2025-04-22 16:05:44,777: INFO - Declaring files to be backed up...
2025-04-22 16:05:44,781: WARNING - /var/cache/yunohost/app_tmp_work_dirs/app_p68yk1v4/scripts/backup: line 13: config_path: unbound variable
2025-04-22 16:05:44,785: DEBUG - ++ ynh_exit_properly
2025-04-22 16:05:44,785: DEBUG - ++ [[ backup =~ ^install$|^upgrade$|^restore$ ]]
2025-04-22 16:05:45,281: DEBUG - ++ exit 1
2025-04-22 16:05:45,382: DEBUG - Could not run script: /var/cache/yunohost/app_tmp_work_dirs/app_p68yk1v4/scripts/backup
2025-04-22 16:05:45,385: ERROR - Could not back up prosody

1 Like

from which version do you try to upgrade ?

Congratulations on making it official! Big achievement. :slight_smile:

I have a few questions that need answers spelling out, I’m afraid:

  • Can we use prosodyctl (if advisable)? If so, how?
  • I think I can guess the answer, but can we add email aliases in the Yunohost Users panel and use them as XMPP addresses? Or do our XMPP addresses have to match the domain of the server on which Prosody is installed?
  • Do we use the global config file (in /etc/prosody/config.cfg.lua) for all modifications?
    If I remember correctly, in Metronome we used to modify modules by editing both the master config file and the module’s own config file, which were in two separate locations. I think. :eyes:
  • The XEP modules listed in ‘What works’ in the app’s description – is it only the last one that is TBC, or does that ‘TBC’ apply to the whole list?

XEP-0163, XEP-0191, XEP-0215, XEP-0237, XEP-0280, XEP-0313, XEP-0363 (see ‘xmpp_compliance’ file), XEP-0421 TBC

same as @jwqos here.
Updating from old testing. my error log is exactly the same except yunohost_version which is in 12.1.5.1

https://paste.yunohost.org/raw/ituputunim

both from CLI and web interface.

1 Like

from this one:

Generally I don’t see any issue in using prosodyctl, excepted for users management of course.

Basically the default configuration provided listen only on 1 domain.

Modifications should be done at only one location, the one you want as far as I know.

The full XEP list support is provided here (with the excellent tool CAAS)

Thank you. So, as for prosodyctl, do we use it as a command on its own, or do we have to pass it through the Yunohost shell with
sudo yunohost app shell prosodyctl?
Either way, this should make it possible to use the Prosody docs more easily.

the one you want as far as I know.

Do you mean the global config file? :sweat_smile:

After uninstalling and installing several times, I finally succeeded in having Prosody and can connect to it. Thank you for your work.

Should I do something about the file /lib/systemd/system/fail2ban.service I modified, adding StartLimitBurst=10 as it was requested in Failed to start fail2ban.service - Fail2Ban Service. · Issue #4 · anubister/prosody_ynh · GitHub ?

I was using your Prosody version before switching to the official YH one.

1 Like

Separately, is there a built-in way to delete uploaded & sent files from the server without using a cron job?
I know there are automated tools for clearing the mam archive or expiring shared files (http_file_share_expires_after*), but the files remain on the server in /var/xmpp-upload/ and stay there for at least a few hours, if not days, before vanishing. Rather than being deleted, it’s just access to the files that gets removed.
I can set up a cron job if this is the only way; just wasn’t sure if Prosody already had a way.

*This is the new replacement for the http_file_upload module, which apparently became deprecated sometime in the last six months (that link redirects to the http_file_share page).

Hello @jwqos and @cptbichez, it seems there is a missing parameter in the old anubister version:
You could either try to fix it manually, by adding in /etc/yunohost/apps/prosody/scripts/_common.sh :

app=prosody
config_path=/etc/prosody

Or remove the app prosody and then install the app prosody.

1 Like

You can use it directly without passing through the Yunohost shell.

This was initially required, it seems it is not required anymore but I think it does not harm to let it like this.

1 Like

like this:

#!/bin/bash

#=================================================
# COMMON VARIABLES AND CUSTOM HELPERS
#=================================================

#=================================================
# PERSONAL HELPERS
#=================================================

#=================================================
# EXPERIMENTAL HELPERS
#=================================================

#=================================================
# FUTURE OFFICIAL HELPERS
#=================================================

app=prosody
config_path=/etc/prosody


I must have done something wrong as it gave the same error as before.
To remove it you mean removing the file “_common.sh”?

To answer my own question in the hope it helps someone else, the Prosody devs say that the software should remove the files itself from your server after a short time, and that newer versions of Prosody (at least 12.4 onwards) are shipped with mod_http_file_share in place of mod_http_upload.
The new Yunohost version of Prosody has mod_http_upload in the VirtualHost config files (separate from the global config file), so I imagine it will be phased out in an update at some stage.

i tried the other way around,
by remove i understood ‘remove the app and install it again’ and it worked. i did not removed the files when removing the app though. i don’t know if it will change anything overtime.

1 Like

I was thinking about doing the same, but I don’t wanna risk losing my mucs.

Thank you so much. I’ve been looking forward to this. I’ll install it tonight.

Now all I have to do is convince my wife she can live without Telegram stickers.

2 Likes

I removed prosody then install it form the webinterface, one server all good. The other one it won’t start, I tried three times already verifying which domain it’s isntall, but in the end it always gets installed on a subdomain I didn’t really choose.:

Apr 27 22:33:24 prosody[140332]: A problem occurred while reading the config file /etc/prosody/prosody.cfg.lua
Apr 27 22:33:24 prosody[140332]: Error: Error loading included /etc/prosody/conf.d/subdomain.xxxx.noho.st.cfg.lua: /etc/prosody/conf.d/.subdomain.xxxx.noho.st.cfg.lua: Permission denied
Apr 27 22:33:24 prosody[140332]: More help on configuring Prosody can be found at https://prosody.im/doc/configure
Apr 27 22:33:24 prosody[140332]: Good luck!
Apr 27 22:33:24 prosody[140332]: **************************
Apr 27 22:33:24 systemd[1]: prosody.service: Main process exited, code=exited, status=1/FAILURE
Apr 27 22:33:24 systemd[1]: prosody.service: Failed with result 'exit-code'.

under /etc/prosody/prosody.cfg.lua there were all my other apps subdomains, I deleted them all and now ti works.

2 Likes

Then you might want have a try of Movim which is implementing Stickers :slight_smile:

(but unfortunately hosting our own Movim instance with Yunohost is not yet working (subliminal message if some people with JS knowledges are reading this!))

1 Like