Linux 服務部署手冊
1. 概述
1.1 部署方案
嘟哩私有化部署基於 Docker 構建,每個服務都會打包為獨立鏡像。
在線部署時,可通過一行命令自動下載依賴並完成安裝。
離線部署時,可先下載鏡像包後再按客戶環境配置並初始化資料。
1.2 部署方式
| 名稱 | 描述 |
|---|---|
| 本地部署 | 客戶自行購買伺服器,並架設到企業自己的機房中。 |
| 雲部署 | 客戶在雲計算服務提供方購買伺服器。 |
1.3 部署架構
| 名稱 | 描述 | 用戶規模(參考值) | 伺服器數量 |
|---|---|---|---|
| 單節點部署 | 一般部署到一台實體伺服器上 | 0-200 人 | 1 台 |
| 分離式部署 | 內外網分離:消息服務、雲盤服務、郵箱服務分開部署 | 100-999 人 | 3 台 |
2. 環境準備
2.1 伺服器配置
2.1.1 體驗版配置
| 用戶數 | CPU | 記憶體 | 硬碟 |
|---|---|---|---|
| 100 人以內 | 4 核 | 12G | 60GB |
2.1.2 正式版配置
| 用戶數 | CPU | 記憶體 | 硬碟 |
|---|---|---|---|
| 0-200 | 24 核+ | 64G+ | 1TB+ |
2.2 作業系統及軟體
| 名稱 | 版本 | 備註 |
|---|---|---|
| 作業系統 | CentOS 7.9 | 建議使用純淨作業系統,否則可能導致端口無法正常啟動,安裝腳本異常結束。 |
2.3 網路環境及要求
| 名稱 | 端口 | 備註 |
|---|---|---|
| 代理端口/項目端口/服務端口 | 3306、9001-9018、10001-10002、8085/18085、12321-12322、19001-19018 | 1. 本機防火牆需放行以上端口。 2. 如需手機等設備外網訪問,請按 TCP 進行端口映射。 3. 使用雲伺服器時,請同時放行安全組規則。 4. - 表示端口範圍,/ 表示並列端口。5. 19001-19018 僅用於內網訪問時可不開放公網。 |
3. 安裝部署
採用 Docker 方式安裝部署。Linux 下執行一鍵部署命令,預計 12 分鐘完成。
3.1 Docker 安裝
嘟哩安裝腳本會自動安裝 Docker。若對 Docker 版本有特殊要求,可自行按 Docker 官方文檔安裝。
3.2 服務安裝
準備工作完成後,先檢查基礎環境。部署方式分為在線部署與離線部署。
| 名稱 | 描述 | 備註 |
|---|---|---|
| 在線部署方式 | 通過腳本從外網下載服務端安裝包,並在腳本內自動配置與部署。 | 1. 外網可達。 2. Yum 源可用。 3. 無端口衝突。 |
3.2.1 檢查安裝環境
# 系統檢查
cat /etc/redhat-release
# 記憶體檢查
free -m
# CPU 檢查
cat /proc/cpuinfo | awk '/processor/' | wc -l
# 硬碟檢查
df -h
3.2.2 單節點部署
一行命令自動下載依賴並完成安裝:
cd /opt/ && echo yes | /bin/bash -c "$(curl -fsSL https://download.duliduli.com/download/Linux/main/v1.0.1/install.sh )"開始初始化系統參數:

開始部署單節點所需服務與項目:

腳本安裝過程中會自動下載服務端安裝包:


安裝包下載後,腳本會安裝 Docker 並分配 Docker 虛擬 IP,然後連接鏡像倉庫:

Docker 安裝完成後會拉取服務容器(鏡像較大,請耐心等待):


相關鏡像拉取完成後,會優先啟動服務鏡像並初始化 MySQL 資料庫:

隨後繼續拉取服務端鏡像:



安裝完成後終端會輸出嘟哩相關地址:

查看容器(docker ps):

