| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <!-- Generated by Apache Maven Doxia at 2021-11-12 --> |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
| <title>Apache James Project – Guice-Cassandra-Rabbitmq-S3 installation guide</title> |
| <style type="text/css" media="all"> |
| @import url("../../css/james.css"); |
| @import url("../../css/maven-base.css"); |
| @import url("../../css/maven-theme.css"); |
| @import url("../../css/site.css"); |
| @import url("../../js/jquery/css/custom-theme/jquery-ui-1.8.5.custom.css"); |
| @import url("../../js/jquery/css/print.css"); |
| @import url("../../js/fancybox/jquery.fancybox-1.3.4.css"); |
| </style> |
| <script type="text/javascript" src="../../js/jquery/js/jquery-1.4.2.min.js"></script> |
| <script type="text/javascript" src="../../js/jquery/js/jquery-ui-1.8.5.custom.min.js"></script> |
| <script type="text/javascript" src="../../js/fancybox/jquery.fancybox-1.3.4.js"></script> |
| <link rel="stylesheet" href="../../css/print.css" type="text/css" media="print" /> |
| <meta name="Date-Revision-yyyymmdd" content="20211112" /> |
| <meta http-equiv="Content-Language" content="en" /> |
| |
| <!-- Google Analytics --> |
| <script type="text/javascript"> |
| |
| var _gaq = _gaq || []; |
| _gaq.push(['_setAccount', 'UA-1384591-1']); |
| _gaq.push(['_trackPageview']); |
| |
| (function() { |
| var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; |
| ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; |
| var s = document.getElementsByTagName('script').item(0); s.parentNode.insertBefore(ga, s); |
| })(); |
| |
| </script> |
| </head> |
| <body class="composite"> |
| <div id="banner"> |
| <a href="../../index.html" id="bannerLeft" title="james-logo.png"> |
| |
| |
| <img src="../../images/logos/james-logo.png" alt="James Project" /> |
| </a> |
| <a href="https://www.apache.org/index.html" id="bannerRight"> |
| |
| |
| <img src="images/logos/asf_logo_small.png" alt="The Apache Software Foundation" /> |
| </a> |
| <div class="clear"> |
| <hr/> |
| </div> |
| </div> |
| <div id="breadcrumbs"> |
| |
| |
| <div class="xleft"> |
| <span id="publishDate">Last Published: 2021-11-12</span> |
| </div> |
| <div class="xright"> <a href="../../index.html" title="Home">Home</a> |
| | |
| <a href="../../documentation.html" title="James">James</a> |
| | |
| <a href="../../mime4j/index.html" title="Mime4J">Mime4J</a> |
| | |
| <a href="../../jsieve/index.html" title="jSieve">jSieve</a> |
| | |
| <a href="../../jspf/index.html" title="jSPF">jSPF</a> |
| | |
| <a href="../../jdkim/index.html" title="jDKIM">jDKIM</a> |
| |
| |
| </div> |
| <div class="clear"> |
| <hr/> |
| </div> |
| </div> |
| <div id="leftColumn"> |
| <div id="navcolumn"> |
| |
| |
| <h5>James components</h5> |
| <ul> |
| <li class="collapsed"> |
| <a href="../../documentation.html" title="About James">About James</a> |
| </li> |
| <li class="expanded"> |
| <a href="../../server/index.html" title="Server">Server</a> |
| <ul> |
| <li class="none"> |
| <a href="../../server/advantages.html" title="Advantages">Advantages</a> |
| </li> |
| <li class="none"> |
| <a href="../../server/objectives.html" title="Objectives">Objectives</a> |
| </li> |
| <li class="expanded"> |
| <a href="../../server/quick-start.html" title="User Manual">User Manual</a> |
| <ul> |
| <li class="collapsed"> |
| <a href="../../server/features.html" title="1. Features">1. Features</a> |
| </li> |
| <li class="none"> |
| <a href="../../server/packaging.html" title="2. Packaging">2. Packaging</a> |
| </li> |
| <li class="expanded"> |
| <a href="../../server/install.html" title="3. Install James">3. Install James</a> |
| <ul> |
| <li class="none"> |
| <strong>Cassandra-RabbitMQ-S3-guice</strong> |
| </li> |
| <li class="none"> |
| <a href="../../server/install/guice-cassandra.html" title="Cassandra-guice">Cassandra-guice</a> |
| </li> |
| <li class="none"> |
| <a href="../../server/install/guice-jpa.html" title="JPA-guice">JPA-guice</a> |
| </li> |
| <li class="none"> |
| <a href="../../server/install/guice-jpa-smtp.html" title="JPA-SMTP-guice">JPA-SMTP-guice</a> |
| </li> |
| </ul> |
| </li> |
| <li class="collapsed"> |
| <a href="../../server/config.html" title="4. Configure James">4. Configure James</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../../server/manage.html" title="5. Manage">5. Manage</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../../server/monitor.html" title="6. Monitor">6. Monitor</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../../server/upgrade.html" title="7. Upgrade">7. Upgrade</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../../server/dev.html" title="8. Developers Corner">8. Developers Corner</a> |
| </li> |
| </ul> |
| </li> |
| <li class="none"> |
| <a href="../../mail.html#James_Mailing_lists" title="Mailing Lists">Mailing Lists</a> |
| </li> |
| <li class="none"> |
| <a href="../../server/release-notes.html" title="Release Notes">Release Notes</a> |
| </li> |
| <li class="none"> |
| <a href="../../server/apidocs/index.html" title="Javadoc">Javadoc</a> |
| </li> |
| <li class="none"> |
| <a href="https://issues.apache.org/jira/browse/JAMES" title="Issue Tracker">Issue Tracker</a> |
| </li> |
| <li class="none"> |
| <a href="https://github.com/apache/james-project" title="Sources">Sources</a> |
| </li> |
| <li class="none"> |
| <a href="../../server/rfcs.html" title="RFCs">RFCs</a> |
| </li> |
| <li class="none"> |
| <a href="../../download.cgi#Apache_James_Server" title="Download releases">Download releases</a> |
| </li> |
| </ul> |
| </li> |
| <li class="collapsed"> |
| <a href="../../mailet/index.html" title="Mailets">Mailets</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../../mailbox/index.html" title="Mailbox">Mailbox</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../../protocols/index.html" title="Protocols">Protocols</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../../mpt/index.html" title="MPT">MPT</a> |
| </li> |
| </ul> |
| <h5>Apache Software Foundation</h5> |
| <ul> |
| <li> |
| <strong> |
| <a title="ASF" href="http://www.apache.org/">ASF</a> |
| </strong> |
| </li> |
| <li> |
| <a title="Get Involved" href="http://www.apache.org/foundation/getinvolved.html">Get Involved</a> |
| </li> |
| <li> |
| <a title="FAQ" href="http://www.apache.org/foundation/faq.html">FAQ</a> |
| </li> |
| <li> |
| <a title="License" href="http://www.apache.org/licenses/" >License</a> |
| </li> |
| <li> |
| <a title="Sponsorship" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a> |
| </li> |
| <li> |
| <a title="Thanks" href="http://www.apache.org/foundation/thanks.html">Thanks</a> |
| </li> |
| <li> |
| <a title="Security" href="http://www.apache.org/security/">Security</a> |
| </li> |
| </ul> |
| <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"> |
| <img class="poweredBy" alt="Built by Maven" src="../../images/logos/maven-feather.png" /> |
| </a> |
| |
| |
| </div> |
| </div> |
| <div id="bodyColumn"> |
| <div id="contentBox"> |
| <h1>Guice-Cassandra-Rabbitmq-S3 installation guide</h1><section> |
| <h2><a name="Building"></a>Building</h2><section> |
| <h3><a name="Requirements"></a>Requirements</h3> |
| <ul> |
| |
| <li>Java 11 SDK</li> |
| <li>Docker ∕ ElasticSearch 7.10.2, RabbitMQ Management 3.8.18, compatible S3 ObjectStorage and Cassandra 3.11.10</li> |
| <li>Maven 3</li> |
| </ul></section><section> |
| <h3><a name="Building_the_artifacts"></a>Building the artifacts</h3> |
| <p>An usual compilation using maven will produce two artifacts into server/apps/distributed-app/target directory:</p> |
| <ul> |
| |
| <li>james-server-distributed-app.jar</li> |
| <li>james-server-distributed-app.lib</li> |
| </ul> |
| <p>You can for example run in the base of <a class="externalLink" href="https://github.com/apache/james-project">this git repository</a>:</p> |
| |
| <div class="source"> |
| <div class="source"> |
| <pre>mvn clean install |
| </pre></div></div> |
| </section></section><section> |
| <h2><a name="Running"></a>Running</h2><section> |
| <h3><a name="Requirements"></a>Requirements</h3> |
| <ul> |
| |
| <li>Cassandra 3.11.10</li> |
| <li>ElasticSearch 7.10.2</li> |
| <li>RabbitMQ-Management 3.8.18</li> |
| <li>Zenko Cloudserver or AWS S3 compatible API</li> |
| </ul></section><section> |
| <h3><a name="James_Launch"></a>James Launch</h3> |
| <p>To run james, you have to create a directory containing required configuration files.</p> |
| <p>James requires the configuration to be in a subfolder of working directory that is called <b>conf</b>. You can get a sample directory for configuration from <a class="externalLink" href="https://github.com/apache/james-project/tree/master/server/apps/distributed-app/sample-configuration">server/apps/distributed-app/sample-configuration</a>. You might need to adapt it to your needs.</p> |
| <p>You also need to generate a keystore in your conf folder with the following command:</p> |
| |
| <div class="source"> |
| <div class="source"> |
| <pre>$ keytool -genkey -alias james -keyalg RSA -keystore conf/keystore |
| </pre></div></div> |
| |
| <p>You need to have a Cassandra, ElasticSearch, S3 and RabbitMQ instance running. You can either install the servers or launch them via docker:</p> |
| |
| <div class="source"> |
| <div class="source"> |
| <pre>$ docker run -d -p 9042:9042 --name=cassandra cassandra:3.11.10 |
| $ docker run -d -p 9200:9200 --name=elasticsearch --env 'discovery.type=single-node' docker.elastic.co/elasticsearch/elasticsearch:7.10.2 |
| $ docker run -d -p 5672:5672 -p 15672:15672 --name=rabbitmq rabbitmq:3.8.18-management |
| $ docker run -d --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' --name=s3 zenko/cloudserver:8.2.6 |
| </pre></div></div> |
| |
| <p>Once everything is set up, you just have to run the jar with:</p> |
| |
| <div class="source"> |
| <div class="source"> |
| <pre>$ java -Dworking.directory=. -jar target/james-server-distributed-app.jar |
| </pre></div></div> |
| <section> |
| <h4><a name="Using_AWS_S3_of_Zenko_Cloudserver"></a>Using AWS S3 of Zenko Cloudserver</h4> |
| <p>By default, James is configured with <a class="externalLink" href="https://hub.docker.com/r/zenko/cloudserver">Zenko Cloudserver</a> which is compatible with AWS S3, in blobstore.propeties as such:</p> |
| |
| <div class="source"> |
| <div class="source"> |
| <pre>implementation=s3 |
| objectstorage.namespace=james |
| objectstorage.s3.endPoint=http://s3.docker.test:8000/ |
| objectstorage.s3.region=eu-west-1 |
| objectstorage.s3.accessKeyId=accessKey1 |
| objectstorage.s3.secretKey=secretKey1 |
| </pre></div></div></section></section></section> |
| </div> |
| </div> |
| <div class="clear"> |
| <hr/> |
| </div> |
| <div id="footer"> |
| <div class="xright">Copyright © 2006-2021 |
| <a href="https://www.apache.org/">The Apache Software Foundation</a>. |
| All Rights Reserved. |
| |
| </div> |
| <div class="clear"> |
| <hr/> |
| </div> |
| </div> |
| </body> |
| </html> |