blob: 21310486f2b54cd061809e4750c4b06e23343a14 [file] [log] [blame]
---
active_crumb: Docs
layout: documentation
id: installation
---
<!--
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.
-->
<div id="installation" class="col-md-8 second-column">
<section id="tldr">
<h2 class="section-title">TL;DR; <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Watch this quick video (6:17) on how to download, install and verify your installation:
</p>
<div>
<iframe
width="514"
height="289"
src="https://www.youtube.com/embed/s4zEVJVhW68?modestbranding=1"
title="NLPCraft - Download, Install & Verify"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen>
</iframe>
</div>
</section>
<section id="install">
<h2 class="section-title">Installation <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Apache NLPCraft requires <b>no special installation</b> operations:
</p>
<ul>
<li>If you <a href="/download.html">downloaded</a> binary ZIP archive - <a target="asf" href="https://www.apache.org/dyn/closer.cgi#verify">verify</a> it and unzip it</li>
<li>If you <a href="/download.html">cloned</a> GitHub repository or downloaded source archive - use <code>mvn clean package -P examples</code> to build it</li>
<li>If you <a href="/download.html">used</a> Maven/Gradle/SBT - you know what you are doing...</li>
</ul>
<p>
You are done 👍
</p>
<div class="bq warn">
<p>
<b>Minimal Java and Scala versions</b>
</p>
<p>
Starting with version <b>0.9.0</b> NLPCraft requires JDK 11+ and Scala 2.13.<br/>
Starting with version <b>0.7.0</b> NLPCraft requires JDK 11+ and Scala 2.12.<br/>
Prior versions supported JDK 8 and Scala 2.12.
</p>
</div>
</section>
<section id="clean">
<h2 class="section-title">Reset Database <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
For releases marked with <i class="fas fa-fw fa-bomb"></i> you need to reset the existing database. If you are
using the Apache Ignite storage (default configuration for NLPCraft) you can accomplish this by
removing <code>${USER_HOME}/.nlpcraft/ignite</code> folder.
</p>
<p>
If you are using other storage engines (e.g. Postgres or MySQL) you need to follow their specific
procedures to recreate the database using SQL scripts from <code>sql</code> sub-folder in NLPCraft
installation directory.
</p>
</section>
<section id="config">
<h2 class="section-title">External Configuration <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Due to <a target="asf" href="https://apache.org/legal/release-policy.html">Apache release policy</a> the official Apache release cannot include content that is based on
<a target=_ href="https://creativecommons.org/licenses/by/4.0/">Commons Attribution 4.0 International</a> (CC BY 4.0) license
or any binary artifacts regardless of their respective licences. Due to these restrictions the official Apache NLPCraft release
does not include certain configuration files that are necessary for its operation. These files will be auto-downloaded upon first star of NLPCraft (hence the internet
connection is required for the first start).
On subsequent starts the NLPCraft will check for the updates and will re-download these files only if they were changed.
</p>
<p>
By default, this external configuration is hosted on GitHub (in <code>external_config</code> branch of NLPCraft project) from where it will
be automatically downloaded on the first start: <a target="github" href="https://github.com/apache/incubator-nlpcraft/raw/external_config/external">https://github.com/apache/incubator-nlpcraft/raw/external_config/external</a>.
You can change this location, e.g. move the external configuration behind your firewall or onto your local file system,
as well as change other parameters related to auto-download of the external <a href="/server-and-probe.html#config">configuration</a>
in <code>*.conf</code> file (see <code>nlpcraft.extConfig</code> property).
</p>
</section>
<section id="ignite">
<h2 class="section-title">Apache Ignite 2.x <span class="amp">&amp;</span> Java 11+ <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Starting with NLPCraft 0.7.0, NLPCraft requires JDK 11 as its minimum JDK version.
NLPCraft uses <a target=_ href="https://ignite.apache.org/">Apache Ignite 2.x</a> project as its
underlying in-memory distributed storage and cluster computing framework. When running Apache Ignite 2.x
on Java 11 you need to follow these
<a target=_ href="https://apacheignite.readme.io/docs/getting-started#section-running-ignite-with-java-9-10-11">instructions</a> which
are automatically followed when you use <a href="/tools/script.html"><code>nlpcraft.{sh|cmd}</code></a> script.
</p>
<div class="bq info">
<p>
<b>NOTE:</b> It is NOT recommended to change the version of Apache Ignite inside NLPCraft project.
</p>
</div>
<br/>
</section>
</div>
<div class="col-md-2 third-column">
<ul class="side-nav">
<li class="side-nav-title">On This Page</li>
<li><a href="#install">Installation</a></li>
<li><a href="#clean">Reset Database</a></li>
<li><a href="#config">External Config</a></li>
<li><a href="#ignite">Apache Ignite</a></li>
{% include quick-links.html %}
</ul>
</div>