登入管理後台後,按流程申請授權並啟用服務。
3.2.3 卸載重裝
# 刪除 Docker 容器資源。
# 若存在嘟哩容器外的容器,請手動辨識,避免誤刪。
# 注意:重裝命令會清理歷史嘟哩資料,請確認後再執行。
docker stop $(docker ps | egrep -i duli | awk '{print $NF}')
docker rm -f $(docker ps -aq)
docker rmi -f $(docker images | egrep -i duli | awk '{print $3}')
docker network ls | egrep compose | awk '{print $1}' | xargs docker network rm
rm -rf /opt/dldl-installer-*
rm -f ~/quick-install.sh
clear
cd /opt/ && echo yes | /bin/bash -c "$(curl -fsSL https://download.duliduli.com/download/Linux/main/v1.0.1/install.sh )"3.3 版本更新
3.3.1 單節點更新
# 進入腳本根目錄
cd /opt/dldl-installer-v1.0.1
# 執行更新命令
sh quick-install.sh update腳本會自動獲取官方版本號並提示,輸入目標版本後按 Enter 即可自動更新。




更新後可看到版本已升級到目標版本(示例:v1.0.2)。

3.4 服務與鏡像
安裝完成後會有以下服務:
| 容器名 | 容器鏡像 | 說明 |
|---|---|---|
| DuliApache | 192.168.168.241/duliimages/duliapache | 代理服務 |
| DuliMysql | 192.168.168.241/duliimages/dulimysql | 資料庫 |
| DuliRedis | 192.168.168.241/duliimages/duliredis | 快取服務 |
| DuliHBase | 192.168.168.241/duliimages/dulihbase | 消息資料庫 |
| DuliGoFast | 192.168.168.241/duliimages/duligofast | 文件服務 |
| Duli | 192.168.168.241/duliimages/duli | 入口、消息、後台、認證服務 |
| DuliWpp | 192.168.168.241/duliimages/duliwpp | 雲盤服務 |
| DuliMail | 192.168.168.241/duliimages/dulimail | 郵箱服務 |
| DuliMgmt | 192.168.168.241/duliimages/dulimgmt | 工作流服務 |
| DuliYjs | 192.168.168.241/duliimages/duliyjs | 文件協同服務 |
鏡像版本可能與示例不同。
3.4.1 服務管理
docker [start|stop|restart] 容器名3.4.2 服務日誌
docker logs -f 容器名| 類型 | 服務名稱 | 標識名 | 當天日誌 | 歷史日誌 |
|---|---|---|---|---|
| 安裝腳本 | 安裝腳本 | 安裝腳本 | /var/log/duliduli/duliduli.log | - |
| 嘟哩項目 | 雲盤服務 | DuliWpp | logs/DuliWpp/DuliWpp.out | logs/DuliWpp/DuliWpp.out-20240715.gz |
| 嘟哩項目 | 郵箱服務 | DuliMail | logs/DuliMail/DuliMail.out | logs/DuliMail/DuliMail.out-20240715.gz |
| 嘟哩項目 | 工作流服務 | DuliMgmt | logs/DuliMgmt/DuliMgmt.out | logs/DuliMgmt/DuliMgmt.out-20240715.gz |
| 嘟哩項目 | 消息服務 | DuliFront | logs/DuliFront/DuliFront.out | logs/DuliFront/DuliFront.out-20240715.gz |
| 嘟哩項目 | 後台服務 | DuliBackend | logs/DuliBackend/DuliBackend.out | logs/DuliBackend/DuliBackend.out-20240715.gz |
| 嘟哩項目 | 入口服務 | DuliRoute | logs/DuliRoute/DuliRoute.log | logs/DuliRoute/7z/2024-07/2024-07-13-1.DuliRoute.gz |
| 嘟哩項目 | 認證服務 | DuliAuth | logs/DuliAuth/DuliAuth.out | logs/DuliAuth/DuliAuth.out-20240715.gz |
| 服務 | 代理服務 | DuliApache | logs/DuliApache/access.log | logs/DuliApache/log/access.log-20240714.gz 等 |
| 服務 | 資料庫 | DuliMysql | logs/DuliMysql/logs/mysqld.log | - |
| 服務 | 消息資料庫 | DuliHBase | logs/DuliHBase/hbase-root-master-hbase-server.log | - |
| 服務 | 文件服務 | DuliGoFast | logs/DuliGoFast/log/fileserver.log | - |
3.4.3 端口資訊
| 類型 | 服務端 | 服務/項目 | 代理端口 | 項目端口 |
|---|---|---|---|---|
| 嘟哩代理 | 代理服務 | DuliApache | 80/443 | 80/443 |
| 嘟哩資料庫 | 資料庫 | DuliMysql | 3306 | 3306 |
| 嘟哩資料庫 | 快取服務 | DuliRedis | 7001-7006 | 7001-7006 |
| 嘟哩資料庫 | 消息資料庫 | DuliZookeeper | 2181 | 2181 |
| 嘟哩資料庫 | 消息資料庫 | DuliHadoop | 50010 | 50010 |
| 嘟哩資料庫 | 消息資料庫 | DuliHBase | 16010 | 16010 |
| 嘟哩文件服務 | 文件服務 | DuliGoFast | 19001 | 9001 |
| 嘟哩 | 入口服務 | DuliRoute | 19002 | 9002 |
| 嘟哩 | 消息服務 | DuliFront | 19003 | 9003 |
| 嘟哩 | 後台服務 | DuliBackend | 19005 | 9005 |
| 嘟哩 | 認證服務 | DuliAuth | 19006 | 9006 |
| 嘟哩 | DuliRoute Socket | streamPort Socket | 29002 | 9002 |
| 嘟哩 | DuliFront Socket | wsPort Socket | 19009 | 9009 |
| 嘟哩 | DuliFront Socket | nettyPort Socket | 19010 | 9010 |
| 嘟哩 | DuliFront Socket | androidPort Socket | 19011 | 9011 |
| 嘟哩 | DuliFront Socket | natcrossPort WsSocket | 19012 | 9012 |
| 嘟哩 | DuliFront Socket | natcrossTransferPort WsSocket | 19015 | 9015 |
| 嘟哩網盤 | 雲盤服務 | ClooudDisk | 19014 | 9014 |
| 嘟哩網盤 | 雲盤服務 | Disk Socket | 29014 | 9014 |
| 嘟哩網盤 | 雲盤服務 | uploadPort | 19004 | 9004 |
| 嘟哩在線協作 | 文件協同服務 | yjs | 12234 | 2234 |
| 嘟哩郵箱 | 郵箱服務 | DuliMail | 19017 | 9017 |
| 嘟哩工作流 | 工作流服務 | DuliMgmt | 19018 | 9018 |
| 嘟哩在線預覽 | 在線預覽服務 | openoffice | 18085 | 8085 |
3.5 資料維護
所有服務資料映射在本機 /app 目錄(安裝目錄內)下。
| 目錄 | 說明 |
|---|---|
/opt/dldl-installer-v1.0.1 | 服務安裝根路徑 |
quick-install.sh | 服務端管理主腳本 |
soft | 服務端安裝壓縮包 |
scripts | 子腳本 |
conf | 地址、端口、資料庫配置參數 |
compose | 項目、服務 compose 啟動文件 |
log | 項目、服務日誌存放目錄 |
data | 項目、服務資料存放目錄 |
data/DuliDataBackup | HBase、Hadoop 備份路徑 |
data/DuliApache/cert | SSL 證書路徑 |
3.5.1 HBase 維護
docker exec -it DuliHBase sh -c "hbase shell"示例:查看 HBase 表
docker exec -it DuliHBase sh -c "echo 'list' | hbase shell"資料備份腳本:
# 快照備份 1 天資料
docker exec -it DuliHBase sh -c 'sh /opt/hbase_backup.sh SnapExport 1'
# 實體備份 1 天資料
docker exec -it DuliHBase sh -c 'sh /opt/hbase_backup.sh Export 1'3.5.2 MySQL 維護
docker exec -ti DuliMysql sh -c 'mysql -h${MysqlAddress} -uroot -P${MysqlPort}'
手動備份:
docker exec -ti DuliMysql sh -c 'mysqldump -uroot -h"$MysqlAddress" -P"$MysqlPort" --all-databases -ER' > /路徑/備份文件
腳本備份:
# 進入嘟哩安裝目錄
cd /opt/dldl-installer-v1.0.1
# 載入環境變數
. quick-install.sh
# 執行備份腳本
sh scripts/mysql.sh Export
4. 域名配置
4.1 HTTPS 協議變更
4.1.1 環境準備
| 域名(單個) | 證書文件 | 私鑰文件 |
|---|---|---|
| 一級/二級域名 | CRT 或 PEM 格式 | KEY 格式 |
示例配置:
| 域名 | 證書文件 | 私鑰文件 |
|---|---|---|
example.com | cert.crt | cert.key |
4.1.2 SSL 配置修改
修改協議前請先備份相關文件,避免配置失誤導致服務不可用。
進入安裝目錄:
cd /opt/dldl-installer-v1.0.1上傳證書:
# 可使用 sftp 上傳證書,或使用 rz 命令
# 安裝 rz:
yum install -y lrzsz
# 拷貝證書到 nginx 的 cert 目錄
cp cert.crt cert.key data/DuliApache/cert/執行 HTTPS 啟用腳本:
sh scripts/enable_nginx_https.sh
選擇啟用 HTTPS(輸入 1):

