Modern XMPP project discussion - 2021-08-31


  1. jonas’

    southerntofu, no, it's not in there.

  2. MattJ

    southerntofu: the hosting stuff isn't open-source (currently?). Not against it in principle being public some day, but it's of negligible value to most people.

  3. raucao

    not to the ones who want to host ;)

  4. raucao

    i actually built a small hosting company almost a decade ago, and our infra config/automation code is now like 25% of all our code. now i'm building a co-op that will also offer hosting, and we're having the infra code be open source from the start. still difficult to know how to set it all up yourself, but at least you can find out how the various systems and services are installed and configured in theory: https://gitea.kosmos.org/kosmos/chef

  5. raucao

    hoping that we can maybe turn some of it into an omnibus installer for people that want to self-host

  6. raucao

    https://github.com/chef/omnibus

  7. MattJ

    raucao: self-hosting Snikket is super easy, and that's a primary goal of the project

  8. raucao

    yeah, that makes sense1

  9. MattJ

    Mass hosting of Snikket instances is not a primary goal of the project

  10. raucao

    yeah, that makes sense!

  11. raucao

    that's good

  12. raucao

    but many people need hosted solutions, because they don't have someone in the family to set up their own servers

  13. raucao

    so i'm sure you'll get quite some interest for that, too

  14. raucao

    i wish one of the gazillion "easy open-source home server" solutiions had gained massive traction and good enough UX, for people to be able to just buy one, plug it in, and go. alas, registering a domain is already a massive hurdle. or even chosing a domain name

  15. MattJ

    Yep. People who aren't able to self-host are the least likely to want to go browsing source code 🙂

  16. raucao

    yes, but people who want to host for others, and browse source code for how others do it, usually don't have much to browse

  17. raucao

    (not arguing that it's necessary for snikket code. just sharing information)

  18. raucao

    (and hoping that others also share more details of their hosting configurations)

  19. MattJ

    There is a lot of responsibility in hosting a service for others. The software stack is just one small part of it, it's not something you would ever just be able to set up and move on (I'm sure you know this already)

  20. raucao

    yes, of course

  21. raucao

    as i said, i'm running a hosting company for nearly a decade now

  22. MattJ

    If someone is really interested in that, they can certainly talk to me, it doesn't mean the code has to necessarily be public

  23. MattJ

    When I first started coding, I amassed so many projects on my hard drive that never saw daylight. I started participating in open-source and it was amazing, and I realised I could just publish stuff I wrote online and it would gain a whole new life.

  24. MattJ

    Now, years later, I've realised it's not that simple. Lots of stuff I published was stuff I had a personal use for, it was adapted to my needs and not the needs of others.

  25. MattJ

    The stuff I published with the expectation of having no strings attached ended up a growing burden, as people expected me to maintain it, package it, merge patches they sent me

  26. MattJ

    I would like to enter into such a "contract" with society when I feel there is value in it, and I feel comfortable taking on that burden

  27. Zash

    .. provide top-notch five-nines hosting for it

  28. Zash

    But > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED [...]

  29. raucao

    i don't think anything published needs to fulfill the needs of others directly, or be maintained for them. if the README doesn't invite anyone to use it, then i consider it merely shared knowledge, not a shared product

  30. Zash

    That's not how other people seem to think tho

  31. MattJ

    If only everyone else shared that view 🙂

  32. raucao

    i like the MIT license for being unequivocal about that, too :)

  33. MattJ

    I've had some horrible emails over the years

  34. MattJ

    I almost took all my personal projects offline a couple of times

  35. raucao

    ouch

  36. raucao

    sad to hear

  37. raucao

    some people exhibit horrible behavior

  38. Zash

    > some people exhibit horrible behavior humanity in a nutshell. 😀

  39. Zash

    Sometimes you need a crisis and see people helping each other to not completely lose faith in humanity.

  40. pep.

    “humanity in a nutshell” < Let's not forget the opposite is also true, it's not all bad :)

  41. southerntofu

    raucao, agree with your analysis, but you should probably be aware of yunohost/freedombox who are gaining many non-technical users in the past years (including non-profits/coops) especially yunohost

  42. raucao

    yes, i am aware, of course

  43. raucao

    good to hear they're gaining users. freedombox seemed pretty much dead for the longest time

  44. raucao

    yunohost is more for VMs than home servers, no? or is it also easy to install on a raspi at home?

  45. southerntofu

    raucao, i don't follow development closely, but last i checked that's because they had setup a crazy-precise testing system to make sure stuff that's packaged is never broken, so it took a lot of time to package anything... while yunohost went the other way :)

  46. Zash

    Actual modern XMPP question: How should offline messages work these days? How should it interact with MAM?

  47. southerntofu

    oh no yunohost is perfect at home! many local ISPs/hackerspaces in france (and belgium) distribute yunohost with ODroid boards

  48. raucao

    ooh, nice

  49. southerntofu

    the early days was a bit rough, especially with SD cards having such limited life, but now there's borg apps on yunohost to automate backups to/from your friends

  50. southerntofu

    Zash, is tere other mechanisms than MAM for offline messages?

  51. Zash

    There's offline storage, which predates MAM

  52. Zash

    Only really captures messages received while the user is completely offline.

  53. southerntofu

    raucao, feel free to join xmpp:co-op@mellium.chat?join to discuss cooperative concerns

  54. pep.

    (hah! I'm not the only one using the apex to host MUCs)

  55. pep.

    (I mean, and dino)

  56. southerntofu

    of course! it's a feature, for collective spaces :)

  57. raucao

    same here, also using .chat for MUC

  58. MattJ

    Zash: I think as a first step, offline messages should not be sent to clients that request MAM

  59. MattJ

    Later, clients that do bind 2.0

  60. pep.

    You can't know when a client will request MAM though right?

  61. pep.

    Poezio doesn't request MAM directly after binding for example

  62. pep.

    We request when necessary (open tabs)

  63. pep.

    Aren't offline messages sent directly after binding?

  64. Zash

    Race condition it is then

  65. Zash

    No, after initial presence

  66. pep.

    Ok, vaguely the same

  67. pep.

    (concerning poezio)

  68. Zash

    Could base it on disco#info caps...

  69. MattJ

    Clients likely don't advertise MAM, right?

  70. MattJ

    (Yet)

  71. pep.

    Doesn't mean they'll do MAM for whatever you expect

  72. pep.

    Maybe have them advertize "no-offline-message"

  73. MattJ

    Yeah, something like that would work

  74. MattJ

    But bind2 is only a tiny bit extra effort 🙂

  75. pep.

    Is that the thing that'll allow me to finally request a password change

  76. Zash

    pre-initial presence MAM would likely be good enough until then

  77. Zash

    pep., no that's ... SASL2? or is it IBR2?

  78. Zash

    AOTA2 (all of the above)

  79. pep.

    But isn't bind2 a requirement or something for sasl2?

  80. pep.

    I should get back into all of this someday

  81. MattJ

    It's not afaik

  82. Zash

    I don't have AOTA2 swapped in atm

  83. Zash

    They could be anywhere from vague ideas to almost implementable.

  84. pep.

    hmm

  85. Zash

    But obviously the Really Modern thing would be to stuff it into the TLS ClientHello message!!1/s

  86. jonas’

    but client hello isn't encrypted!!k

  87. Zash

    yes it is!

  88. Zash

    or is it?

  89. jonas’

    I don't think it is

  90. Zash

    totally secure!

  91. Zash

    https://datatracker.ietf.org/doc/draft-ietf-tls-esni/ but it will be?

  92. jonas’

    that's only encrypting SNI, not the entire client hello, is it?

  93. Zash

    > TLS Encrypted Client Hello - draft-ietf-tls-esni-13

  94. Zash

    Naming things...

  95. Zash

    It seems to have evolved from ESNI tho

  96. pep.

    Encrypting an encryption handshake?

  97. pep.

    Starting with "Thou shalt do DANE"?

  98. Zash

    No

  99. Zash

    DNS over Cloudflare

  100. pep.

    Ah that

  101. Zash

    I'm assuming it'll use the new everything-you-need record type, SVCB

  102. jonas’

    /mute sadness

  103. Zash

    ... or the variant called HTTPS