1
0
Fork 0
mirror of https://github.com/processone/ejabberd synced 2025-10-03 09:49:18 +02:00
Commit graph

9851 commits

Author SHA1 Message Date
Badlop
1ea0dde417 ejabberd_admin: Allow using mnesia_list_tables and mnesia_table_change_storage 2025-03-19 10:38:10 +01:00
Badlop
53dea7b6d7 Fix email addresses in modules headers 2025-03-18 19:58:47 +01:00
Badlop
c87ba45a86 Result of running "make format" 2025-03-18 19:57:38 +01:00
badlop
6ea25e2272
Merge pull request #4350 from badlop/define_keyword
New define_keyword option
2025-03-18 15:48:58 +01:00
Badlop
888c335c2e Add tests for config features define_macro and define_keyword 2025-03-18 13:40:21 +01:00
Badlop
4dcf97c4c1 Now, when running tests, external may contain duplicate module 2025-03-18 13:40:21 +01:00
Badlop
352ee3a318 Docs: Document define_keyword and simplify define_macro 2025-03-18 13:40:21 +01:00
Badlop
c8abff33c1 Remove some options keyword expansion, as they are now predefined 2025-03-18 13:40:21 +01:00
Badlop
998690f58c Add support to replace keywords in modules options 2025-03-18 13:40:21 +01:00
Badlop
6e68c2ec02 Add support to replace keywords in listener options 2025-03-18 13:40:21 +01:00
Badlop
896b7c7559 Add support to replace keywords in toplevel options 2025-03-18 13:40:21 +01:00
Badlop
69b190775c Implement internal functions get_predefined and replace keywords 2025-03-18 13:40:21 +01:00
Badlop
b769de0690 New option define_keyword 2025-03-18 13:40:21 +01:00
Badlop
19482529ee Inform that define_macro cannot be used inside host_config 2025-03-18 13:40:21 +01:00
Badlop
ad8e325139 Disable commands tests for old Erlang/OTP versions
Since recently, this test fails with Erlang/OTP 22 and lower:
  =result        failed:
    {test_case_failed,
     "Received input:
      [{error,{compilation_failed,
         \"/home/runner/.ejabberd-modules/sources/ejabberd-contrib/mod_example/src/mod_example.erl\"}}]
      don't match expected patterns:ok"},
2025-03-18 12:45:25 +01:00
Badlop
b901a69f5c mix.exs: Keep debug info when building dev release (thanks to Stefan Strigler) 2025-03-17 15:09:12 +01:00
Badlop
62a165e4cf ejabberd_web_admin: Support commands with tuple arguments; fix list indent 2025-03-17 15:09:10 +01:00
badlop
29616dc163
Merge pull request #4340 from badlop/containers-frictionless
CTL_OVER_HTTP and containers frictionless
2025-03-12 19:40:56 +01:00
Badlop
60324d4b7a CONTAINER.md: Include documentation for ecs container image 2025-03-12 18:19:39 +01:00
Badlop
cfa6575b4f CONTAINER.md: Update with all the recent improvements 2025-03-12 18:18:03 +01:00
Badlop
3b01e4e4e0 Container: Fix warning about relative workdir 2025-03-12 18:18:03 +01:00
Badlop
fa4a93c465 Container: Place sockets/ outside database/
The socket file is useless outside the container, and also
database/ may get mounted as volume, and can't handle socket file
2025-03-12 18:18:03 +01:00
Badlop
74d6d53ac6 Container: Add ERL_FLAGS to compile elixir on qemu cross-platform
Without this, compiling Elixir on arm64 using QEMU fails with:
 <<"could not call Module.put_attribute/3 because the module ExUnit.DocTest
 is already compiled">>

Solution found in:
  https://elixirforum.com/t/elixir-docker-image-wont-build-for-linux-arm64-v8-using-github-actions/56383/13
2025-03-12 18:18:03 +01:00
Badlop
8070a656fe Container: Use again direct METHOD, qemu got fixed (3983)(4280)
Partially revert d15cf99:
  Container: Add METHOD to build container using packages (3983)
2025-03-12 18:18:03 +01:00
Badlop
105a0c2029 Container: Enable CTL_OVER_HTTP by default 2025-03-12 18:18:03 +01:00
Badlop
e887546c27 Container: Copy support for CTL_OVER_HTTP 2025-03-12 18:18:03 +01:00
Badlop
9305232f8c Container: Remove runDeps file once it's used 2025-03-12 18:18:03 +01:00
Badlop
7832a6342a Container: Link path to mnesia spool dir for backwards compatibility
The ejabberdctl script in ecs image sets mnesia spool dir as:
: "${SPOOL_DIR:="$HOME_DIR/database/$ERLANG_NODE"}"
2025-03-12 18:18:03 +01:00
Badlop
c924a47188 Container: Improve entrypoint script: register account, or set random
If password variable is set, register that account.
Example kubernetes yaml file in podman:

    env:
    - name: EJABBERD_MACRO_ADMIN
      value: administrator@example.org
    - name: REGISTER_ADMIN_PASSWORD
      value: somePass0rd

If admin and password are not set,
grant admin rights only to a random account name.
Notice that admin rights are granted to that variable in the default
ejabberd.yml, so if the account is not created, somebody else could do.
2025-03-12 18:18:03 +01:00
Badlop
1d42d55064 Container: Compile ejabberdapi during build
Code written originally by sando38 for ecs's Dockerfile.
2025-03-12 18:18:03 +01:00
Badlop
dd7550dbad Container: Listen for webadmin in a port number lower than any other
In the docker-desktop and podman-desktop,
when user clicks their "Open Browser" buttons,
those apps open a browser with / URL and the lowest exposed port number.
2025-03-12 18:18:03 +01:00
Badlop
7df7daa050 Container: Define and use macros in the configuration file 2025-03-12 18:18:03 +01:00
Badlop
090a7e664e Container: Apply customizations directly in the configuration file 2025-03-12 18:18:03 +01:00
Badlop
3d49bed0cf Container: Copy main example configuration file, will be customized 2025-03-12 18:18:03 +01:00
Badlop
9f28098d04 Container: Copy files to stable path, add ecs backwards compatibility
Copy captcha scripts to stable path for referencing in compose files:
  /usr/local/bin/
which is included in $PATH

For backwards compatibility with ecs, link:
  /opt/ -> /home/
  /usr/local/bin/ -> /opt/ejabberd/bin/

Copy sql files to stable path for referencing:
  /opt/ejabberd/sql/
For backwards compatibility with ecs, copy also to
  /opt/ejabberd/database/
ecs image implemented this in ejabberdctl since 2019:
  edb0373fd0ae0b24807a41ba2c3bf04b5b514844
  Keep SQL init scripts in container (#42)
2025-03-12 18:18:03 +01:00
Badlop
e761b22c61 ejabberd_listener: When opening ctl_over_http connection, log in DEBUG 2025-03-12 18:18:03 +01:00
Badlop
4d62f545c5 ejabberd_admin: Separate Status command result with newline
This is useful for CTL_OVER_HTTP
2025-03-12 18:18:03 +01:00
Badlop
f789495c39 ejabberdctl: Improve method to pass command arguments 2025-03-12 18:18:03 +01:00
Badlop
46a64c0f68 New ejabberdctl option CTL_OVER_HTTP
This uses an HTTP connection to execute the command,
which is way faster than starting an erlang node
2025-03-12 18:18:03 +01:00
Badlop
ab8a39e71f ejabberdctl: Improve explanation how to stop ejabberd in live mode 2025-03-12 18:18:03 +01:00
Badlop
630301a7ba ejabberdctl: Document the --auth option
The expected placement of --auth is not arbitrary,
it should be provided immediately before the command+args
2025-03-12 18:18:03 +01:00
Badlop
d4fd987e84 ejabberd_listener: When stopping listener, delete Unix Domain Socket file 2025-03-12 17:21:46 +01:00
Badlop
c5abe5d882 ejabberd_listener: Apparently the sleep 5 seconds isn't needed anymore 2025-03-12 17:09:37 +01:00
Badlop
71dbbc1b5a ejabberd_listener: Use /tmp for temporary socket, as path is restricted to 107 chars 2025-03-12 17:09:37 +01:00
Badlop
c9a9585573 ejabberd_listener: Add support for socket relative path
If the 'port' option is set to "unix:some-filename" without absolute path,
then the file is created in the mnesia spool directory
2025-03-12 17:09:37 +01:00
Badlop
bb2f398fa2 ejabberd_listener: Handle unix socket when logging remote client 2025-03-12 17:09:37 +01:00
Badlop
afc54aeb20 ext_mod: Provide output path when mix unpacks dependency from hex
When installing a module with mix available in the system,
mix downloads and uncompresses the dependency.
By default the output dir is <app>-<version> [1], and
that breaks compilation of the prometheus library:
  .../sources/ejabberd-contrib/mod_prometheus/deps/prometheus-4.11.0/src/metrics/prometheus_quantile_summary.erl:67:14:
  can't find include lib "quantile_estimator/include/quantile_estimator.hrl"
  %   67| -include_lib("quantile_estimator/include/quantile_estimator.hrl").

[1] https://hexdocs.pm/hex/Mix.Tasks.Hex.Package.html#module-command-line-options
2025-03-12 12:42:42 +01:00
badlop
9c142e5509
Merge pull request #4361 from sstrigler/ext_mod-fix-greedy-include-path
Ext mod fix greedy include path cont'd
2025-03-12 10:59:44 +01:00
Stefan Strigler
27f98f50d3 fix typo 2025-03-12 08:11:25 +01:00
Stefan Strigler
0145594adc add $libdir/include to include path 2025-03-12 08:11:07 +01:00