輸入準備好的域名:

5. 開始體驗
5.1 訪問管理後台
https://example.com:9005/html/login.html
5.2 授權啟用
嘟哩官網註冊並完成企業認證後,可獲取免費版 License 文件。
購買企業版或 VIP 版後,按機器碼獲取 License 文件並導入。

導入 License 需聯網校驗,請確保可訪問
duliduli.com域名。
6. 客戶端下載
嘟哩支持 Mac、Windows、iOS、Android 四大平台客戶端。
可從官網下載安裝包(Android 與 iOS 建議從應用商店搜尋「嘟哩」安裝)。
- 複製
嘟哩管理地址.txt中的 IP 與端口(如配置域名外網訪問則填寫域名與端口),並配置到客戶端。

- 同意協議後點擊登入(帳號可在管理後台建立;若已對接短訊服務,也可在客戶端自行註冊)。

登入完成後即可使用嘟哩。
7. 常用命令
7.1 容器與鏡像查看
docker ps
docker images7.2 容器啟停
docker start ImagesName
# 或
sh quick-install.sh start ImagesNamedocker stop ImagesName
# 或
sh quick-install.sh stop ImagesNamedocker restart ImagesName
# 或
sh quick-install.sh restart ImagesName7.3 重載服務配置
. quick-install.sh
docker-compose -f compose/docker-compose-service.yml create ServerName
# 或
sh quick-install.sh create ImagesName7.4 配置變更示例
# 1. 進入安裝根目錄
cd /opt/dldl-installer-v1.0.1
# 2. 獲取環境變數
. quick-install.sh
# 3. 編輯 compose 文件
vim compose/docker-compose-service.yml
# 4. 添加配置參數
# 例如:為代理服務增加 9004:9004 端口映射
# 5. 重載代理服務配置
docker-compose -f compose/docker-compose-service.yml create DuliApache
# 或
sh quick-install.sh create DuliApache
# 6. 重新啟動該服務
docker restart DuliApache
# 或
sh quick-install.sh restart DuliApache7.5 進入常用服務
進入 HBase:
. quick-install.sh
docker exec -it DuliHBase sh -c "hbase shell"進入 Redis:
. quick-install.sh
docker exec -it DuliRedis sh -c "redis-cli -h \"$RedisAddress\" -a \"$REDIS_PASSWORD\" -p 7001"