Java, MySQL, MongoDB, Tomcat, Nginx 3rd-party softwares are required to run CubeDrive.
Download and install JDK 8 from
http://download.oracle.com
install java-8 sudo apt install openjdk-8-jdk install supervisor sudo apt install supervisor install wkhtmltopdf wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb sudo apt install ./wkhtmltox_0.12.6-1.focal_amd64.deb
Please set JAVA_HOME in the Linux system. For example, add the following line in the file: /etc/profile.d/oracle_jdk.sh
JAVA_HOME=/usr/local/java
export JAVA_HOME
PATH=${JAVA_HOME}/bin:${PATH}:
export PATH
save file and quit editor, run below commands:
chmod 755 /etc/profile.d/oracle_jdk.sh
source /etc/profile
MySQL is used as CubeDrive database server. In general, MySQL can be pre-installed during install Linux system. If not, please go to:
http://dev.mysql.com/downloads/mysql/
You can download and install MySQL (version 5.7.*) in your Linux server.
docker run -d --name mysql-5.7 -v /data/mysql-5.7:/var/lib/mysql -p 172.31.25.240:3306:3306 -p 127.0.0.1:3306:3306 -e MYSQL_ROOT_PASSWORD="mysql-abc-2022" --restart=always mysql:5.7
After MySQL is installed successfully, please generate a schema for the CubeDrive:
drop database cubedrive;
create database cubedrive DEFAULT CHARACTER SET utf8;
use cubedrive;
Email us to get the MySQL tables and inject the SQL file into the above MySQL schema:
Database-cubedrive.sql
cat Database-cubedrive.sql | /usr/bin/mysql -u root --password=root -h localhost cubedrive
Download the SQL files and inject the SQL file into the above MySQL schema:
Database-initialData.sql
cat Database-initialData.sql | /usr/bin/mysql -u root --password=root -h localhost cubedrive
Added below variables in /etc/my.cnf to set utf8 - support multiple language
[mysqld]
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
If you have any issues when installing mysql database, please search Google online. CubeDrive does not have special requirements for the MySQL database server.
Download MongoDB from https://www.mongodb.com/try/download/community and select version 3.4.24
Install MongoDB docker run -d --name mongo-3.4 -v /data/mongo-3.4:/data/db -p 172.31.25.240:27017:27017 -p 127.0.0.1:27017:27017 -e MONGO_INITDB_ROOT_USERNAME="root" -e MONGO_INITDB_ROOT_PASSWORD="mongo-abc-2022" --restart=always mongo:3.4.24 –auth Start MongoDB: mongo client: docker exec -it mongo-3.4 mongo use cubedrive db.auth("cubedrive","Roocae0k")
Download and install Tomcat 8 in your Linux system. Tomcat also can be pre-installed during install Linux system. Please check it first
http://apache.sunsite.ualberta.ca/tomcat/tomcat-7/v7.0.65/bin/apache-tomcat-7.0.65.tar.gzFor example, you can put it under:
/opt/3rd-parts/cubedrive-server-1
Edit file: /opt/3rd-parts/cubedrive-server-1/conf/server.xml
Enable
<Connector executor="tomcatThreadPool" port="8109" protocol="org.apache.coyote.http11.Http11AprProtocol" connectionTimeout="600000" redirectPort="8443" enableLookups="false" disableUploadTimeout="false" connectionUploadTimeout="36000000" URIEncoding="UTF-8"/>
<Connector executor="tomcatThreadPool" port="9109" protocol="org.apache.coyote.ajp.AjpAprProtocol" connectionTimeout="300000" keepAliveTimeout="300000" redirectPort="8443" acceptorThreadCount="5" acceptCount="500"/>
Disable
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
The default tomcat server memory is 256m which is not enough for the system. We need enlarge tomcat memory, go to:
/opt/3rd-parts/cubedrive-server-1/bin
Edit file (catalina.sh) by adding the following line after line: #!/bin/sh
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms2548m -Xmx2548m -Xmn768m -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseFastAccessorMethods -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/fzhuang/dump/sheet-server-1 -Dxr.load.xml-reader=org.ccil.cowan.tagsoup.Parser -XX:PermSize=192m -XX:MaxPermSize=192m"
Note: this line should be inserted at the top line of file: catelina.sh.
If you need add SSL, please get a ssl license first and update Tomcat
>$ cd /<tomcat_HOME>/conf
>$ vi server.xml
<Connector port="80"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
<Connector port="443"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="/etc/tomcat6/keystore" keystorePass="changeit" />
Nginx is a web server which can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. For more detail, please visit: https://nginx.org/en/
docker run --name redis-6 -d -v /data/redis-6:/data -p 172.31.25.240:6379:6379 -p 127.0.0.1:6379:6379 --restart=always redis:6-alpine --appendonly yes --requirepass "Nohw6uag"
Please also have a domain name which can be binded with your Linux IP address. For example:
www.yourCompany.com/cubedrive
Please also have a SSL certificate for Nginx ready.
The SSL/TLS protocol uses a pair of keys – one private, one public – to authenticate, secure and manage secure connections. These keys are a linked pair of text files and are created together as a pair when you create your Certificate Signing Request (CSR).
SSL works by making one key of the pair (the public key) known to the outside world, while the other (the private key) remains a secret only you know.