1
0
Fork 0
forked from mirror/prosody

first version wip

This commit is contained in:
Sara Aimée Smiseth 2021-03-12 20:32:46 +01:00
parent 80216c5fdc
commit 2173f8eff3
6 changed files with 31 additions and 2 deletions

View file

@ -2,7 +2,7 @@
## Unreleased ## Unreleased
* Nothing * Added modules that allow invite-based account registration for Prosody. See also [Great Invitations](https://blog.prosody.im/great-invitations/).
## v1.2.0 ## v1.2.0

View file

@ -23,10 +23,16 @@ LABEL org.opencontainers.image.vendor="Sara Smiseth"
LABEL org.opencontainers.image.version="${VERSION}" LABEL org.opencontainers.image.version="${VERSION}"
LABEL prosody.version="${PROSODY_VERSION}" LABEL prosody.version="${PROSODY_VERSION}"
# TODO just for mod_invites, makes the image from 90MB to 150MB, just do it like this?
#libjs-bootstrap4
#libjs-jquery
RUN apt-get update \ RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -y \
libevent-dev `# this is no build dependency, but needed for luaevent` \ libevent-dev `# this is no build dependency, but needed for luaevent` \
libidn11 \ libidn11 \
libjs-bootstrap4 \
libjs-jquery \
libpq-dev \ libpq-dev \
libsqlite3-0 \ libsqlite3-0 \
lua5.2 \ lua5.2 \
@ -102,9 +108,16 @@ RUN download-prosody-modules.bash \
csi `# client state indication (XEP-0352)` \ csi `# client state indication (XEP-0352)` \
e2e_policy `# require end-2-end encryption` \ e2e_policy `# require end-2-end encryption` \
filter_chatstates `# disable "X is typing" type messages` \ filter_chatstates `# disable "X is typing" type messages` \
http_libjs `# invite-based account registration web dependency` \
http_upload `# file sharing (XEP-0363)` \
invites `# invite-based account registration` \
invites_adhoc \
invites_page \
invites_register \
invites_register_web \
register_apps \
smacks `# stream management (XEP-0198)` \ smacks `# stream management (XEP-0198)` \
throttle_presence `# presence throttling in CSI` \ throttle_presence `# presence throttling in CSI` \
http_upload `# file sharing (XEP-0363)` \
vcard_muc `# XEP-0153: vCard-Based Avatar (MUC)` \ vcard_muc `# XEP-0153: vCard-Based Avatar (MUC)` \
&& rm -rf "/usr/src/prosody-modules" && rm -rf "/usr/src/prosody-modules"

View file

@ -19,7 +19,15 @@ https_ssl = {
key = "certs/" .. domain_http_upload .. "/privkey.pem"; key = "certs/" .. domain_http_upload .. "/privkey.pem";
} }
-- Configure the number of seconds a token is valid for (default 7 days)
-- TODO make configurable
invite_expiry = 86400 * 7
VirtualHost (domain) VirtualHost (domain)
http_paths = {
invites_page = "/invite";
invites_register_web = "/register";
}
-- Set up a http file upload because proxy65 is not working in muc -- Set up a http file upload because proxy65 is not working in muc
Component (domain_http_upload) "http_upload" Component (domain_http_upload) "http_upload"

View file

@ -2,6 +2,7 @@
set -e set -e
export ALLOW_REGISTRATION=${ALLOW_REGISTRATION:-true} export ALLOW_REGISTRATION=${ALLOW_REGISTRATION:-true}
export REGISTRATION_INVITE_ONLY=${REGISTRATION_INVITE_ONLY:-true}
export DOMAIN_HTTP_UPLOAD=${DOMAIN_HTTP_UPLOAD:-"upload.$DOMAIN"} export DOMAIN_HTTP_UPLOAD=${DOMAIN_HTTP_UPLOAD:-"upload.$DOMAIN"}
export DOMAIN_MUC=${DOMAIN_MUC:-"conference.$DOMAIN"} export DOMAIN_MUC=${DOMAIN_MUC:-"conference.$DOMAIN"}
export DOMAIN_PROXY=${DOMAIN_PROXY:-"proxy.$DOMAIN"} export DOMAIN_PROXY=${DOMAIN_PROXY:-"proxy.$DOMAIN"}

View file

@ -189,6 +189,7 @@ Inspect logs: ```docker-compose logs -f```.
| Variable | Description | Type | Default value | | Variable | Description | Type | Default value |
| -------------------------------- | -------------------------------------------------------------------------------------------------------------------- | ------------ | -------------------------- | | -------------------------------- | -------------------------------------------------------------------------------------------------------------------- | ------------ | -------------------------- |
| **ALLOW_REGISTRATION** | Whether to allow registration of new accounts via Jabber clients | *optional* | true | | **ALLOW_REGISTRATION** | Whether to allow registration of new accounts via Jabber clients | *optional* | true |
| **REGISTRATION_INVITE_ONLY** | Require an invitation token for all account registration | *optional* | true |
| **DOMAIN** | domain | **required** | null | | **DOMAIN** | domain | **required** | null |
| **DOMAIN_HTTP_UPLOAD** | Domain which lets clients upload files over HTTP | *optional* | upload.**DOMAIN** | | **DOMAIN_HTTP_UPLOAD** | Domain which lets clients upload files over HTTP | *optional* | upload.**DOMAIN** |
| **DOMAIN_MUC** | Domain for Multi-user chat (MUC) for allowing you to create hosted chatrooms/conferences for XMPP users | *optional* | conference.**DOMAIN** | | **DOMAIN_MUC** | Domain for Multi-user chat (MUC) for allowing you to create hosted chatrooms/conferences for XMPP users | *optional* | conference.**DOMAIN** |

View file

@ -93,3 +93,9 @@ load 'bats/bats-assert/load'
assert_success assert_success
assert_output assert_output
} }
# TODO Add tests for register_apps etc
# Serving 'register_apps' at https://localhost:5281/register_apps
#prosody_1 | localhost:http debug Serving 'register_apps' at https://localhost/register_apps
#prosody_1 | localhost:http debug Serving 'invites_page' at https://localhost/invite
#prosody_1 | localhost:http debug Serving 'invites_register_web' at https://localhost/register