JAMES-2587 update README.adoc
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/544bf4b3 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/544bf4b3 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/544bf4b3 Branch: refs/heads/master Commit: 544bf4b3360e96b396e66a0b4ef112e997eac8bd Parents: 869c58c Author: tran tien duc <[email protected]> Authored: Wed Nov 7 15:10:35 2018 +0700 Committer: Antoine Duprat <[email protected]> Committed: Fri Nov 9 08:50:43 2018 +0100 ---------------------------------------------------------------------- README.adoc | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 72 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/544bf4b3/README.adoc ---------------------------------------------------------------------- diff --git a/README.adoc b/README.adoc index 14b930b..647b864 100644 --- a/README.adoc +++ b/README.adoc @@ -44,6 +44,7 @@ There is many other ways one can help us: packaging, communication, etc ... * https://github.com/apache/james-project/#how-to-release-via-maven-release-plugin[How to release via maven release plugin] * https://github.com/apache/james-project/#how-to-check-the-compilation[How to check the compilation] * https://github.com/apache/james-project/#how-to-run-james-in-docker[How to run James in Docker] + ** https://github.com/apache/james-project/#run-james-with-java-8--guice--cassandra-rabbitmq-elasticsearch[Run James with Java 8 + Guice + Cassandra + RabbitMQ + ElasticSearch] ** https://github.com/apache/james-project/#run-james-with-java-8--guice--cassandra--elasticsearch[Run James with Java 8 + Guice + Cassandra + ElasticSearch] ** https://github.com/apache/james-project/#run-james-with-java-8--guice--jpa--lucene[Run James with Java 8 + Guice + JPA + Lucene] ** https://github.com/apache/james-project/#run-james-with-java-8--spring--jpa[Run James with Java 8 + Spring + JPA] @@ -194,11 +195,80 @@ If you are using a a fresh installation of Docker, your DOCKER_HOST should be un This feature is available for three configurations : + * Java 8 + Guice + Cassandra + RabbitMQ + ElasticSearch * Java 8 + Guice + Cassandra + ElasticSearch * Java 8 + Guice + JPA + Lucene * Java 8 + Spring + JPA +=== Run James with Java 8 + Guice + Cassandra + RabbitMQ + ElasticSearch + + +==== Requirements +Built artifacts should be in ./dockerfiles/run/guice/cassandra-rabbitmq/destination folder for cassandra. +If you haven't already: + + $ docker build -t james/project dockerfiles/compilation/java-8 + $ docker run -v $HOME/.m2:/root/.m2 -v $PWD:/origin \ + -v $PWD/dockerfiles/run/guice/cassandra-rabbitmq/destination:/cassandra-rabbitmq/destination \ + -t james/project -s HEAD + + +==== How to ? +You need a running *cassandra* in docker. To achieve this run: + + $ docker run -d --name=cassandra cassandra:3.11.3 + +You need a running *rabbitmq* in docker. To achieve this run: + + $ docker run -d --name=rabbitmq rabbitmq:3.7.7-management + +You need a running *ElasticSearch* in docker. To achieve this run: + + $ docker run -d --name=elasticsearch elasticsearch:2.4.6 + +If you want to use all the JMAP search capabilities, you may also need to start Tika: + + $ docker run -d --name=tika logicalspark/docker-tikaserver:1.19.1 + +You can find more explanation on the need of Tika in this page http://james.apache.org/server/config-elasticsearch.html + +We need to provide the key we will use for TLS. For obvious reasons, this is not provided in this git. + +Copy your TLS keys to `run/guice/cassandra-rabbitmq/destination/conf/keystore` or generate it using the following command. The password must be `james72laBalle` to match default configuration. + + $ keytool -genkey -alias james -keyalg RSA -keystore dockerfiles/run/guice/cassandra-rabbitmq/destination/conf/keystore + +Then we need to build james container : + + $ docker build -t james_run dockerfiles/run/guice/cassandra-rabbitmq + +To run this container : + + $ docker run --hostname HOSTNAME -p "25:25" -p 80:80 -p "110:110" -p "143:143" -p "465:465" -p "587:587" -p "993:993" --link cassandra:cassandra --link rabbitmq:rabbitmq + --link elasticsearch:elasticsearch --link tika:tika --name james_run -t james_run + +Where : + +- HOSTNAME: is the hostname you want to give to your James container. This DNS entry will be used to send mail to your James server. + +You can add an optional port binding to port 8000, to expose the webadmin server. Please note that users are not authenticated on webadmin server, thus you should avoid exposing it in production. + +To have log file accessible on a volume, add *-v $PWD/logs:/logs* option to the above command line, where *$PWD/logs* is your local directory to put files in. + +==== Handling attachment indexing + +You can handle attachment text extraction before indexing in ElasticSearch. This makes attachments searchable. To enable this: + +Run tika: + + $ docker run --name tika logicalspark/docker-tikaserver:1.19.1 + +Add a link for the tika container in the above command line: + + $ docker run --hostname HOSTNAME -p "25:25" -p 80:80 -p "110:110" -p "143:143" -p "465:465" -p "587:587" -p "993:993" --link cassandra:cassandra --link rabbitmq:rabbitmq + --link elasticsearch:elasticsearch --link tika:tika --name james_run -t james_run + === Run James with Java 8 + Guice + Cassandra + ElasticSearch @@ -245,7 +315,7 @@ Where : - HOSTNAME: is the hostname you want to give to your James container. This DNS entry will be used to send mail to your James server. -You can add an optional port binding to port 8000, to expose the webadmin server. Please note that users are not authenticated on webadmin server, thus you should avoid exposing it in production. +You can add an optional port binding to port 8000, to expose the webadmin server. Please note that webadmin is not secured by default, unless you configure JWT authentication. To have log file accessible on a volume, add *-v $PWD/logs:/logs* option to the above command line, where *$PWD/logs* is your local directory to put files in. @@ -291,7 +361,7 @@ To run this container : HOSTNAME is the hostname you want to give to your James container. This DNS entry will be used to send mail to your James server. -You can add an optional port binding to port 8000, to expose the webadmin server. Please note that users are not authenticated on webadmin server, thus you should avoid exposing it in production. +You can add an optional port binding to port 8000, to expose the webadmin server. Please note that webadmin is not secured by default, unless you configure JWT authentication. To have log file accessible on a volume, add *-v $PWD/logs:/logs* option to the above command line, where *$PWD/logs* is your local directory to put files in. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
