Software /
code /
prosody-modules
Diff
mod_invites/README.md @ 6003:fe081789f7b5
All community modules: Unify file extention of Markdown files to .md
author | Menel <menel@snikket.de> |
---|---|
date | Tue, 22 Oct 2024 10:26:01 +0200 |
parent | 5482:2f7fff6c8c73 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_invites/README.md Tue Oct 22 10:26:01 2024 +0200 @@ -0,0 +1,95 @@ +--- +labels: +- 'Stage-Merged' +summary: 'Invite management module for Prosody' +... + +Introduction +============ + +::: {.alert .alert-info} +This module has been merged into Prosody as +[mod_invites][doc:modules:mod_invites]. Users of Prosody **0.12** +and later should not install this version. +::: + +This module is part of the suite of modules that implement invite-based +account registration for Prosody. The other modules are: + +- [mod_invites_adhoc][doc:modules:mod_invites_adhoc] +- [mod_invites_register][doc:modules:mod_invites_register] +- [mod_invites_page] +- [mod_invites_register_web] +- [mod_invites_api] +- [mod_register_apps] + +This module manages the creation and consumption of invite codes for the +host(s) it is loaded onto. It currently does not expose any admin/user-facing +functionality (though in the future it will probably gain a way to view/manage +pending invites). + +Instead, other modules can use the API from this module to create invite tokens +which can be used to e.g. register accounts or create automatic subscription +approvals. + +This module should not be confused with the similarly named mod_invite (note the +missing 's'!). That module was a precursor to this one that helped test and prove +the concept of invite-based registration, and is now deprecated. + +# Configuration + +This module exposes just one option - the length of time that a generated invite +should be valid for by default. + +``` {.lua} +-- Configure the number of seconds a token is valid for (default 7 days) +invite_expiry = 86400 * 7 +``` + +# Invites setup + +For a fully-featured invite-based setup, the following provides an example +configuration: + +``` {.lua} +-- Specify the external URL format of the invite links + +VirtualHost "example.com" + invites_page = "https://example.com/invite?{invite.token}" + http_external_url = "https://example.com/" + http_paths = { + invites_page = "/invite"; + invites_register_web = "/register"; + } + modules_enabled = { + "invites"; + "invites_adhoc"; + "invites_page"; + "invites_register"; + "invites_register_web"; + + "http_libjs"; -- See 'external dependencies' below + } +``` + +Restart Prosody and create a new invite using an ad-hoc command in an XMPP client connected +to your admin account, or use the command line: + + prosodyctl mod_invites generate example.com + +## External dependencies + +The default HTML templates for the web-based modules depend on some CSS and Javascript +libraries. They expect these to be available at `https://example.com/share`. An easy +way of doing this if you are on Debian 10 (buster) is to enable mod_http_libjs and install +the following packages: + + apt install libjs-bootstrap4 libjs-jquery + +On other systems you will need to manually put these libraries somewhere on the filesystem +that Prosody can read, and serve them using mod_http_libjs with a custom `libjs_path` +setting. + +# Compatibility + +0.11 and later.