XMPP Service Operators - 2026-01-14


  1. Martin

    > I'm doing my part! Seems I have to reload the module again after my recent reboot. πŸ™„

  2. based.pt

    > If you run an XMPP server and are willing and able, please consider registering it with the XMPP network graph at https://xmppnetwork.goodbytes.im/ Guus: i have pubsub and that module and it doesnt seem to accept my server

  3. based.pt

    it says that i dont have PubSub Server Information, i added it to the modules

  4. based.pt

    am i suposed to do some extra configuration besides having pubsub and the module enabled?

  5. Guus

    based.pt I'll have a look after lunch! Does your domain advertise DNS records for the pubsub domain?

  6. based.pt

    it has a srv record

  7. Guus

    Seems that you're running Prosody. Your server is not advertising the server feature that's added by the module.

  8. Guus

    It's possibly not installed correctly?

  9. based.pt

    ye possibly

  10. based.pt

    i added it only to the pubsub component

  11. Guus

    A common issue with the prosody module is that you need to the XMPP domain itself (so, `based.pt`) needs to be made an admin of the pub/sub service. This is documented in https://modules.prosody.im/mod_pubsub_serverinfo.html but many people seem to think this needs to be a user account (e.g. `admin@based.pt`).

  12. based.pt

    oh

  13. based.pt

    i thought it needed to be someone in the domain

  14. based.pt

    ill change that, thank you

  15. based.pt

    ok, i changed it to the domain

  16. based.pt

    still doesnt seem to work

  17. Guus

    Stuffing food in mouth, will look later

  18. based.pt

    ill keep trying, might've missed something

  19. based.pt

    eat well

  20. Kris

    I am having the same issue. I guess it might need a server restart?

  21. based.pt

    why?

  22. based.pt

    like, restart my machine?

  23. Kris

    Xmpp server I mean

  24. Guus

    I don't know if a restart is needed for Prosody to successfully load this module.

  25. Guus

    based.pt still does not advertise support for the feature.

  26. Guus

    Kris, what's your domain?

  27. Kris

    Joinjabber.org

  28. based.pt

    i allways restart prosody when installing a module

  29. Kris

    Ok, I only reloaded it and thought that might be the problem.

  30. Guus

    joinjabber.org does not advertise the server feature either.

  31. Guus

    Is there anything in the server logs maybe?

  32. based.pt

    we must be missing something obvious

  33. based.pt

    nothing in logs

  34. Guus

    Are you using Prosody 13 or later? There's a conflicting module in 12

  35. Kris

    Latest prosody 13 here

  36. based.pt

    13.0.2

  37. Guus

    That should be fine. Errr... I'm not sure how to diagnose this issue, apart from generic "lets look at the logs" and "did you read the instructions carefully" :-/

  38. Guus

    MattJ, are you available for insights?

  39. based.pt

    well lets go over it step by step... i put the module loaded under the pubsub and i have the "admins" as the domain

  40. Guus

    Enable this module in the global or a virtual host.

  41. Guus

    I think that means it should go in the pubsub module?

  42. Guus

    The module requires a pubsub module to be present, but it should be installed in the global one

  43. Kris

    I put it in the global list

  44. Guus

    (and you configure the module to tell which pubsub module to use)

  45. Guus

    I think that the 'admins' configuration _does_ go in the pubsub module. `admins = { "joinjabber.org" }` respectively `admins = { "based.pt" }`

  46. based.pt

    i used to have it like that but it didnt work

  47. based.pt

    i changed it now

  48. Kris

    And put "joinjabber.org" as and admin. But maybe that is the issue as we have the unusual setup of "joinjabber" being the MUC component.

  49. Guus

    You're telling the global domain to _use_ the pubsub module, and you're configurating the pubsub module to accept the global domain as an admin.

  50. Kris

    And put "joinjabber.org" as and admin. But maybe that is the issue as we have the unusual setup of "joinjabber.org" being the MUC component.

  51. based.pt

    my muc is diferent

  52. Kris

    We have pubsub.joinjabber.org working so I assumed the default would be ok. Maybe I need to make that explicit πŸ€”

  53. based.pt

    i never used pubsub so i dont really know

  54. Guus

    Is there a way to bump up the log verbosity and reload the module? You'd expect some kind of message being logged, right?

  55. based.pt

    found it

  56. based.pt

    the module didnt load

  57. Guus

    The obvious question being: why?

  58. Guus

    Domain 'based.pt' does support the serverinfo feature. It does explicitly define a pubsub-node on which info is published. 0 items are published on the node at: xmpp:pubsub.based.pt?;node=serverinfo

  59. Guus

    something changed :)

  60. based.pt

    weird

  61. based.pt

    it loads now but theres still an issue

  62. based.pt

    it says "attempt to index a nil value (value 'metric_registry')"

  63. based.pt

    oh it apears on the graph now

  64. based.pt

    its only connected to igniterealtime.org

  65. Guus

    You are advertising support, so your server allows others to name you. My tests cause a connection from ignite to you.

  66. Guus

    You're not advertising your own connections though.

  67. Guus

    (probably because of that error)

  68. based.pt

    hmm

  69. Guus

    I don't know what 'metric_registry' is - does that show up in your config?

  70. Guus

    But what was the original issue that you addressed? How did you make the module load?

  71. based.pt

    > But what was the original issue that you addressed? How did you make the module load? it was missing another module

  72. based.pt

    > I don't know what 'metric_registry' is - does that show up in your config? no

  73. Guus

    which one?

  74. based.pt

    measure_active_users

  75. Guus

    I was unaware that this is a requirement. How did you figure this out?

  76. based.pt

    logs

  77. based.pt

    i wasnt figuring this out before because the logs dont save, i have to see them in real time

  78. Kris

    > measure_active_users Hmm, probably also not enabled here, need to check.

  79. based.pt

    its only requirement if you advertise active users

  80. Guus

    "Enabling this option will automatically load mod_measure_active_users." says the documentation. Is that a lie?

  81. based.pt

    it might load, but if you dont have it installed it wont

  82. Guus

    ah.

  83. Kris

    Hmm, related question: does it even make sense to do all this if the server is only a MUC host with no active local users?

  84. Guus

    I think you can disable the usercounts, but the module itself lists the server-to-server connections, so that'd still be useful.

  85. Guus

    I do not know how prosody weight those usercounts though

  86. Guus

    I have added a 'common config issues' section to the readme at https://modules.prosody.im/mod_pubsub_serverinfo.html which hopefully helps the next poor soul.

    πŸ‘ 1
  87. Guus

    based.pt: the only reference that I can see in the code to 'metrics' is when the usercount is enabled. Maybe disable that, to see if the error goes away?

  88. Guus

    user counts are currently not rendered by the website anyway.

  89. based.pt

    ok

  90. Kris

    Guus: maybe `pubsub_serverinfo_publish_user_count = true` should default to false then?

  91. MattJ

    It does

  92. Kris

    Hmm, then I still don't understand why it isn't working here πŸ€”

  93. Guus

    Kris: no argumente here. I'm a Java developer. Although lua is slightly more accessible than Erlang, it still is all Chinese to me. :)

  94. Guus

    Kris: no errors in your logs?

  95. Guus

    or maybe less verbose messages, when you restart the module?

  96. Kris

    I am currently not at my PC, but yesterday when I tried setting it up there was nothing in the default level logs.

  97. Guus

    ``` local include_user_count = module:get_option_boolean(module.name.."_publish_user_count", false); ``` Seems to default to 'false'

    πŸ‘ 1
  98. Guus

    Ah, sorry, I thought you were busy reconfiguring things Kris.

  99. Guus

    based.pt: something changed. You're now publishing data, as expected.

  100. based.pt

    ye i disabled that

  101. Martin

    Hmm, that seems to be new: > Jan 14 20:18:50 mdosch.de:pubsub_serverinfo warn Failed to fetch/decode provider list: error<cancel:undefined-condition:> > Jan 14 20:18:50 diebesban.de:pubsub_serverinfo warn Failed to fetch/decode provider list: error<cancel:undefined-condition:>

  102. Guus

    Martin: I think that is your server complaining that it cannot fetch the content of https://data.xmpp.net/providers/v2/providers-Ds.json

  103. Guus

    it is accessible to me right now.

  104. Martin

    OK, then that's probably not the reason why I don't appear on the graph.

  105. Martin

    Ok, a restart helped.

  106. jjj333_p [pain.agency]

    > back when I installed this XMPP server it was considered legacy directtls was legacy? i was under the impression it was the other way around lol

  107. Kris

    yeah, funny how these things change over time

  108. Kris

    > I am currently not at my PC, but yesterday when I tried setting it up there was nothing in the default level logs. I now explicitly configured the pubsub note, explicity disabled the user count and restarted the prosody server, but no difference

  109. Kris

    nothing in the normal logs either

  110. Kris

    and and just for good measure I installed that optional module even though I am not using it

  111. Kris

    I am starting to think something just doesn't work when the root domain is not a vhost but a muc component

  112. moparisthebest

    >> back when I installed this XMPP server it was considered legacy > directtls was legacy? i was under the impression it was the other way around lol in the dark ages of 2002 ietf thought plaintext would be fine forever and didn't want to "run out of ports" so all protocols standardized then shared a port and did their own starttls negotiation fast forward 12 years and 100% of protocols go over TLS on port 443, multiplexed with alpn...

  113. icebound.dev

    mandatory upgrade is standard for STARTLS these days, however there is a minor amount of metadata leak with STARTLS, so technically directls is better...

  114. Link Mauve

    Guus, I was looking at my server logs and I see you aggressively close connections at xmppnetwork.goodbytes.im, one minute after it’s been established, yet the default delay between publishes is three minutes so we reestablish the connection then.

  115. Link Mauve

    This seems very wasteful, whereas keeping a connection idle for two minutes is nothing.

  116. Link Mauve

    I have a flood of those in my logs: Jan 14 23:56:55 s2sout3746580 info Stream encrypted (TLSv1.3 with TLS_AES_256_GCM_SHA384) Jan 14 23:56:55 s2sout3746580 info Outgoing s2s connection pubsub.linkmauve.fr->xmppnetwork.goodbytes.im complete Jan 14 23:57:04 s2sin2f828e0 info Incoming s2s stream conference.igniterealtime.org->linkmauve.fr closed: connection-timeout (Connection has been idle.)

  117. Link Mauve

    I have a flood of those in my logs: Jan 14 23:56:55 s2sout3746580 info Stream encrypted (TLSv1.3 with TLS_AES_256_GCM_SHA384) Jan 14 23:56:55 s2sout3746580 info Outgoing s2s connection pubsub.linkmauve.fr->xmppnetwork.goodbytes.im complete Jan 14 23:57:04 s2sin2f828e0 info Incoming s2s stream conference.igniterealtime.org->linkmauve.fr closed: connection-timeout (Connection has been idle.)

  118. MattJ

    Kris [22:10]: > I am starting to think something just doesn't work when the root domain is not a vhost but a muc component Ah, you probably just need to load it on the component. Prosody has no concept of a "root domain" fwiw. But if you only added the module to the global modules_enabled, it won't be loaded on the component. https://prosody.im/doc/components - "Adding additional modules to an internal component"