Commit Graph

94 Commits

Author SHA1 Message Date
Badlop 538766bacf Dockerfile: Bump Erlang/OTP 28.2.0.0 and Elixir 1.19.4 2025-12-02 18:22:44 +01:00
Badlop 12d85aef48 Dockerfile: Bump Elixir 1.19.3 2025-11-18 13:36:50 +01:00
Badlop 86fe0ff355 Dockerfile: Expose also port 7777 for SOCKS5
Ports unused in the default configuration, and consequently not exposed:
- 8883 MQTTS
- 5060 SIP
- 5060 SIPS
2025-11-17 20:07:23 +01:00
Badlop dced4f4dac Dockerfile: Configure TURN ports and expose 5478 50000-50099 2025-11-17 20:07:20 +01:00
Badlop 5219bf36a9 Container: Apply recent changes in ejabberdctl.template
Even if those changes are not used in the container,
let's try to keep both files as similar as possible.
2025-11-06 18:30:09 +01:00
Badlop f7e8d8f1c1 Dockerfile: Bump Erlang/OTP 28.1.0.0 amd Elixir 1.19.1 (#4477) 2025-11-05 20:03:31 +01:00
Badlop 02aa256c59 Copy recent changes to the container template files 2025-10-28 12:01:57 +01:00
Badlop ef2e62a01c Bump Erlang/OTP version to 27.3.4.3 in installers and container 2025-09-24 13:26:55 +02:00
Badlop ce668bef14 Container: Apply some improvements from ejabberd source code
Applied:
- ejabberd.yml.example: Use HOST_URL_ENCODE to handle case when vhost is non-latin1
- ejabberdctl: Improve explanation how to stop ejabberd in live mode
- ejabberdctl: New "mnesia_change" command, a frontend to mnesia_change_nodename
2025-08-22 10:56:03 +02:00
dependabot[bot] c508795ad4 build(deps): bump golang in /.github/container
Bumps golang from 1.24-alpine to 1.25-alpine.

---
updated-dependencies:
- dependency-name: golang
  dependency-version: 1.25-alpine
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-21 16:24:48 +02:00
Badlop ce828163af Bump Erlang/OTP version to 27.3.4.2 2025-08-13 16:50:14 +02:00
Badlop 1e0b8cb547 Bump Erlang/OTP 27.3.4.1 for container image too 2025-07-10 10:58:10 +02:00
Badlop 427a29c74e Bump Erlang/OTP 27.3.4.1, Elixir 1.18.4, libexpat 2.7.1, OpenSSL 3.5.1
Notice:
- installers use OTP 27.3.4.1, the latest available right now
- containers use OTP 27.3.4, because container for 27.3.4.1 was not published,
  see https://hub.docker.com/_/erlang
2025-07-08 12:42:44 +02:00
Badlop 826123db56 Bump Erlang/OTP version to 27.3.3 2025-04-22 12:27:10 +02:00
Badlop ee3a0b8b1a Bump Erlang/OTP version to 27.3.2
27.3.3 was just release, but image is not yet published in
https://hub.docker.com/_/erlang/tags?name=27.3
2025-04-16 17:20:28 +02:00
Badlop c343ef7aad Container: Apply recent ejabberdctl backward support code 2025-04-01 13:42:22 +02:00
Badlop a4fc448a52 Container: Bump versions to Erlang/OTP 27.3 and Elixir 1.18.3 2025-03-27 22:06:50 +01:00
dependabot[bot] 239d4a5bfb build(deps): bump golang in /.github/container
Bumps golang from 1.23-alpine to 1.24-alpine.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-24 16:16:12 +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 862cacabcb ejabberdctl.template: Handle erts versions 9 o lower 2025-01-13 16:34:04 +01:00
Badlop 457d8fc6cc Container: Bump versions to Erlang/OTP 27.2 and Elixir 1.18.1 2025-01-03 11:50:07 +01:00
Badlop fff0b5209c Apply previous commit to the container ejabberdctl script 2024-06-19 11:48:33 +02:00
Badlop 426e33d3a6 Fix previous commit: shellcheck reported a warning 2024-04-04 15:58:48 +02:00
Badlop d6d8bce0e4 If INET_DIST_INTERFACE is IPv6, set required option (thanks to Stu Tomlinson)(#4189) 2024-04-04 13:42:09 +02:00
Badlop a1b76ac0a9 Container: Update to Elixir 1.16.2 2024-04-01 14:26:55 +02:00
Paweł Chmielowski 67a6776fba Add ability to ignore failures in execution of container CTL_ON_* commands
This will allow to use register in CTL_ON_CREATE and not abort if used with
existing data that have account already registered.
2024-02-13 11:55:23 +01:00
Badlop e1b94487ef Container: Apply commit 35b727a
ejabberdctl: Detect problem running iex and show explanation
2024-02-09 14:12:21 +01:00
Badlop 2531ebf685 Container: Apply commit abf0796
ejabberdctl: Detect problem running etop and show some help
2024-02-09 14:12:20 +01:00
Badlop 01909b07ce Container: Apply commit e1f14ac
Rebar3: Provide proper path to iex
2024-02-09 14:12:18 +01:00
Badlop 39ea08b7cb Container: Apply commit 841d5c0 and 81ceefe
Fix startup problem when having set EJABBERD_OPTS and logger options
Remove spurious line
2024-02-09 14:12:17 +01:00
Badlop 413ffd7470 Container: Apply commit 19e2e16
Let "ejabberdctl etop" work in a release (if observer is available)
2024-02-09 14:12:15 +01:00
Badlop 66645baa75 Container: Apply commit 122af79
move spool dir to make it fully configurable per ejabberdctl.cfg (#3863)
2024-02-09 14:12:13 +01:00
Badlop 021f0be119 Container: Update to Erlang/OTP 26.2, Elixir 1.16.1 and Alpine 3.19 2024-02-09 14:12:12 +01:00
Badlop fa12301e08 ejabberdctl: Fix problem when running ejabberdctl in container 2024-02-09 14:12:08 +01:00
Paweł Chmielowski 95135af6b3 Rework temporary node name generation in ejabberdctl
This should limit number of possible node names generated by and with that
prevent atom space exhaustion in ejabberd process.

On R23+ we switch to using native dynamic node features and on older
versions we iterate over small number of possible names and skip those
already in use.
2024-02-07 12:17:16 +01:00
Badlop a1c81955d3 ejabberdctl: Document to stop live shell with control+g, following cd421f9 2024-01-17 10:24:34 +01:00