openfire-docker-compose/simple
Matthew Vivian 0d1c00691d chore: refresh truststores and regenerate expired lab certificates
Every server certificate in the environments had expired (May 2025 for
federation, November 2025 for the xmpp.localhost.example domain,
September 2026 for otherxmpp), so certificate-authenticated S2S
(SASL EXTERNAL) failed with a TLS certificate_unknown alert.

The truststores came from a 2017 bundle, or for federation from
Openfire's 2023 bundle. Both still trusted roots that Mozilla has since
removed after distrust decisions (Entrust, Camerfirma, TURKTRUST and
others). They are rebuilt from Mozilla's current CCADB root list, the
same source Openfire's build/updateTLSTruststore uses.

The 2024 truststore refresh for federation dropped the peers' self-signed
certificates that the federation README describes, and the
cluster_with_federation stores trusted only the old certificates. Each
federated truststore now trusts its peer's new certificate.

scripts/update_certificates.sh makes this repeatable. The self-signed
certificates are valid for ten years because they only serve this lab.
The shared xmpp.localhost.example certificate now also names
xmpp2/xmpp3.localhost.example, the hostnames of the other cluster
nodes.
2026-11-04 09:41:11 +00:00
..
plugins Update jsxc plugin 2025-08-28 11:04:52 +02:00
sql refactor: rename openfire.sql to clarify execution order 2025-01-07 13:41:20 +00:00
xmpp/conf chore: refresh truststores and regenerate expired lab certificates 2026-11-04 09:41:11 +00:00
README.md Add dualstack support 2024-11-05 09:47:10 +00:00
docker-compose-network-dualstack.yml Add dualstack support 2024-11-05 09:47:10 +00:00
docker-compose-network-ipv4-only.yml Add dualstack support 2024-11-05 09:47:10 +00:00
docker-compose.yml Prevent docker-compose from pulling openfire image from registry 2026-03-05 10:35:10 +01:00
start.sh Add dualstack support 2024-11-05 09:47:10 +00:00

README.md

Simple configuration

Running ./start.sh will perform some cleanup then start the containers in a simple configuration. When running, the system looks like this:

                   +--------------------------+
                   |                          |
                   |      172.60.0.10         |
                   |      +--------+          |
(XMPP-C2S)   5222 -|      |        |          |
(XMPP-S2S)   5269 -|------| XMPP 1 +          |
(HTTP-Admin) 9090 -|      |        |          |
(BOSH)       7070 -|      +----+---+          |
                   |           |              |
                   |           |              |
                   |       +---+--+           |
                   |       |      |           |
(Database)   5432 -|-------|  DB  +           |
                   |       |      |           |
                   |       +------+           |
                   |      172.60.0.11         |
                   |                          |
                   +-----172.60.0.0/24--------+

Openfire is configured with the following XMPP domain:

  • xmpp.localhost.example

Openfire is configured with the following FQDN:

  • xmpp1.localhost.example

The following users are configured:

  • admin admin
  • user1 password
  • user2 password

The following MUC rooms are configured:

  • muc1
  • muc2

Network

The Docker compose file defines a custom bridge network with a single subnet of 172.60.0.0/24.

When the -6 argument to ./start.sh is provided, then an additional subnet of fd23:0d79:d076::/64 is configured. Then, IPv6 is preferred for internal networking. Note that the IPv4 network remains in place, as Docker does not support IPv6-only containers.

When running with the optional -6 flag (that adds IPv6 support) the system looks like this:

                   +--------------------------+
                   |                          |
                   |   [fd23:d79:d076::10]    |
                   |      172.60.0.10         |
                   |      +--------+          |
(XMPP-C2S)   5222 -|      |        |          |
(XMPP-S2S)   5269 -|------| XMPP 1 +          |
(HTTP-Admin) 9090 -|      |        |          |
(BOSH)       7070 -|      +----+---+          |
                   |           |              |
                   |           |              |
                   |       +---+--+           |
                   |       |      |           |
(Database)   5432 -|-------|  DB  +           |
                   |       |      |           |
                   |       +------+           |
                   |      172.60.0.11         |
                   |   [fd23:d79:d076::11]    |
                   |                          |
                   +-----172.60.0.0/24--------+
                       fd23:0d79:d076::/64