Add ejabberd - #3573
Conversation
XMPP server (YunoHost 13/Trixie). Validated end-to-end: 100% XMPP compliance on two clean installs + working s2s federation.
|
!invite @TabTwo |
|
@TabTwo, you have just been invited to the YunoHost-Apps organization.
Do not forget to update your repository URL in the catalog. You can find more information on packaging in our documentation |
package_linter flags add_header as an error, which alone kept the app off
level 5 ("no linter errors"): add_header only applies to 2xx/3xx responses and
is silently dropped as soon as any nested block adds a header of its own.
headers-more is available on YunoHost (nginx-extras, and YunoHost's own confs
use it), so switch the two CORS headers on the XEP-0156 host-meta endpoints.
Verified on a live box after upgrade: both /.well-known/host-meta and
host-meta.json still return 200 with access-control-allow-origin: *.
The two remaining linter criticals ("app is not in YunoHost's application
catalog" / "not flagged as working") are chicken-and-egg and resolve when
YunoHost/apps#3573 is merged.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Thovi98
left a comment
There was a problem hiding this comment.
Thanks for your proposal and the work behind this.
I'd wait for the Trixie migration to merge this app as it won't work on Bookworm.
After a quick look on your repo I can see that a LLM has been used to help you. It's okay, but there a leftovers that should be cleaned up before merging (/doc and /docs folders; is the myproject.toml file needed (if yes it should be located in the /conf dir),…)
|
Gentle bump — with a status update rather than just a ping. Since opening this I've run Two fixes came out of that run and are already pushed:
The only linter criticals left are The Trixie-only question from the description is still the open one, and I'm happy with whichever No rush — just didn't want it to go stale. |
Thovi98's review on YunoHost/apps#3573 flagged files that have no business in a packaged app. They were project-workspace artifacts that rode along because this repo root doubles as the app: - docs/ (bake-off decision doc, design spec, implementation plan) -- moved to project-chat/docs/ejabberd/, where the rest of the XMPP decision history lives. - myproject.toml -- local project-catalogue metadata, meaningless to YunoHost. Not relocated to conf/ as suggested; conf/ holds config templates, and the file simply does not belong in the app at all. - README.md was a three-line internal stub (with a typo in "YunoHost"). Replaced with a real app README following the format their readme_generator emits -- it will be regenerated by their tooling once the repo lives in YunoHost-Apps. doc/ (ADMIN, DESCRIPTION, PRE_INSTALL) stays: that is standard packaging v2, not a leftover. What remains is exactly a YunoHost app: manifest.toml, config_panel.toml, tests.toml, LICENSE, README.md, conf/, scripts/, hooks/, doc/. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
added_date is filled in automatically on merge (review suggestion), and the repository has been transferred to the YunoHost-Apps organisation.
|
Thanks @Thovi98 — all fair, and thanks @ericgaspar for the invite. Everything is done: Repository transferred to the org: https://github.com/YunoHost-Apps/ejabberd_ynh, with a
Leftovers cleaned up (YunoHost-Apps/ejabberd_ynh@14f7eec) — you were right, this repo root doubles as my project workspace and some of it rode along:
What's left is exactly the app: One thing I kept deliberately: And yes — on the LLM: I use one as a pair-programming partner, and the leftovers were exactly the kind of thing that produces. Every line has been reviewed and the app is validated on real hardware; but you caught workspace clutter I'd stopped seeing, which is the point of review. Appreciated. On merge timing: fully agree, no rush. The app needs YunoHost 13/Trixie (the config uses ejabberd 24.12 features Bookworm's package doesn't have, so it would fail to start there — Bookworm is deliberately unsupported, not accidentally broken). Merging when the Trixie migration lands makes sense to me. In the meantime, Ready for |
|
Belated disclosure, which should have been here from the start. This packaging work and my comments in this thread were produced with AI assistance — I use Claude Code for investigation and for drafting. The package itself, the I'm mentioning it because @Thovi98's review points and @ericgaspar's invitation to the org were extended to me as a person, and you were both entitled to know how the work was produced before that happened, not after. Future contributions from me will carry this note where AI assistance was material. If the YunoHost-Apps org would prefer a different level of disclosure, or none at all, say so and I'll follow that. |
Add
ejabberdto the catalogPackaging of the ejabberd XMPP server as a YunoHost app: https://github.com/TabTwo/ejabberd_ynh
chat)custom_dns_ruleshook that publishes the_xmpp*/_xmpps*SRV records incl. XEP-0368 direct-TLS), and XEP-0485 via ejabberd-contrib.Validation
Tested end-to-end on two fresh YunoHost 13 servers on two separate domains (real DNS + Let's Encrypt):
This app currently requires YunoHost 13 / Debian 13 (Trixie) — the manifest floor is
yunohost >= 13.0. It uses ejabberd 24.12 features (mod_muc_occupantid,mod_stun_disco,mod_http_uploadcustom CORS headers) that only exist in the ejabberd shipped by Trixie; Bookworm's older ejabberd would fail to start, so Bookworm is deliberately unsupported.I'm aware this means the CI, on a Bookworm/stable baseline, will likely mark it
notworkingfor now. I'm flagging it openly rather than hiding it — happy to setstateto whatever you prefer (inprogress?), hold the merge until Trixie becomes the CI baseline, or point CI at the Trixie/unstable target if that's available. Guidance welcome.Also glad to transfer the repo to the
YunoHost-Appsorg per the contributor note.