| # Usergrid 2: Deploy to Tomcat |
| |
| __NOTE__: Beware that Usergrid 2 is UNRELEASED SOFTWARE |
| |
| |
| ## Requirements |
| |
| * [JDK 1.8](http://www.oracle.com/technetwork/java/javase/downloads/index.html) |
| * [Maven 3.2+](http://maven.apache.org/) |
| * [Tomcat 7+](https://tomcat.apache.org/download-70.cgi) |
| * [Cassandra 1.2.1*](http://cassandra.apache.org/download/) |
| * [ElasticSearch 1.4+](https://www.elastic.co/downloads/elasticsearch) |
| * [Usergrid 2.1](https://github.com/apache/usergrid/tree/2.1-release) |
| |
| ## Running |
| |
| 1. Start up Cassandra [^1] |
| a. To do this you can navigate to the cassandra folder and run ```./bin/cassandra ``` |
| 2. Start up Elasticsearch |
| a. To do this you can navigate to the folder where you extracted elasticsearch and run ```/bin/elasticsearch``` |
| |
| ### Running Usergrid |
| |
| #### Build The Java SDK |
| |
| 1. Navigate to where you cloned the usergrid repo |
| 2. Navigate to the ```sdks/java``` directory |
| 3. Run ```mvn clean install``` |
| |
| #### Build The Stack Itself |
| |
| 1. Navigate to the ```stack``` directory. |
| 2. Run ```mvn clean install -DskipTests``` |
| 3. This will generate a war at ```rest/target/ROOT.war``` |
| |
| #### Deploying the Stack Locally |
| |
| 1. Take this war and deploy it on downloaded tomcat. |
| 1. In the lib directory of the tomcat you must also put usergrid-deployment.properties. ( An example file is provided below) |
| 1. Start up Tomcat |
| a. To do this you can navigate to folder where Tomcat is install and run ```./bin/catalina.sh start``` |
| |
| Next, you need to make some API calls to initialize Usergrid's storage and indexing systems. You can make these |
| API calls using curl or your favorite HTTP client. These calls can only be done with the superuser credentials |
| that appear in your __usergrid-deployment.properties__ file. Here's how to do the calls with curl (and assuming |
| your superuser password is 'test'): |
| |
| curl -X PUT http://localhost:8080/system/database/setup -u superuser:test |
| curl -X PUT http://localhost:8080/system/database/bootstrap -u superuser:test |
| curl -X GET http://localhost:8080/system/superuser/setup -u superuser:test |
| |
| Once those three calls execute without error, then you are done. If you do see errors the double-check that you |
| have Cassandra and ElasticSearch running and that your properties files lists your Cassandra and ElasticSearch |
| hostnames correctly. Also check that ElasticSearch cluster name (in elasticsearch.yml) matches the one in the |
| Usergrid properties file. If the problem persists come talk to us on the Usergrid mailing list, we might be able to help. |
| |
| The stack is now ready to be queried against, but to get the most out of it you'll need to initialize and use our portal! |
| |
| #### Running The Portal Locally |
| |
| ##### Requirments |
| |
| [nodejs 0.10+](https://nodejs.org/download/) |
| |
| 1. Make sure you've installed node.js above. Any version above .10 or .10 should work fine. |
| 2. Navigate to ```usergrid/portal```. |
| 3. Open config.js and make sure the override URL is pointing to your local tomcat. |
| 4. Now in the portal folder run the following command ```./build.sh dev``` |
| 5. The portal should automatically open ready for use! |
| |
| Now usergrid is fully ready to use! Feel free to query against it or use it however you like! |
| |
| |
| Example __usergrid-deployment.properties__ file |
| --- |
| ``` |
| # core persistence properties |
| |
| usergrid.cluster_name property=usergrid |
| |
| cassandra.embedded=false |
| cassandra.version=1.2.18 |
| cassandra.timeout=2000 |
| |
| collections.keyspace=Usergrid_Applications |
| collections.keyspace.strategy.options=replication_factor:1 |
| collections.keyspace.strategy.class=org.apache.cassandra.locator.SimpleStrategy |
| |
| collection.stage.transient.timeout=60 |
| |
| hystrix.threadpool.graph_user.coreSize=40 |
| hystrix.threadpool.graph_async.coreSize=40 |
| |
| elasticsearch.embedded=false |
| elasticsearch.cluster_name=elasticsearch |
| elasticsearch.index_prefix=usergrid |
| elasticsearch.hosts=127.0.0.1 |
| elasticsearch.port=9300 |
| |
| elasticsearch.force_refresh=true |
| |
| index.query.limit.default=100 |
| |
| # Max Cassandra connections, applies to both CP and EM |
| cassandra.connections=600 |
| |
| ###################################################### |
| # Minimal Usergrid configuration properties for local Tomcat and Cassandra |
| # |
| |
| cassandra.url=127.0.0.1:9160 |
| |
| cassandra.keyspace.strategy=org.apache.cassandra.locator.SimpleStrategy |
| cassandra.keyspace.strategy.options.replication_factor=1 |
| |
| ###################################################### |
| # Custom mail transport |
| |
| mail.transport.protocol=smtps |
| mail.smtps.host=smtp.gmail.com |
| mail.smtps.port=465 |
| mail.smtps.auth=true |
| mail.smtps.username= |
| mail.smtps.password= |
| mail.smtps.quitwait=false |
| |
| |
| ###################################################### |
| # Admin and test user setup |
| |
| usergrid.sysadmin.login.name=superuser |
| usergrid.sysadmin.login.email=myself@example.com <--- Change this |
| usergrid.sysadmin.login.password=pwHERE <--- Change this |
| usergrid.sysadmin.login.allowed=true |
| usergrid.sysadmin.email=myself@example.com <--- Change this |
| |
| usergrid.sysadmin.approve.users=false |
| usergrid.sysadmin.approve.organizations=false |
| |
| # Base mailer account - default for all outgoing messages |
| usergrid.management.mailer=User <myself@example.com> <--- Change this |
| |
| usergrid.setup-test-account=true |
| |
| usergrid.test-account.app=test-app |
| usergrid.test-account.organization=test-organization |
| usergrid.test-account.admin-user.username=test |
| usergrid.test-account.admin-user.name=Test User |
| usergrid.test-account.admin-user.email=myself@example.com <---Change this |
| usergrid.test-account.admin-user.password=test |
| |
| ###################################################### |
| # Auto-confirm and sign-up notifications settings |
| |
| usergrid.management.admin_users_require_confirmation=false |
| usergrid.management.admin_users_require_activation=false |
| |
| usergrid.management.organizations_require_activation=false |
| usergrid.management.notify_sysadmin_of_new_organizations=true |
| usergrid.management.notify_sysadmin_of_new_admin_users=true |
| ###################################################### |
| # URLs |
| |
| # Redirect path when request come in for TLD |
| usergrid.redirect_root=http://localhost:8080/status |
| |
| usergrid.view.management.organizations.organization.activate=http://localhost:8080/accounts/welcome |
| usergrid.view.management.organizations.organization.confirm=http://localhost:8080/accounts/welcome |
| usergrid.view.management.users.user.activate=http://localhost:8080/accounts/welcome |
| usergrid.view.management.users.user.confirm=http://localhost:8080/accounts/welcome |
| |
| usergrid.organization.activation.url=http://localhost:8080/management/organizations/%s/activate |
| usergrid.admin.activation.url=http://localhost:8080/management/users/%s/activate |
| usergrid.admin.resetpw.url=http://localhost:8080/management/users/%s/resetpw |
| usergrid.admin.confirmation.url=http://localhost:8080/management/users/%s/confirm |
| usergrid.user.activation.url=http://localhost:8080%s/%s/users/%s/activate |
| usergrid.user.confirmation.url=http://localhost:8080/%s/%s/users/%s/confirm |
| usergrid.user.resetpw.url=http://localhost:8080/%s/%s/users/%s/resetpw |
| ``` |
| |
| [^1]: You can start up cassandra and elasticsearch in any order but for the sake of ordered lists I put Cassandra first. |