This is an automated email from the ASF dual-hosted git repository. chibenwa pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 6fbeff8d76d3d367d6fc179875b3a11279bab814 Author: Benoit TELLIER <[email protected]> AuthorDate: Mon Aug 24 00:16:52 2026 +0700 [DOC] Systematic use of variables for versions --- docs/antora.yml | 15 ++++++++ .../servers/pages/distributed/operate/index.adoc | 4 +-- .../operate/logging/docker-compose-block.adoc | 14 ++++---- .../servers/pages/distributed/run/k8s-values.adoc | 2 +- .../servers/pages/distributed/run/run-docker.adoc | 42 +++++++++++++++++----- .../servers/pages/distributed/run/run-java.adoc | 22 ++++++------ .../operate/logging/docker-compose-block.adoc | 10 +++--- .../servers/pages/postgres/run/run-docker.adoc | 34 +++++++++++++----- .../servers/pages/postgres/run/run-java.adoc | 22 ++++++------ 9 files changed, 111 insertions(+), 54 deletions(-) diff --git a/docs/antora.yml b/docs/antora.yml index 7e2f1b9fdc..930183a544 100644 --- a/docs/antora.yml +++ b/docs/antora.yml @@ -2,6 +2,21 @@ name: james-project title: Apache James Server version: '3.10.0' prerelease: SNAPSHOT +asciidoc: + attributes: + # Latest released version, as published on Maven central and Docker Hub. Bump on release. + james-version: '3.9.0@' + # Third party versions James is built, shipped and tested against. + # Bump them together with the docker-compose files of server/apps/*. + java-version: '21@' + cassandra-version: '4.1.9@' + opensearch-version: '2.19.2@' + rabbitmq-version: '4.1.1@' + postgresql-version: '16.9@' + tika-version: '3.2.3.0@' + cloudserver-version: 'c1ba296859690c1cbbec609aaae430f6b04b4745@' + fluent-bit-version: '1.5.7@' + nav: - modules/servers/nav.adoc - modules/development/nav.adoc diff --git a/docs/modules/servers/pages/distributed/operate/index.adoc b/docs/modules/servers/pages/distributed/operate/index.adoc index 46b1ed8a18..f6e988bb88 100644 --- a/docs/modules/servers/pages/distributed/operate/index.adoc +++ b/docs/modules/servers/pages/distributed/operate/index.adoc @@ -16,9 +16,9 @@ This section sums up and links upgrade instructions for people willing to upgrad .Upgrade path |=== -| Upgrade from | Recommended upgrade path to 3.9.0 +| Upgrade from | Recommended upgrade path to {james-version} -| 3.8.0 - 3.8-2 +| 3.8.0 - 3.8.2 | Upgrade, and apply link:https://github.com/apache/james-project/blob/master/upgrade-instructions.md#390-version[3.9.0 upgrade instructions] | 3.7.0 - 3.7.4 diff --git a/docs/modules/servers/pages/distributed/operate/logging/docker-compose-block.adoc b/docs/modules/servers/pages/distributed/operate/logging/docker-compose-block.adoc index 3a096778a3..2fe47fb0e2 100644 --- a/docs/modules/servers/pages/distributed/operate/logging/docker-compose-block.adoc +++ b/docs/modules/servers/pages/distributed/operate/logging/docker-compose-block.adoc @@ -1,4 +1,4 @@ -[source,docker-compose] +[source,docker-compose,subs=attributes+] ---- version: "3" @@ -28,25 +28,25 @@ services: - "8080:8000" opensearch: - image: opensearchproject/opensearch:2.19.2 + image: opensearchproject/opensearch:{opensearch-version} ports: - "9200:9200" environment: - discovery.type=single-node cassandra: - image: cassandra:4.1.9 + image: cassandra:{cassandra-version} ports: - "9042:9042" rabbitmq: - image: rabbitmq:4.1.1-management + image: rabbitmq:{rabbitmq-version}-management ports: - "5672:5672" - "15672:15672" s3: - image: ghcr.io/scality/cloudserver:c1ba296859690c1cbbec609aaae430f6b04b4745 + image: ghcr.io/scality/cloudserver:{cloudserver-version} container_name: s3.docker.test environment: - SCALITY_ACCESS_KEY_ID=accessKey1 @@ -56,7 +56,7 @@ services: - REMOTE_MANAGEMENT_DISABLE=1 fluent-bit: - image: fluent/fluent-bit:1.5.7 + image: fluent/fluent-bit:{fluent-bit-version} volumes: - ./fluentbit/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf - ./fluentbit/parsers.conf:/fluent-bit/etc/parsers.conf @@ -68,7 +68,7 @@ services: - opensearch opensearch-dashboards: - image: opensearchproject/opensearch-dashboards:2.16.0 + image: opensearchproject/opensearch-dashboards:{opensearch-version} environment: OPENSEARCH_HOSTS: http://opensearch:9200 ports: diff --git a/docs/modules/servers/pages/distributed/run/k8s-values.adoc b/docs/modules/servers/pages/distributed/run/k8s-values.adoc index 98e496652c..4b885d3053 100644 --- a/docs/modules/servers/pages/distributed/run/k8s-values.adoc +++ b/docs/modules/servers/pages/distributed/run/k8s-values.adoc @@ -31,7 +31,7 @@ JMAP instance in the cluster |replicaImapSmtpInstanceCount |1 |The number of pods we deploy for James IMAP/SMTP instance in the cluster -|image |apache/james:distributed-3.9.0|The James image used for +|image |apache/james:distributed-{james-version}|The James image used for deployment (Cassandra - RabbitMQ - LDAP distributed James flavor) |=== diff --git a/docs/modules/servers/pages/distributed/run/run-docker.adoc b/docs/modules/servers/pages/distributed/run/run-docker.adoc index edae590a75..d05ab013c1 100644 --- a/docs/modules/servers/pages/distributed/run/run-docker.adoc +++ b/docs/modules/servers/pages/distributed/run/run-docker.adoc @@ -44,7 +44,10 @@ Then load the distributed server docker image: Alternatively we provide convenience distribution for the latest release: - docker pull apache/james:distributed-3.9.0 +[subs=attributes+] +---- +docker pull apache/james:distributed-{james-version} +---- === Running Firstly, create your own user network on Docker for the James environment: @@ -53,30 +56,48 @@ Firstly, create your own user network on Docker for the James environment: You need a running *cassandra* in docker which connects to *james* network. To achieve this run: - $ docker run -d --network james --name=cassandra cassandra:4.1.9 +[subs=attributes+] +---- +$ docker run -d --network james --name=cassandra cassandra:{cassandra-version} +---- You need a running *rabbitmq* in docker which connects to *james* network. To achieve this run: - $ docker run -d --network james --name=rabbitmq rabbitmq:4.1.1-management +[subs=attributes+] +---- +$ docker run -d --network james --name=rabbitmq rabbitmq:{rabbitmq-version}-management +---- You need a running *Zenko Cloudserver* objectstorage in docker which connects to *james* network. To achieve this run: - $ docker run -d --network james --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' --name=s3 ghcr.io/scality/cloudserver:c1ba296859690c1cbbec609aaae430f6b04b4745 +[subs=attributes+] +---- +$ docker run -d --network james --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' --name=s3 ghcr.io/scality/cloudserver:{cloudserver-version} +---- You need a running *OpenSearch* in docker which connects to *james* network. To achieve this run: -$ docker run -d --network james -p 9200:9200 --name=opensearch --env 'discovery.type=single-node' opensearchproject/opensearch:2.19.2 +[subs=attributes+] +---- +$ docker run -d --network james -p 9200:9200 --name=opensearch --env 'discovery.type=single-node' opensearchproject/opensearch:{opensearch-version} +---- If you want to use all the JMAP search capabilities, you may also need to start Tika container which connects to *james* network: - $ docker run -d --network james --name=tika apache/tika:3.2.3.0 +[subs=attributes+] +---- +$ docker run -d --network james --name=tika apache/tika:{tika-version} +---- You can find more explanation on the need of Tika in this xref:distributed/configure/tika.adoc[page]. To run this container : - $ docker run --network james --hostname HOSTNAME -p "25:25" -p 80:80 -p "110:110" -p "143:143" -p "465:465" -p "587:587" -p "993:993" -p "127.0.0.1:8000:8000" --name james_run - -v $PWD/keystore:/root/conf/keystore -t apache/james:distributed-3.9.0 --generate-keystore +[subs=attributes+] +---- +$ docker run --network james --hostname HOSTNAME -p "25:25" -p 80:80 -p "110:110" -p "143:143" -p "465:465" -p "587:587" -p "993:993" -p "127.0.0.1:8000:8000" --name james_run + -v $PWD/keystore:/root/conf/keystore -t apache/james:distributed-{james-version} --generate-keystore +---- Where : @@ -123,7 +144,10 @@ You can handle attachment text extraction before indexing in OpenSearch. This ma Run tika connect to *james* network: - $ docker run -d --network james --name tika apache/tika:3.2.3.0 +[subs=attributes+] +---- +$ docker run -d --network james --name tika apache/tika:{tika-version} +---- Run James: diff --git a/docs/modules/servers/pages/distributed/run/run-java.adoc b/docs/modules/servers/pages/distributed/run/run-java.adoc index 9506003843..3b5d25145d 100644 --- a/docs/modules/servers/pages/distributed/run/run-java.adoc +++ b/docs/modules/servers/pages/distributed/run/run-java.adoc @@ -5,9 +5,9 @@ === Requirements -* Java 11 SDK -* Docker ∕ OpenSearch 2.1.0, RabbitMQ Management 3.8.18, S3 compatible -ObjectStorage and Cassandra 4.0 +* Java {java-version} SDK +* Docker ∕ OpenSearch {opensearch-version}, RabbitMQ Management {rabbitmq-version}, S3 compatible +ObjectStorage and Cassandra {cassandra-version} * Maven 3 === Building the artifacts @@ -29,9 +29,9 @@ mvn clean install === Requirements -* Cassandra 4.0 -* OpenSearch 2.1.0 -* RabbitMQ-Management 3.8.17 +* Cassandra {cassandra-version} +* OpenSearch {opensearch-version} +* RabbitMQ-Management {rabbitmq-version} * Swift ObjectStorage 2.15.1 or Zenko Cloudserver or AWS S3 === James Launch @@ -48,12 +48,12 @@ You might need to adapt it to your needs. You need to have a Cassandra, OpenSearch, S3 and RabbitMQ instance running. You can either install the servers or launch them via docker: -[source,bash] +[source,bash,subs=attributes+] ---- -$ docker run -d -p 9042:9042 --name=cassandra cassandra:4.1.9 -$ docker run -d --network james -p 9200:9200 --name=opensearch --env 'discovery.type=single-node' opensearchproject/opensearch:2.19.2 -$ docker run -d -p 5672:5672 -p 15672:15672 --name=rabbitmq rabbitmq:4.1.1-management -$ docker run -d --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' --name=s3 ghcr.io/scality/cloudserver:c1ba296859690c1cbbec609aaae430f6b04b4745 +$ docker run -d -p 9042:9042 --name=cassandra cassandra:{cassandra-version} +$ docker run -d --network james -p 9200:9200 --name=opensearch --env 'discovery.type=single-node' opensearchproject/opensearch:{opensearch-version} +$ docker run -d -p 5672:5672 -p 15672:15672 --name=rabbitmq rabbitmq:{rabbitmq-version}-management +$ docker run -d --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' --name=s3 ghcr.io/scality/cloudserver:{cloudserver-version} ---- Once everything is set up, you just have to run the jar with: diff --git a/docs/modules/servers/pages/postgres/operate/logging/docker-compose-block.adoc b/docs/modules/servers/pages/postgres/operate/logging/docker-compose-block.adoc index 9c3457adb6..a32ad1aacf 100644 --- a/docs/modules/servers/pages/postgres/operate/logging/docker-compose-block.adoc +++ b/docs/modules/servers/pages/postgres/operate/logging/docker-compose-block.adoc @@ -1,4 +1,4 @@ -[source,docker-compose] +[source,docker-compose,subs=attributes+] ---- version: "3" @@ -34,7 +34,7 @@ services: - discovery.type=single-node postgres: - image: postgres:16.9 + image: postgres:{postgresql-version} ports: - "5432:5432" environment: @@ -43,13 +43,13 @@ services: - POSTGRES_PASSWORD=secret1 rabbitmq: - image: rabbitmq:4.1.1-management + image: rabbitmq:{rabbitmq-version}-management ports: - "5672:5672" - "15672:15672" s3: - image: registry.scality.com/cloudserver/cloudserver:8.7.25 + image: ghcr.io/scality/cloudserver:{cloudserver-version} container_name: s3.docker.test environment: - SCALITY_ACCESS_KEY_ID=accessKey1 @@ -59,7 +59,7 @@ services: - REMOTE_MANAGEMENT_DISABLE=1 fluent-bit: - image: fluent/fluent-bit:1.5.7 + image: fluent/fluent-bit:{fluent-bit-version} volumes: - ./fluentbit/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf - ./fluentbit/parsers.conf:/fluent-bit/etc/parsers.conf diff --git a/docs/modules/servers/pages/postgres/run/run-docker.adoc b/docs/modules/servers/pages/postgres/run/run-docker.adoc index bd56b4f144..ba5e6c4277 100644 --- a/docs/modules/servers/pages/postgres/run/run-docker.adoc +++ b/docs/modules/servers/pages/postgres/run/run-docker.adoc @@ -58,7 +58,10 @@ Then load the James Postgresql server docker image: Alternatively we provide convenience distribution for the latest release: - docker pull apache/james:postgres-3.9.0 +[subs=attributes+] +---- +docker pull apache/james:postgres-{james-version} +---- === Running with Postgresql only @@ -68,12 +71,18 @@ Firstly, create your own user network on Docker for the James environment: You need a running *Postgresql* in docker which connects to *james* network. To achieve this run: - $ docker run -d --network james --name=postgres --env 'POSTGRES_DB=james' --env 'POSTGRES_USER=james' --env 'POSTGRES_PASSWORD=secret1' postgres:16.9 +[subs=attributes+] +---- +$ docker run -d --network james --name=postgres --env 'POSTGRES_DB=james' --env 'POSTGRES_USER=james' --env 'POSTGRES_PASSWORD=secret1' postgres:{postgresql-version} +---- To run this container : - $ docker run --network james --hostname HOSTNAME -p "25:25" -p 80:80 -p "110:110" -p "143:143" -p "465:465" -p "587:587" -p "993:993" -p "127.0.0.1:8000:8000" --name james_run - -v $PWD/keystore:/root/conf/keystore -t apache/james:postgres-3.9.0 --generate-keystore +[subs=attributes+] +---- +$ docker run --network james --hostname HOSTNAME -p "25:25" -p 80:80 -p "110:110" -p "143:143" -p "465:465" -p "587:587" -p "993:993" -p "127.0.0.1:8000:8000" --name james_run + -v $PWD/keystore:/root/conf/keystore -t apache/james:postgres-{james-version} --generate-keystore +---- Where : @@ -95,15 +104,21 @@ Same as above, except that you need to run before James instances of RabbitMQ, S You need a running *rabbitmq* in docker which connects to *james* network. To achieve this run: - $ docker run -d --network james --name=rabbitmq rabbitmq:4.1.1-management +[subs=attributes+] +---- +$ docker run -d --network james --name=rabbitmq rabbitmq:{rabbitmq-version}-management +---- You need a running *Zenko Cloudserver* objectstorage in docker which connects to *james* network. To achieve this run: - $ docker run -d --network james --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' --name=s3 registry.scality.com/cloudserver/cloudserver:8.7.25 +[subs=attributes+] +---- +$ docker run -d --network james --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' --name=s3 ghcr.io/scality/cloudserver:{cloudserver-version} +---- You need a running *OpenSearch* in docker which connects to *james* network. To achieve this run: -$ docker run -d --network james -p 9200:9200 --name=opensearch --env 'discovery.type=single-node' opensearchproject/opensearch:2.19.2 +$ docker run -d --network james -p 9200:9200 --name=opensearch --env 'discovery.type=single-node' opensearchproject/opensearch:{opensearch-version} Then run James like in the section above. @@ -136,7 +151,10 @@ You can handle attachment text extraction before indexing in OpenSearch. This ma Run tika connect to *james* network: - $ docker run -d --network james --name tika apache/tika:3.2.0.0 +[subs=attributes+] +---- +$ docker run -d --network james --name tika apache/tika:{tika-version} +---- Run James: diff --git a/docs/modules/servers/pages/postgres/run/run-java.adoc b/docs/modules/servers/pages/postgres/run/run-java.adoc index e63624c0a5..2e205d80ff 100644 --- a/docs/modules/servers/pages/postgres/run/run-java.adoc +++ b/docs/modules/servers/pages/postgres/run/run-java.adoc @@ -5,7 +5,7 @@ === Requirements -* Java 21 SDK +* Java {java-version} SDK * Maven 3 === Building the artifacts @@ -29,7 +29,7 @@ mvn clean install ==== Requirements -* Postgresql 16.0+ +* Postgresql {postgresql-version}+ ==== James launch @@ -46,9 +46,9 @@ to not have OpenSearch indexing enabled by default for the search. You need to have a Postgresql instance running. You can either install the server or launch it via docker: -[source,bash] +[source,bash,subs=attributes+] ---- -$ docker run -d --network james -p 5432:5432 --name=postgres --env 'POSTGRES_DB=james' --env 'POSTGRES_USER=james' --env 'POSTGRES_PASSWORD=secret1' postgres:16.9 +$ docker run -d --network james -p 5432:5432 --name=postgres --env 'POSTGRES_DB=james' --env 'POSTGRES_USER=james' --env 'POSTGRES_PASSWORD=secret1' postgres:{postgresql-version} ---- Once everything is set up, you just have to run the jar with: @@ -70,8 +70,8 @@ $ keytool -genkey -alias james -keyalg RSA -keystore conf/keystore ==== Requirements -* Postgresql 16.0+ -* OpenSearch 2.1.0+ +* Postgresql {postgresql-version}+ +* OpenSearch {opensearch-version}+ * RabbitMQ-Management 3.8.17+ * Swift ObjectStorage 2.15.1+ or Zenko Cloudserver or AWS S3 @@ -83,12 +83,12 @@ like in the https://github.com/apache/james-project/tree/master/server/apps/post You need to have a Postgresql, OpenSearch, S3 and RabbitMQ instance running. You can either install the servers or launch them via docker: -[source,bash] +[source,bash,subs=attributes+] ---- -$ docker run -d --network james -p 5432:5432 --name=postgres --env 'POSTGRES_DB=james' --env 'POSTGRES_USER=james' --env 'POSTGRES_PASSWORD=secret1' postgres:16.9 -$ docker run -d --network james -p 9200:9200 --name=opensearch --env 'discovery.type=single-node' opensearchproject/opensearch:2.19.2 -$ docker run -d -p 5672:5672 -p 15672:15672 --name=rabbitmq rabbitmq:4.1.1-management -$ docker run -d --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' --name=s3 registry.scality.com/cloudserver/cloudserver:8.7.25 +$ docker run -d --network james -p 5432:5432 --name=postgres --env 'POSTGRES_DB=james' --env 'POSTGRES_USER=james' --env 'POSTGRES_PASSWORD=secret1' postgres:{postgresql-version} +$ docker run -d --network james -p 9200:9200 --name=opensearch --env 'discovery.type=single-node' opensearchproject/opensearch:{opensearch-version} +$ docker run -d -p 5672:5672 -p 15672:15672 --name=rabbitmq rabbitmq:{rabbitmq-version}-management +$ docker run -d --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' --name=s3 ghcr.io/scality/cloudserver:{cloudserver-version} ---- Once everything is set up, you just have to run the jar like in the with Postgresql only section. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
