diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a1f840be..b51b1de2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# Version 24.01 +## Version 24.01 Core: - Support SASL2 and Bind2 @@ -59,7 +59,7 @@ Rebar3/Elixir/Mix: - Mix: New option `vars_config_path` to set path to `vars.config` ([#4128](https://github.com/processone/ejabberd/issues/4128)) - Mix: Fix ejabberdctl iexlive problem locating iex in an OTP release -# Version 23.10 +## Version 23.10 Compilation: - Erlang/OTP: Raise the requirement to Erlang/OTP 20.0 as a minimum @@ -167,7 +167,7 @@ SQL: - `mod_privacy_sql`: Optimize `set_list` - `mod_privacy_sql`: Use more efficient way to calculate changes in `set_privacy_list` -# Version 23.04 +## Version 23.04 General: - New `s2s_out_bounce_packet` hook @@ -251,7 +251,7 @@ Installers: - make-binaries: Fix building with erlang/otp v25.x - make-packages: Fix for installers workflow, which didn't find lynx -# Version 23.01 +## Version 23.01 General: - Add `misc:uri_parse/2` to allow declaring default ports for protocols @@ -305,7 +305,7 @@ VSCode: - Add Erlang LS default configuration - Add Elvis default configuration -# Version 22.10 +## Version 22.10 Core: - Add `log_burst_limit_*` options ([#3865](https://github.com/processone/ejabberd/issues/3865)) @@ -415,7 +415,7 @@ Workflows Actions: - CI: Remove syntax_tools from applications, as fast_xml fails Dialyzer - Runtime: Add Xref options to be as strict as CI -# Version 22.05 +## Version 22.05 Core - C2S: Don't expect that socket will be available in `c2s_terminated` hook @@ -520,7 +520,7 @@ Workflows - Installers: New workflow to build binary packages - Runtime: New workflow to test compilation, rel, starting and ejabberdctl -# Version 21.12 +## Version 21.12 Commands - `create_room_with_opts`: Fixed when using SQL storage @@ -567,7 +567,7 @@ Other - Update export/import of scram password to XEP-0227 1.1 - Update Jose to 1.11.1 (the last in hex.pm correctly versioned) -# Version 21.07 +## Version 21.07 Compilation - Add rebar3 3.15.2 binary @@ -613,7 +613,7 @@ SQL: - mod_mqtt: Add mqtt_pub table definition for MSSQL - mod_shared_roster: Add missing indexes to `sr_group` tables in all SQL databases -# Version 21.04 +## Version 21.04 API Commands: - `add_rosteritem/...`: Add argument guards to roster commands @@ -651,7 +651,7 @@ Modules: - `mod_pubsub`: Fix `gen_pubsub_node:get_state` return value - `mod_vcard`: Obtain and provide photo type in vCard LDAP -# Version 21.01 +## Version 21.01 Miscellaneous changes: - `log_rotate_size` option: Fix handling of ‘infinity’ value @@ -686,7 +686,7 @@ Translations: - Moved gettext PO files to a new `ejabberd-po` repository - Improved several translations: Catalan, Chinese, German, Greek, Indonesian, Norwegian, Portuguese (Brazil), Spanish. -# Version 20.12 +## Version 20.12 - Add support for `SCRAM-SHA-{256,512}-{PLUS}` authentication - Don't use same value in cache for user don't exist and wrong password @@ -721,7 +721,7 @@ Translations: - WebAdmin: Mark dangerous buttons with CSS - WebSocket: Make websocket send put back pressure on c2s process -# Version 20.07 +## Version 20.07 * Changes in this version - Add support for using unix sockets in listeners. @@ -748,7 +748,7 @@ Translations: they were passed to handler modules - Make stun module work better with ipv6 addresses -# Version 20.03 +## Version 20.03 * Changes in this version - Add support of ssl connection when connection to mysql @@ -768,7 +768,7 @@ Translations: - Fix reporting errors in `send_stanza` command when xml passed to it couldn't be passed correctly -# Version 20.02 +## Version 20.02 * Changes in this version - Fix problems when trying to use string format with unicode @@ -786,7 +786,7 @@ Translations: override built-in values - Fix return value of reload_config and dump_config commands -# Version 20.01 +## Version 20.01 * New features - Implement OAUTH authentication in mqtt @@ -819,7 +819,7 @@ Translations: failed - Fix crash in stream management when timeout was not set -# Version 19.09 +## Version 19.09 * Admin - The minimum required Erlang/OTP version is now 19.3 @@ -872,7 +872,7 @@ Translations: - Correctly handle unicode in log messages - Fix unicode processing in ejabberd.yml -# Version 19.08 +## Version 19.08 * Administration - Improve ejabberd halting procedure @@ -917,7 +917,7 @@ Translations: - Remove deprecated pubsub plugins - Expose access_model and publish_model in pubsub#metadata -# Version 19.05 +## Version 19.05 * Admin - The minimum required Erlang/OTP version is now 19.1 @@ -994,7 +994,7 @@ Translations: - mod_mqtt: Support other socket modules - mod_push: Check for payload in encrypted messages -# Version 19.02 +## Version 19.02 * Admin - Fix in configure.ac the Erlang/OTP version: from 17.5 to 19.0 @@ -1048,7 +1048,7 @@ Translations: - Translations: fixed "make translations" - WebAdmin: Fix support to restart module with new options -# Version 18.12 +## Version 18.12 * MAM data store compression * Proxy protocol support diff --git a/CONTAINER.md b/CONTAINER.md index 8c0294778..1ea18519c 100644 --- a/CONTAINER.md +++ b/CONTAINER.md @@ -33,9 +33,9 @@ If you are using a Windows operating system, check the tutorials mentioned in Start ejabberd -============== +-------------- -## With default configuration +### With default configuration Start ejabberd in a new container: @@ -59,7 +59,7 @@ docker restart ejabberd ``` -## Start with Erlang console attached +### Start with Erlang console attached Start ejabberd with an Erlang console attached using the `live` command: @@ -70,7 +70,7 @@ docker run --name ejabberd -it -p 5222:5222 ghcr.io/processone/ejabberd live That uses the default configuration file and XMPP domain "localhost". -## Start with your configuration and database +### Start with your configuration and database Pass a configuration file as a volume and share the local directory to store database: @@ -92,9 +92,9 @@ and the volumes you mount must grant proper rights to that account. Next steps -========== +---------- -## Register the administrator account +### Register the administrator account The default ejabberd configuration does not grant admin privileges to any account, @@ -111,7 +111,7 @@ Then edit conf/ejabberd.yml and add the ACL as explained in [ejabberd Docs: Administration Account](https://docs.ejabberd.im/admin/installation/#administration-account) -## Check ejabberd log files +### Check ejabberd log files Check the content of the log files inside the container, even if you do not put it on a shared persistent drive: @@ -121,7 +121,7 @@ docker exec -it ejabberd tail -f logs/ejabberd.log ``` -## Inspect the container files +### Inspect the container files The container uses Alpine Linux. Start a shell inside the container: @@ -130,7 +130,7 @@ docker exec -it ejabberd sh ``` -## Open ejabberd debug console +### Open ejabberd debug console Open an interactive debug Erlang console attached to a running ejabberd in a running container: @@ -139,7 +139,7 @@ docker exec -it ejabberd ejabberdctl debug ``` -## CAPTCHA +### CAPTCHA ejabberd includes two example CAPTCHA scripts. If you want to use any of them, first install some additional required libraries: @@ -177,9 +177,9 @@ documentation section. Advanced Container Configuration -================================ +-------------------------------- -## Ports +### Ports This container image exposes the ports: @@ -192,7 +192,7 @@ This container image exposes the ports: - `5210`: Erlang connectivity when `ERL_DIST_PORT` is set, alternative to EPMD -## Volumes +### Volumes ejabberd produces two types of data: log files and database spool files (Mnesia). This is the kind of data you probably want to store on a persistent or local drive (at least the database). @@ -213,7 +213,7 @@ It's possible to install additional ejabberd modules using volumes, explains how to install an additional module using docker-compose. -## Commands on start +### Commands on start The ejabberdctl script reads the `CTL_ON_CREATE` environment variable the first time the container is started, @@ -234,7 +234,7 @@ Example usage (or check the [full example](#customized-example)): ``` -## Clustering +### Clustering When setting several containers to form a [cluster of ejabberd nodes](https://docs.ejabberd.im/admin/guide/clustering/), @@ -273,7 +273,7 @@ Example using environment variables (see full example [docker-compose.yml](https Build a Container Image -======================= +----------------------- This container image includes ejabberd as a standalone OTP release built using Elixir. That OTP release is configured with: @@ -283,7 +283,7 @@ That OTP release is configured with: - `config/runtime.exs`: Customize ejabberd paths - `ejabberd.yml.template`: ejabberd default config file -## Direct build +### Direct build Build ejabberd Community Server container image from ejabberd master git repository: @@ -294,7 +294,7 @@ docker buildx build \ . ``` -## Podman build +### Podman build It's also possible to use podman instead of docker, just notice: - `EXPOSE 4369-4399` port range is not supported, remove that in Dockerfile @@ -315,7 +315,7 @@ podman exec -it eja1 sh podman stop eja1 ``` -## Package build for `arm64` +### Package build for `arm64` By default, `.github/container/Dockerfile` builds this container by directly compiling ejabberd, it is a fast and direct method. @@ -341,9 +341,9 @@ docker buildx build \ Composer Examples -================= +----------------- -## Minimal Example +### Minimal Example This is the barely minimal file to get a usable ejabberd. Store it as `docker-compose.yml`: @@ -365,7 +365,7 @@ Create and start the container with the command: docker-compose up ``` -## Customized Example +### Customized Example This example shows the usage of several customizations: it uses a local configuration file, @@ -408,7 +408,7 @@ services: - ./database:/opt/ejabberd/database ``` -## Clustering Example +### Clustering Example In this example, the main container is created first. Once it is fully started and healthy, a second container is created,