In general, business can select AWS server to install their own Enterprise on-premise Solution.

With growing business changes, how can organizations innovate and meet their customers’ and users’ expectations in the right time-to-market? Business needs an Enterprise on-premise solution which allows them to bring all data together in their own server.

An on-premise solution is a software application or service that is installed and operated locally within an organization's own infrastructure or data center, it has the following benefits

  • Greater control over data for the business data security.
  • Better integration with business existing internal systems.
  • The ability to customize the software to meet specific business needs.
  • As a lightweight platform, CubeDrive only need minimize upfront investment in hardware and software infrastructure, ongoing maintenance and updates.



CubeDrive on-premise solution lets business to build their data pipeline quickly. CubeDrive includes the following components:

ComponentsDescription
Form builder CubeDrive allows business to create forms dynamically using the drag and drop. User can add custom fields, generate page layouts, and apply data filters to the form.
Flow builder CubeDrive’s flow is used to automate business processes and add customers’ data-driven decisions to the application.
Application builder Application builder lets users connect different resources together in the custom layout with drag and drop method.
Kanban builder Business can link applications, add tasks, prepare plans, set background color, and even add formula to show dynamic information in the custom kanban.
Online sheet CubeDrive's sheet allows business to collaborate with online spreadsheet in real-time. Multiple users can sync edit the sheet at the same time, and every change is saved automatically.
Online editor CubeDrive's editor allows business to collaborate with online editor in real-time. Multiple users can sync edit at the same time. User can also call chatGPT as needed.

Hardware requirements


Here comes the general requirements to setup CubeDrive Enterprise Application.

  • One IP address and one domain/sub-domain name..
  • SSL certificate for the domain.
  • One or more dedicated server (ie: AWS server) with Ubuntu 20.04 64bit.
AccountsRequired Server
100 accounts (Small organization) One Ubuntu 20.04 64bit server with 4 cores and 16G memory.
1000 accounts (Medium organization) Two Ubuntu 20.04 64bit server with 4 cores and 16G memory.
10000 accounts (Large organization) Six Ubuntu 20.04 64bit server with 4 cores and 16G memory.
Two application server, two database server, two file upload server.

Software requirements


Here lists mainly 3rd-party software needed for the system.

NameDescription
Angular CubeDrive is based on Angular platform. Angular is a modern web developer's platform. For more detail, please visit: https://angular.io/
MySQL 5.7 and MongoDB 3.4 MongoDB is a popular, open-source NoSQL database management system that uses a document-oriented data model. It is designed to be flexible, scalable, and easy to use. Instead of using traditional tables and rows, MongoDB stores data in flexible, JSON-like documents with dynamic schemas, allowing for fast and easy development and scaling.
Java 1.8 CubeDrive backend is written with Java language.
Nginx Nginx is often used as a reverse proxy, which means that it acts as a gateway between a client and a server. When a client requests a resource from a server, the request is first sent to Nginx, which then forwards the request to the appropriate server. This can help to distribute the workload across multiple servers, improve performance and reliability, and add an extra layer of security.
Tomcat 8+ We do not have special requirements for web application server. You can change Tomcat to Jboss, Weblogic etc and keep your current configuration.
Spring framework Spring Framework is a Java platform that provides comprehensive infrastructure support for developing Java applications.
MyBatis An ORM mapping tool. Which can be easily integrated into Hibernate or pure database query.
Apache POI An open source Java library to process MS Excel import and export.

Install 3rd-party software


Here lists the general install process.

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
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-Paradigm-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")
Install mysql-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-xxx-2022" --restart=always mysql:5.7

Access MySQL
mysql -ucubedrive -p --host=127.0.0.1 --port=3306
username:cubedrive
password: CUBEDRIVE_xxx_2023
Install redis-server
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"

Update application


A script is created which can be used to update application as needed. Once CubeDrive have a new release. Business just need login system and process the update. Login to the system with username and password. And process the following steps:

Description
Step 1 [Option] CubeDrive will deliver the new updated SQL file. Business administrator needs put the SQL files into the folder in Server: /cubedrive/db/migration
Step 2 Run the script
cd /cubedrive
cubedrive@ip-172-31-25-240:~$ ./deploy_cubedrive.sh
Step 3 2 min later, please check business URL.

The script will merge DB, get package from CubeDrive, install, restart application and nginx. If everything is fine, your server will be auto restarted within 3 min.

cubedrive@ip-172-31-25-240:~$ more deploy_cubedrive.sh
echo "migrate database"
/cubedrive/flyway-7.15.0/flyway migrate
echo "download cubedrive"
curl -o /cubedrive/apps/cubedrive-webapp.jar https://www.cubedrive.com/deploy-ap
ps/entsheet/cubedrive-webapp.jar
echo "restart cubedrive"
echo "xxxxxxxx" | sudo -S supervisorctl restart cubedrive
echo "clean nginx cache and reload nginx"
rm -rf /cubedrive/nginx/cache
echo "xxxxxxxx" | sudo -S /cubedrive/nginx/sbin/nginx -c /cubedrive/nginx/conf/n
ginx.conf -s reload		    
		    

Database backup


Business needs backup the database daily. Login to the system with CubeDrive username. And process the following steps:

Description
Step 1 Run the script
cubedrive@ip-172-31-25-240:~$ ./backup_data.sh
Step 2 Cd /cubedrive/backup
Copy the latest file to your local

Please have a look the script if needed

cubedrive@ip-172-31-25-240:~$ more backup_data.sh
#!/bin/sh

TIME=`date +%Y-%m-%d`
FILENAME=backup-$TIME.tar.gz
SQLDIR=/data/mysql-5.7
MongoDIR=/data/mongo-3.4
CubedriveDIR=/data/cubedrive
DESTDIR=/cubedrive/backup

#find $DESTDIR/* -mtime +6 -type f -delete
echo "xxxx" | sudo tar -cpzf $DESTDIR/$FILENAME $SQLDIR $MongoDIR $CubedriveDIR
cubedrive@ip-172-31-25-240:~$