Commit Graph

141 Commits (master)

Author SHA1 Message Date
Dan Caseley 460fc98fc0 Add config to allow for GitHub Packages instead 2025-02-12 10:00:49 +01:00
Matthew Vivian 9d99ddbc8c refactor: rename openfire.sql to clarify execution order
Renamed openfire.sql to 000-init-openfire.sql to make the initialisation order explicit in the filename. This helps when adding additional SQL scripts that need to run after the schema is created, as PostgreSQL executes files in /docker-entrypoint-initdb.d alphabetically.

The new openfire-integration-test repo uses this openfire-docker-compose repository as a base (using git submodules) for its tests but needs to reconfigure Openfire via the database before startup. To do this it overlays additional SQL files into this openfire-docker-compose repository's sql folders so they are run on startup. It has had to prefix its new SQL file with zz- to make sure it runs after the initialisation SQL file in our repository. This change should make future similar uses less complex/error-prone.
2025-01-07 13:41:20 +00:00
Matthew Vivian 3980e82267 docs: Add host entry help in cluster env 2024-12-18 08:04:14 +00:00
Matthew Vivian 697aab97ed chore: Update java.security with new from Openfire
This file has been updated in Openfire to enable CRL downloading, so I'm porting it into this project as we use a copy of the security directory and overwrite the original.
2024-12-03 15:40:53 +01:00
Guus der Kinderen 96bcd89c95 [chore] Remove obsolete version attribute from docker-compose yml files
Fixes warnings like these:
```
WARN[0000] openfire-docker-compose/cluster/docker-compose-clustered.yml: `version` is obsolete
```
2024-12-03 10:36:38 +00:00
Matthew Vivian 478caa939b doc: Fix revocation.sh examples & clarify usage
Clarify that revocation.sh must be run from federation/ directory.
2024-11-25 21:48:45 +01:00
Guus der Kinderen b414916115 Set to TRACE logging by default (other envs)
Apply the change from fccc3303e4 to all other environments.
2024-11-21 14:09:03 +01:00
Matthew Vivian 3dae0e20ee docs: Add OCSP responder IPv6 IP to diagram 2024-11-21 14:09:03 +01:00
Matthew Vivian 68a6a4ca3c fix: Keep OCSP responder running on invalid request
Added the openssl ocsp flag to ignore malformed requests. The OCSP responder now continues running instead of terminating upon receiving a malformed request.

When testing connectivity it is useful to be able to curl http://ocsp-responder:8888. Previous to this commit the responder would send 200 OK then exit. With this change we still get the 200 response but the responder remains active.
2024-11-21 14:09:03 +01:00
Matthew Vivian 836b0be3c2 feat: Add IPv6 support to OCSP responder
The OCSP responder in OpenSSL (in Alpine) only supports IPv4 so I've used socat as a proxy to listen in IPv4 and IPv6 then forward to the OCSP responder on localhost using IPv4.
2024-11-21 14:09:03 +01:00
Matthew Vivian bc7a1186bc test: Set to TRACE logging by default
I think this is a reasonable default given the purpose of this project.
2024-11-21 14:09:03 +01:00
Matthew Vivian dc8ea3e3eb chore: Copy java.security from Openfire to configure OCSP
This file is being added to Openfire so I'm porting it into this project as we use a copy of the security directory and overwrite the original.

To pick up the setting in this new file, and the new system property (jdk.tls.server.enableStatusRequestExtension=true), we must also use the updated openfire.sh start script which includes the new file and sets the mentioned system property. This will happen naturally when those changes make it into the Openfire Docker image. Until then you can recreate this behaviour by adding the following to xmpp1 and xmpp2:

```
environment:
    JAVA_TOOL_OPTIONS: >
      -Djava.security.properties=/var/lib/openfire/conf/security/java.security
      -Djdk.tls.server.enableStatusRequestExtension=true
```
2024-11-21 14:09:03 +01:00
Matthew Vivian 977c098411 doc: fix OCSP responder IP in README 2024-11-21 14:09:03 +01:00
Matthew Vivian a2ac9c45f0 fix: Support OCSP in dualstack mode
I considered adding IPv6 support to the OCSP responder but it would add more files and complexity for (I think) little gain.

Instead this change keeps the OCSP responder on IPv4 only, but makes sure it's properly configured in the hosts file even when using the -6 flag. The OCSP responder will always use IPv4, other services will be able to reach it via IPv4 regardless of whether they're using IPv6 for their own communication.
2024-11-21 14:09:03 +01:00
Matthew Vivian 5f80851d44 feat: Support certificate revocation 2024-11-21 14:09:03 +01:00
Matthew Vivian a99d37d2e4 chore: latest truststores from Openfire 2024-11-21 14:09:03 +01:00
Matthew Vivian ea06f16911 doc: Add OCSP responder to diagram 2024-11-21 14:09:03 +01:00
Matthew Vivian 5a595cd864 feat: Cert generation for multiple xmpp nodes
Cert generation and import scripts now support any number of XMPP servers and use more intuitive naming for the certificates.

 This will make it easier to move cert generation to other configurations. Maybe promoting this to a top-level script to generate certs in all scenarios.
2024-11-21 14:09:03 +01:00
Matthew Vivian 4c608f22f8 fix: Use unique IP for OCSP
Prior to this the OCSP responder used 172.50.0.30. This conflicts with an example given in the readme, which uses the same IP address describing how to add a third node to the setup.

