目錄
一.低代碼優勢:
1.1低代碼平臺和傳統代碼開發:
1.2低代碼和0代碼平臺:
1.3低代碼平臺:Microi吾碼
二.關于開源低代碼平臺:Microi吾碼
2.1Mircroi吾碼介紹:
2.2產品特點:
2.3產品團隊優勢:
三.使用Microi吾碼:
3.1安裝:
3.1.1CentOS7一鍵安裝腳本:
3.1.2注意事項:
3.1.2腳本代碼:
3.2快速使用---打印引擎:
3.3快速使用---接口引擎:
四.成功案例:
一.低代碼優勢:
1.1低代碼平臺和傳統代碼開發:
低代碼平臺顯著提升開發速度,通過可視化界面與預建模塊,能快速搭建應用,大幅縮短開發周期,適用于快速迭代項目。而傳統代碼開發需從零編寫大量代碼,開發過程復雜、耗時久,對簡單應用也需較長時間完成開發架構與功能實現。
1.2低代碼和0代碼平臺:
低代碼平臺提供了更多的可擴展性選項,能夠構建新的應用程序以應付隨著業務增長而增長的用戶,可滿足企業長遠發展需求 。而0代碼平臺的可擴展性相對較弱,難以滿足企業在業務規模擴大和功能復雜程度增加時的進一步發展需求。
0代碼開發幾乎不需要編程知識,學習曲線低,但不利于開發人員編程技能的提升。低代碼開發需要一些基本編程知識,如變量、條件語句和循環等概念,有助于開發人員提升技術能力,更好地應對復雜項目開發需求。
1.3低代碼平臺:Microi吾碼
該平臺可以多人操作、不限制人數,表單數、數據量、數據庫數量等。另外還支持垮平臺性,跨數據庫,支持擴展組件、支持自定義vue組件嵌入表單、支持二次開發調用表單引擎,支持V8引擎事件,靈活實現復雜業務邏輯。集成Google V8引擎,支持使用JavaScript在線編寫后端接口,支持get、post請求,支持響應文件、讀取文件等。微服務、組件、內置界面模板等。支持一鍵加載第三方數據庫,在接口引擎中訪問任意數據庫。多公眾號配置(不同集團分公司用戶綁定不同公眾號發送模板消息)、多小程序配置、模板消息配置。
??Microi吾碼官網:?https://microi.net?GitEE開源地址:microi.net: 開源低代碼平臺-Microi吾碼,基于.NET8+Vue3+Element-Plus,始于2014年(基于Avalon.js),2018年使用Vue重構,于2024年10月開源。
二.關于開源低代碼平臺:Microi吾碼
2.1Mircroi吾碼介紹:
專注于“零代碼全局應用搭建平臺”領域,以“加速社會數字化轉型與企業運營創新”為使命,由擁有10余年全棧開發經驗的專業團隊組成,讓原先耗時以“月”計的繁雜編碼過程,被有效縮減到“小時”計,極大降低了平臺開發、維護成本,為開發方與使用方減負。公司服務經驗包括百余個跨行業項目,并以“全業務管理平臺”為應用場景,目前,小吾科技所開發的軟件產品、開源組件在數千家企業中應用,從商務、財務、銷售到服務類等行業領域,覆蓋尋求數字轉型企業的所有需求,實現個性化的行業解決方案。
?
2.2產品特點:
1.多語言支持:
前后端均支持多語言管理,可在線配置多語言,滿足不同地區和用戶的語言需求。
2.細粒度權限控制:
能夠細化到每張表、每個字段、每個菜單、每個V8按鈕、每個接口的權限控制,提供更精準的訪問權限管理,保障系統安全性。
3.界面自定義:
提供界面自定義引擎,用戶可根據自身需求靈活定制界面,滿足個性化的設計要求,提高用戶體驗。
4.框架特點:
采用.NET8 + Redis + MySql/SqlServer/Oracle + Vue2/3 + Element-UI/Element-Plus的技術架構,支持跨平臺、跨數據庫、分布式部署,并集成消息隊列、搜索引擎、MongoDB等組件,提供強大的后端支持。
?
2.3產品團隊優勢:
1.研發部90%為技術開發人員,分為兩組。
2.Microi.net產品研發組。
3.基于Microi.net進行二次定制開發組。
4.提供穩定的更新與售后服務。
三.使用Microi吾碼:
3.1安裝:
3.1.1CentOS7一鍵安裝腳本:
url=https://static.itdos.com/install/install-microi-centos.sh;if [ -f /usr/bin/curl ];then curl -sSO $url;else wget -O install-microi-centos.sh $url;fi;bash install-microi-centos.sh
3.1.2注意事項:
1.根據上面的提示進行操作以后,在界面中會出現【輸入 g 以公網IP安裝,輸入 n 以內網IP安裝】,然后按自己的實際情況繼續,輸入g或n。
2.如果服務器沒有docker環境,也會提示是否按y安裝,雖然博主建議使用1Panel、寶塔之類的面板工具來管理服務器并安裝docker,但如果您想快速開始就直接鍵入y吧。
3.安裝成功后,必需開放microi-api端口、前端傳統界面端口、前端Web操作系統端口、MinIO端口。
4.腳本安裝mysql默認為4G內存服務器的性能配置,2G內存服務器建議下載腳本去掉性能配置再運行腳本 重復執行一鍵腳本前會提示先刪除所有已安裝容器,這將導致所有數據丟失。
下面是安裝成功的界面!
?
3.1.2腳本代碼:
echo 'Microi:當前一鍵腳本版本:2024-11-24 11:47'
# 獲取局域網IP
LAN_IP=$(hostname -I | awk '{print $1}')
echo 'Microi:獲取局域網IP: '$LAN_IP# 獲取公網IP
PUBLIC_IP=$(curl -s ifconfig.me)
echo 'Microi:獲取公網IP: '$PUBLIC_IP# 詢問用戶安裝類型
echo 'Microi:您是想在公網訪問系統還是內網訪問?公網請提前做好端口開放。'
echo 'Microi:輸入 g 以公網IP安裝,輸入 n 以內網IP安裝:'
read -r install_typeif [ "$install_type" == "g" ]; thenACCESS_IP=$PUBLIC_IPecho 'Microi:將以公網IP安裝。'
elif [ "$install_type" == "n" ]; thenACCESS_IP=$LAN_IPecho 'Microi:將以內網IP安裝。'
elseecho 'Microi:無效的輸入,腳本退出。'exit 1
fi# 檢查Docker是否安裝
if ! [ -x "$(command -v docker)" ]; thenecho 'Microi:您未安裝docker,推薦使用1Panel、寶塔等面板工具來安裝docker并管理您的服務器!'echo 'Microi:是否立即安裝Docker?(y/n)'read -r answerif [ "$answer" != "y" ]; thenecho 'Microi:安裝取消,腳本退出。'exit 1fi# 安裝Dockerecho 'Microi:開始安裝Docker...'sudo yum update -ysudo yum install -y yum-utilssudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposudo yum install -y docker-ce docker-ce-cli containerd.iosudo systemctl start dockersudo systemctl enable dockerecho 'Microi:Docker已成功安裝。'
fi# 配置Docker鏡像加速器(現在太難找了,如果報錯timeout就去阿里云申請一個自己私有的加速地址)
DOCKER_ACCELERATOR="https://mirrors.aliyun.com/docker-ce/"
echo 'Microi:配置Docker鏡像加速器'
sudo tee /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["${DOCKER_ACCELERATOR}"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker# 生成隨機端口和密碼函數
echo 'Microi:生成隨機端口和密碼函數'
generate_random_port() {shuf -i 17777-65535 -n 1
}generate_random_password() {openssl rand -base64 12 | tr -dc 'A-Za-z0-9' | head -c16
}# 生成隨機數據目錄
generate_random_data_dir() {local container_name="$1"local dir="/home/data-${container_name}-$(openssl rand -hex 4)"mkdir -p "${dir}"echo "${dir}"
}# 檢查并提示用戶手動刪除已有容器
echo 'Microi:檢查并提示用戶手動刪除已有容器'
if docker ps -a --format '{{.Names}}' | grep -q '^microi-install-'; thenecho 'Microi:腳本重復運行前,需要先通過命令【docker ps -a --format "{{.Names}}" | grep "^microi-install-" | xargs -r docker rm -f】刪除所有相關容器后再重新運行,注意此操作將會刪除數據庫、MinIO文件,請謹慎操作'exit 1
fi# 檢查并安裝unzip
if ! [ -x "$(command -v unzip)" ]; thenecho 'Microi:您未安裝unzip,正在為您安裝...'sudo yum install -y unzipif [ $? -ne 0 ]; thenecho 'Microi:unzip安裝失敗,腳本退出。'exit 1fiecho 'Microi:unzip已成功安裝。'
elseecho 'Microi:unzip已安裝。'
fi# 創建 MySQL 配置文件
MYSQL_CONF_FILE="/tmp/my_microi.cnf"
echo '[mysqld]' > ${MYSQL_CONF_FILE}
echo 'lower_case_table_names = 1' >> ${MYSQL_CONF_FILE}
echo 'max_connections = 500' >> ${MYSQL_CONF_FILE}
echo 'key_buffer_size = 268435456' >> ${MYSQL_CONF_FILE}
echo 'query_cache_size = 268435456' >> ${MYSQL_CONF_FILE}
echo 'tmp_table_size = 268435456' >> ${MYSQL_CONF_FILE}
echo 'innodb_buffer_pool_size = 536870912' >> ${MYSQL_CONF_FILE}
echo 'innodb_log_buffer_size = 268435456' >> ${MYSQL_CONF_FILE}
echo 'sort_buffer_size = 1048576' >> ${MYSQL_CONF_FILE}
echo 'read_buffer_size = 2097152' >> ${MYSQL_CONF_FILE}
echo 'read_rnd_buffer_size = 1048576' >> ${MYSQL_CONF_FILE}
echo 'join_buffer_size = 2097152' >> ${MYSQL_CONF_FILE}
echo 'thread_stack = 393216' >> ${MYSQL_CONF_FILE}
echo 'binlog_cache_size = 196608' >> ${MYSQL_CONF_FILE}
echo 'thread_cache_size = 192' >> ${MYSQL_CONF_FILE}
echo 'table_open_cache = 1024' >> ${MYSQL_CONF_FILE}
echo 'character_set_server=utf8mb4' >> ${MYSQL_CONF_FILE}
echo 'collation_server=utf8mb4_unicode_ci' >> ${MYSQL_CONF_FILE}# 安裝MySQL 5.6
MYSQL_PORT=$(generate_random_port)
MYSQL_ROOT_PASSWORD=$(generate_random_password)
MYSQL_DATA_DIR=$(generate_random_data_dir "mysql")
echo 'Microi:MySQL 將在端口 '${MYSQL_PORT}' 上安裝,root 密碼: '${MYSQL_ROOT_PASSWORD},數據目錄: ${MYSQL_DATA_DIR}
docker pull registry.cn-hangzhou.aliyuncs.com/microios/mysql5.6:latest
docker run -itd --restart=always --log-opt max-size=10m --log-opt max-file=10 --privileged=true \--name microi-install-mysql56 -p ${MYSQL_PORT}:3306 \-v ${MYSQL_DATA_DIR}:/var/lib/mysql \-v ${MYSQL_CONF_FILE}:/etc/mysql/conf.d/my_microi.cnf \-e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} \-e MYSQL_TIME_ZONE=Asia/Shanghai \-d registry.cn-hangzhou.aliyuncs.com/microios/mysql5.6:latest# 安裝Redis 6.2
REDIS_PORT=$(generate_random_port)
REDIS_PASSWORD=$(generate_random_password)
echo 'Microi:Redis 將在端口 '${REDIS_PORT}' 上安裝,密碼: '${REDIS_PASSWORD}
docker pull registry.cn-hangzhou.aliyuncs.com/microios/redis6.2:latest
docker run -itd --restart=always --log-opt max-size=10m --log-opt max-file=10 --privileged=true \--name microi-install-redis -p ${REDIS_PORT}:6379 \-e REDIS_PASSWORD=${REDIS_PASSWORD} \-d registry.cn-hangzhou.aliyuncs.com/microios/redis6.2:latest redis-server --requirepass ${REDIS_PASSWORD}# 等待MySQL容器啟動
echo 'Microi:等待MySQL容器啟動...'
sleep 5 # 等待5秒,可根據實際情況調整# 檢查MySQL是否可以連接
echo 'Microi:檢查MySQL是否可以連接...'
for i in {1..10}; dodocker exec -i microi-install-mysql56 mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "SELECT 1" > /dev/null 2>&1 && breaksleep 1
done# 如果MySQL服務啟動失敗,則退出腳本
if [ $i -eq 60 ]; thenecho 'Microi:MySQL服務啟動失敗,腳本退出。'exit 1
fi# 允許root用戶從任意主機連接
echo 'Microi:允許root用戶從任意主機連接'
docker exec -i microi-install-mysql56 mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "USE mysql; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}' WITH GRANT OPTION;"
docker exec -i microi-install-mysql56 mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "FLUSH PRIVILEGES;"# 下載并解壓MySQL數據庫備份
SQL_ZIP_URL="https://static.itdos.com/download/microi/file/mysql5.6.50-bak-latest.sql.zip"
SQL_ZIP_FILE="/tmp/mysql_backup.zip"
SQL_DIR="/tmp/mysql_backup"
SQL_FILE="${SQL_DIR}/microi_demo.sql"# 創建目錄
mkdir -p ${SQL_DIR}
echo 'Microi:創建目錄: '${SQL_DIR}# 下載ZIP文件
curl -o ${SQL_ZIP_FILE} ${SQL_ZIP_URL}
echo 'Microi:下載ZIP文件: '${SQL_ZIP_FILE}# 解壓ZIP文件并覆蓋現有文件
unzip -o -d ${SQL_DIR} ${SQL_ZIP_FILE}
echo 'Microi:解壓ZIP文件到: '${SQL_DIR}# 創建數據庫
echo 'Microi:創建數據庫 microi_demo'
docker exec -i microi-install-mysql56 mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "CREATE DATABASE IF NOT EXISTS microi_demo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"# 還原MySQL數據庫備份
echo 'Microi:還原MySQL數據庫備份: '${SQL_FILE}
docker exec -i microi-install-mysql56 mysql -uroot -p${MYSQL_ROOT_PASSWORD} microi_demo < ${SQL_FILE}# 安裝MongoDB
MONGO_PORT=$(generate_random_port)
MONGO_ROOT_PASSWORD=$(generate_random_password)
MONGO_DATA_DIR=$(generate_random_data_dir "mongodb")
echo 'Microi:MongoDB 將在端口 '${MONGO_PORT}' 上安裝,root 密碼: '${MONGO_ROOT_PASSWORD},數據目錄: ${MONGO_DATA_DIR}
docker pull registry.cn-hangzhou.aliyuncs.com/microios/mongo:latest
docker run -itd --restart=always --log-opt max-size=10m --log-opt max-file=10 --privileged=true \--name microi-install-mongodb -p ${MONGO_PORT}:27017 \-v ${MONGO_DATA_DIR}:/data/db \-e MONGO_INITDB_ROOT_USERNAME=root \-e MONGO_INITDB_ROOT_PASSWORD=${MONGO_ROOT_PASSWORD} \-d registry.cn-hangzhou.aliyuncs.com/microios/mongo:latest# 安裝MinIO
MINIO_PORT=$(generate_random_port)
MINIO_CONSOLE_PORT=$(generate_random_port)
MINIO_ACCESS_KEY=$(generate_random_password)
MINIO_SECRET_KEY=$(generate_random_password)
MINIO_DATA_DIR=$(generate_random_data_dir "minio")
echo 'Microi:MinIO 將在端口 '${MINIO_PORT}' 和控制臺端口 '${MINIO_CONSOLE_PORT}' 上安裝,access key: '${MINIO_ACCESS_KEY}',secret key: '${MINIO_SECRET_KEY},數據目錄: ${MINIO_DATA_DIR}
docker pull registry.cn-hangzhou.aliyuncs.com/microios/minio:latest
docker run -itd --restart=always --log-opt max-size=10m --log-opt max-file=10 --privileged=true \--name microi-install-minio -p ${MINIO_PORT}:9000 -p ${MINIO_CONSOLE_PORT}:9001 \-v ${MINIO_DATA_DIR}:/data \-v ${MINIO_DATA_DIR}/config:/root/.minio \-e "MINIO_ROOT_USER=${MINIO_ACCESS_KEY}" \-e "MINIO_ROOT_PASSWORD=${MINIO_SECRET_KEY}" \-d registry.cn-hangzhou.aliyuncs.com/microios/minio:latest server /data --console-address ":9001"# 拉取并安裝后端microi-api接口系統
API_PORT=$(generate_random_port)
API_IMAGE="registry.cn-hangzhou.aliyuncs.com/microios/microi-api:latest"
API_CONTAINER_NAME="microi-install-api"
OS_CLIENT_DB_CONN="Data Source=${LAN_IP};Database=microi_demo;User Id=root;Password=${MYSQL_ROOT_PASSWORD};Port=${MYSQL_PORT};Convert Zero Datetime=True;Allow Zero Datetime=True;Charset=utf8mb4;Max Pool Size=500;sslmode=None;"
echo 'Microi:拉取并安裝后端microi-api接口系統: '${API_IMAGE}
docker pull ${API_IMAGE}
docker run -itd --restart=always --log-opt max-size=10m --log-opt max-file=10 --privileged=true \--name ${API_CONTAINER_NAME} -p ${API_PORT}:80 \-e "OsClient=iTdos" \-e "OsClientType=Product" \-e "OsClientNetwork=Internal" \-e "OsClientDbConn=${OS_CLIENT_DB_CONN}" \-e "OsClientRedisHost=${LAN_IP}" \-e "OsClientRedisPort=${REDIS_PORT}" \-e "OsClientRedisPwd=${REDIS_PASSWORD}" \-e "AuthServer=http://${LAN_IP}:${API_PORT}" \-v /etc/localtime:/etc/localtime \-v /usr/share/fonts:/usr/share/fonts \-d ${API_IMAGE}# 拉取并安裝前端傳統界面
VUE_PORT=$(generate_random_port)
VUE_IMAGE="registry.cn-hangzhou.aliyuncs.com/microios/microi-client:latest"
VUE_CONTAINER_NAME="microi-install-client"
echo 'Microi:拉取并安裝前端傳統界面: '${VUE_IMAGE}
docker pull ${VUE_IMAGE}
docker run -itd --restart=always --log-opt max-size=10m --log-opt max-file=10 --privileged=true \--name ${VUE_CONTAINER_NAME} -p ${VUE_PORT}:80 \-e "OsClient=iTdos" \-e "ApiBase=http://${ACCESS_IP}:${API_PORT}" \-v /etc/localtime:/etc/localtime \-v /usr/share/fonts:/usr/share/fonts \-d ${VUE_IMAGE}# 拉取并安裝前端WebOS操作系統
WEBOS_PORT=$(generate_random_port)
WEBOS_IMAGE="registry.cn-hangzhou.aliyuncs.com/microios/microi-os:latest"
WEBOS_CONTAINER_NAME="microi-install-os"
echo 'Microi:拉取并安裝前端WebOS操作系統: '${WEBOS_IMAGE}
docker pull ${WEBOS_IMAGE}
docker run -itd --restart=always --log-opt max-size=10m --log-opt max-file=10 --privileged=true \--name ${WEBOS_CONTAINER_NAME} -p ${WEBOS_PORT}:80 \-e "OsClient=iTdos" \-e "ApiBase=http://${ACCESS_IP}:${API_PORT}" \-v /etc/localtime:/etc/localtime \-v /usr/share/fonts:/usr/share/fonts \-d ${WEBOS_IMAGE}# 安裝Watchtower
WATCHTOWER_CONTAINER_NAME="microi-install-watchtower"
echo 'Microi:安裝Watchtower以自動更新API、Vue和WebOS容器'
docker pull registry.cn-hangzhou.aliyuncs.com/microios/watchtower:latest
docker run -itd --restart=always --log-opt max-size=10m --log-opt max-file=10 --privileged=true \--name ${WATCHTOWER_CONTAINER_NAME} -v /var/run/docker.sock:/var/run/docker.sock \registry.cn-hangzhou.aliyuncs.com/microios/watchtower:latest ${API_CONTAINER_NAME} ${VUE_CONTAINER_NAME} ${WEBOS_CONTAINER_NAME}# 輸出所有服務的信息
echo -e "=================================================================="
echo 'Microi:所有服務已成功安裝。'
echo 'Microi:前端傳統界面訪問地址: http://'$ACCESS_IP':'$VUE_PORT',賬號: admin,密碼: demo123456'
echo 'Microi:前端WebOS操作系統訪問地址: http://'$ACCESS_IP':'$WEBOS_PORT',賬號: admin,密碼: demo123456'
echo 'Microi:Redis: 容器名稱 microi-install-redis, 端口 '${REDIS_PORT}', 密碼: '${REDIS_PASSWORD}
echo 'Microi:MySQL: 容器名稱 microi-install-mysql56, 端口 '${MYSQL_PORT}', Root 密碼: '${MYSQL_ROOT_PASSWORD}
echo 'Microi:MongoDB: 容器名稱 microi-install-mongodb, 端口 '${MONGO_PORT}', Root 密碼: '${MONGO_ROOT_PASSWORD}
echo 'Microi:MinIO: 容器名稱 microi-install-minio, 端口 '${MINIO_PORT}', 控制臺端口 '${MINIO_CONSOLE_PORT}', Access Key: '${MINIO_ACCESS_KEY}, Secret Key: ${MINIO_SECRET_KEY}
echo 'Microi:后端microi-api接口系統: 容器名稱 '${API_CONTAINER_NAME}', 端口 '${API_PORT}', 鏡像: '${API_IMAGE}', 局域網IP: '${LAN_IP}
echo 'Microi:前端傳統界面: 容器名稱 '${VUE_CONTAINER_NAME}', 端口 '${VUE_PORT}', 鏡像: '${VUE_IMAGE}', API URL: http://'${ACCESS_IP}':'${API_PORT}
echo 'Microi:前端WebOS操作系統: 容器名稱 '${WEBOS_CONTAINER_NAME}', 端口 '${WEBOS_PORT}', 鏡像: '${WEBOS_IMAGE}', API URL: http://'${ACCESS_IP}':'${API_PORT}
echo 'Microi:Watchtower: 容器名稱 '${WATCHTOWER_CONTAINER_NAME}', 已安裝以自動更新API、Vue和WebOS容器'
echo -e "=================================================================="
3.2快速使用---打印引擎:
基礎組件包夸:
【表格/文本】:文本,鍵值文本,長文本,表格,圖片,條形碼。
【輔助/圖形】:橫線,豎線,矩形,橢圓。
拓展組件包括:
【常規單據表頭】單據類型,訂單編號,業務日期,平臺名稱,裝訂線。
【客戶】:客戶名稱,客戶電話。
?編輯
3.3快速使用---接口引擎:
接口包含的信息:
序號,名稱,Key,自定義接口地址,啟用,分布式鎖分布式鎖Key,允許匿名調用響應文件可訪問角色接口說明,參數相關附件創建時間創建人更新時間操作。
四.成功案例:
1.目前已有成功案例開發團隊客戶50家以上,而客戶基于低代碼平臺研發的系統已應用到數百家企業。
2.房地產互聯網平臺(仿貝殼)(大量的前端微服務定制)。
3.大型電器ERP(300+表,100+模塊)(大量的后端定制)。
4.多個服裝ERP(100+表,1個人1個月完成)(純低代碼平臺實現的服裝ERP系統)。
5.物聯網智能家居(億級數據量處理)、植物工廠智能硬件控制。
6.集團、國企OA系統。
7.停車場、潮汐檢測、固定資產、CRM 等等平臺。
8.四所大學實訓課程。