This change avoids confusion, and keeps things consistent if we ever decide to copy this to the other configurations (eg clustering_with_federation).
2024-11-21 14:09:03 +01:00
Matthew Vivian 26928c0762 feat: Switch OCSP configuration to use domain names
- Update OCSP URL in certificate generation from IP to domain name
- Add OCSP hostname to docker-compose network configuration
- Document useful hosts file entries in README.md

The changes make it easier to test OCSP locally with clients by using domain names that can be mapped in host files.
2024-11-21 14:09:03 +01:00
Matthew Vivian 7102765241 feat: Add OCSP support to federated environment
Adds Online Certificate Status Protocol (OCSP) support to the federated Openfire setup:
- Add certificate generation script with full PKI hierarchy
- Add certificate import script for Openfire keystores
- Implement OCSP responder service via Docker compose
- Update documentation with OCSP usage instructions

The -o flag can now be used with start.sh to enable OCSP support.
2024-11-21 14:09:03 +01:00
mjones216 3aac76fdcf
Merge pull request #68 from guusdk/hazelcast-5.5.0
Clustering: use Hazelcast 5.5.0
2024-11-12 10:16:26 +00:00
mjones216 aa986a48d4
Merge pull request #70 from guusdk/69_loadbalancer-startup-fix
Fix IPv6 configuration in nginx.conf files
2024-11-07 11:27:13 +00:00
Guus der Kinderen 558666b591 Fix IPv6 configuration in nginx.conf files
fixes #69
2024-11-07 12:22:48 +01:00
Guus der Kinderen 93ed45f72a Clustering: use Hazelcast 5.5.0
This updates the configuration to use a SNAPSHOT build of the Hazelcast plugin 5.5.0-1, and updated its configuration files accordingly.

Note that this requires Openfire (the container) to use Java 17 or later.
2024-11-05 20:37:43 +01:00
Guus der Kinderen 2488798304 Ipv6: Add `java.net.preferIPv6Addresses` property
Based on feedback from the Hazelcast community, this adds a Java networking property to help use Hazelcast use IPv6.
2024-11-05 09:47:10 +00:00
Guus der Kinderen 3b4862328b Add dualstack support
This adds support for IPv6, by giving all `start.sh` scripts an `-6` argument, that causes a dualstack configuration to be loaded.

Each individual docker-compose file has been split out. Now, each file no longer defines any networking. Instead, one of two networking fragments is expected to be merged in.

When starting Openfire, a Hazelcast configuration option is passed through to the Openfire process to denote preference for IPv4 or IPv6. This passing through depends on the change in Openfire, that is introduced by 2634d4a83a

Minor other changes have been applied, that mostly make the start scripts more consistent amongst each-other.

fixes #61
2024-11-05 09:47:10 +00:00
mjones216 7d30e5e1f6
Merge pull request #65 from guusdk/hazelcast-3.0.0
Update the Hazelcast plugin (clustering) to version 3.0.0
2024-10-31 15:04:28 +00:00
Guus der Kinderen c01a940638 Update the Hazelcast plugin (clustering) to version 3.0.0
This plugin requires Openfire 4.8.1 or later.

fixes #63
2024-10-16 17:12:41 +02:00
Dan Caseley 46d4fa34db For federation, add self-signed certs to each other's truststore 2024-02-21 15:52:51 +01:00
Dan Caseley 2c114089c9
Merge pull request #51 from surevine/simple
Add simple and proxied configuration
2022-12-18 14:59:00 +00:00
Dan Caseley ced3c0cb59 Fix domains 2022-09-22 20:59:32 +01:00
Dan Caseley dc3c01aa89 Add proxy configuration 2022-08-04 23:23:28 +01:00
Dan Caseley 83b84af000 Add simple configuration 2022-08-04 23:23:13 +01:00
Dan Caseley 905c512e7b Add script to prune _data directories with sudo 2022-07-27 14:47:41 +02:00
Dan Caseley 7baa48e888 Fix federated domain plugin loading 2022-07-27 14:47:41 +02:00
Dan Caseley f8dd949970 Tidy scripts directory 2022-07-27 14:47:41 +02:00
Dan Caseley 33d97f94de Add dependency check for docker & compose 2022-07-27 14:47:41 +02:00
Dan Caseley 346a4e4005 Drop use of old style "docker-compose" in favour "docker compose" everywhere 2022-07-27 14:47:41 +02:00
Dan Caseley f9e5e43506 Fix stop errors 2022-07-27 14:47:41 +02:00
Dan Caseley 5742077a93 Fix popd noise 2022-07-27 14:47:41 +02:00
Dan Caseley 438c9ec933 Fixes 2022-07-27 14:47:41 +02:00
Dan Caseley bd38d3e9e6 Update scripts to account for file movement 2022-07-27 14:47:41 +02:00
Dan Caseley 097d29d8f5 Update scripts. More reliable stop, and mitigate #18 2022-07-27 14:47:41 +02:00
Dan Caseley 7caafe6056 Fix READMEs 2022-07-27 14:47:41 +02:00
Dan Caseley c5ff481255 Move all the files into purpose-defined subdirectories 2022-07-27 14:47:41 +02:00
Dan Caseley 7b4e49c238
Merge pull request #48 from surevine/logging_container
Add optional logging container, run compose in background
2022-01-22 13:22:24 +00:00
Dan Caseley 61fe144679 Supply separate stack stop script
Alliteration always
2021-12-23 12:31:31 +00:00
Dan Caseley a5d717688c Add optional logging container, run compose in background 2021-12-20 11:32:56 +00:00
Dan Caseley b5c5659164 Update federated setup postgres version 2021-12-20 11:31:08 +00:00