← ShimoDocs Suite Deployment Documentation
1. Prepare Resources Based on Scenarios
| Use Scenario | Recommended Deployment | Resource Preparation |
|---|---|---|
| Lightweight small team, PoC demonstration, feature validation | Single-server deployment | 1 server |
| Official launch, long-term operation, requiring high availability or future expansion | High-availability cluster | 3 or more servers |
- Single-server deployment is suitable for quick validation and small-scale use.
- Cluster deployment is suitable for official launch, long-term operation, and future expansion.
2. Operating System Requirements
| Operating System | Supported Versions | Supported Architecture |
|---|---|---|
| Ubuntu | 22.04, 24.04 | x86 |
Execute on each server:
cat /etc/os-release
uname -m
Confirmation Result:
- The operating system is Ubuntu 22.04 or Ubuntu 24.04.
- The CPU architecture is x86.
- The installation account is
root, or has equivalent system administration privileges.
Note: Reasons why CentOS systems are no longer supported
- CentOS Linux 7 and 8 have reached the end of their life cycle. CentOS officially no longer provides CentOS 9 and later versions, nor does it accept new security updates, vulnerability fixes, or patches.
- The basic system components cannot receive security patches long-term, potentially leaving vulnerabilities exposed and unfixable, which does not meet the security requirements of a production environment.
- The kernel, glibc, OpenSSL, and other core components in CentOS 7/8 are relatively old and cannot meet the requirements of new runtimes and dependent libraries. Kubernetes
- The version positioning and update mechanism of CentOS Stream are different from traditional CentOS Linux. CentOS Stream environments that have not undergone special compatibility testing are also not officially supported.
3. Server Configuration Requirements
3.1 Single Node Deployment
- Suitable for small teams, fewer than 200 people.
- PoC, demonstration, and feature verification scenarios can be prepared based on single-node resources.
| Item | Requirement |
|---|---|
| Number of servers | 1 |
| CPU | 16 cores or more |
| Memory | 32 GB or more |
| System Disk | Root directory / partition 100 GB or more |
| Data Disk | Separate installation /data, available space 300 GB or more, expandable |
3.2 Cluster Deployment
For scenarios requiring formal deployment, long-term operation, high availability, or future expansion, please prepare resources according to the cluster requirements.
| Item | Requirement |
|---|---|
| Number of servers | 3 or more |
| Recommended role | 3 master N worker |
| CPU per node | 16 cores or more |
| Memory per node | 32 GB or more |
| System disk per node | Root directory / partition 100 GB or more |
| Data disk per node | Separate installation /data, available space 300 GB or more, supports expansion |
Partition description:
- The root partition should reserve at least 100 GB.
/partition. - It is recommended to place it under the root partitions of
/root,/var,/tmpfor unified management. - It is recommended to use a separate data disk for the data directory, mounted at
/data.
4. Server Self-Check Command
Execute on each server:
# ============================================
# 1. View CPU architecture and core information
# - Architecture type (x86_64/aarch64)
# ============================================
lscpu
# ============================================
# 2. Display memory and swap usage in GiB
# ============================================
free -g
# ============================================
# 3. File System Disk Space Usage
# ============================================
df -h
# ============================================
# 4. Find the executable file path
# ============================================
which iptables gzip tar
# ============================================
# 5. Display system time, time zone, and NTP synchronization status
# Distributed clusters must have strict time synchronization, otherwise it will affect authentication and log sequencing.
# ============================================
timedatectl status
Checklist:
| Check Item | Passing Criteria |
|---|---|
| CPU | 16 cores or more |
| Memory | 32 GB or more |
| System Disk | Root directory / partition available space 100 GB or more |
| Data Disk | /data mounted, available space 300 GB or more |
| Basic Commands | iptables, gzip, tar can be found |
| Time Synchronization | System time synchronized correctly |
5. Browser Requirements
| Browser | Version Requirement |
|---|---|
| Chrome | 86 or above |
| Safari | 11 or above |
| Firefox | 102 or above |
| Edge | 84 or above |
It is recommended to use the latest Chrome or Edge to access the installer and ShimoDocs Suite.
6. Middleware Requirements
| Component | Version Requirement |
|---|---|
| Elasticsearch | 8.18.x |
| MongoDB | 4.4.x |
| Redis | 6.2.x |
| MySQL | 8.0 |
| Dameng | V8 03134284194-20240920-243574-20108 |
| Kafka | 2.7 to 3.5 |
| Object Storage | Compatible with the S3 protocol<br> and ensure that its Endpoint address can be directly accessed by client browsers from the public network (because ShimoDocs application’s static resource loading and document read/write operations must be completed through a direct connection between the browser and the object storage). |
Object storage can be Huawei Cloud OBS, Alibaba Cloud OSS, Tencent Cloud COS, or AWS S3. For local deployment, MinIO can be considered.
If using the middleware provided by the installer, continue using the default options on the installation page. If using existing external middleware, prepare the address, port, account PASSWORD, DATABASE_NAME, or bucket name before installation.
7. Port Requirements
Before deployment, ensure that the server, security group, firewall, load balancer, and network policies have allowed the following ports.
| Port | Target | Purpose |
|---|---|---|
18080/TCP |
Installer Web UI | Access installation page |
80/TCP or 443/TCP |
ShimoDocs Service_DOMAIN | User access entry |
22/TCP |
All deployment nodes | SSH login and installation task assignment |
3306/TCP |
MySQL | Database connection |
6379/TCP |
Redis | Cache connection |
27017/TCP |
MongoDB | Document database connection |
9092/TCP |
Kafka | Message queue connection |
9200/TCP |
Elasticsearch | Search service connection |
| By Service Port | S3 / OBS / OSS / COS / MinIO | Object Storage Connection |
8. Disk IO Requirements
It is recommended to use SSDs for data disks. Disk performance should meet the following standards:
| Item | Requirement |
|---|---|
| Mixed Read/Write IOPS | Above 5000 |
| Sequential Read/Write Throughput | Above 150 MB/s |
| Average Latency | About 5 milliseconds or lower |
After installation fio, you can do it in /data.
8.1 Mixed Read/Write Test
fio --name=randrw-test \
--filename=/data/testfile \
--size=20G \
--rw=randrw \
--rwmixread=70 \
--bs=4k \
--ioengine=libaio \
--direct=1 \
--iodepth=32 \
--numjobs=4 \
--runtime=300 \
--time_based \
--group_reporting
Pay attention to the IOPS in the results; mixed read/write IOPS should reach above 5000 to continue.
8.2 Sequential Read Test
fio --name=seqread-test \
--filename=/data/testfile \
--size=20G \
--rw=read \
--bs=1M \
--ioengine=libaio \
--direct=1 \
--iodepth=32 \
--numjobs=1 \
--runtime=300 \
--time_based \
--group_reporting
8.3 Sequential Write Test
fio --name=seqwrite-test \
--filename=/data/testfile \
--size=20G \
--rw=write \
--bs=1M \
--ioengine=libaio \
--direct=1 \
--iodepth=32 \
--numjobs=1 \
--runtime=300 \
--time_based \
--group_reporting
Sequential read and sequential write throughput reaching over 150 MB/s can continue.
Test files can be deleted after the test is completed:
rm -f /data/testfile
9. Public Network Bandwidth Requirements
Estimate the bandwidth for public network access scenarios based on the number of users:
PUBLIC_NETWORK_BANDWIDTH = NUMBER_OF_USERS x 0.25 Mbps
Example:
| Number of Users | Recommended Public Network Bandwidth |
|---|---|
| 100 users | Over 25 Mbps |
| 200 users | Over 50 Mbps |
| 500 users | Over 125 Mbps |
For intranet access scenarios, it is also recommended to use the same standards to evaluate outbound, inbound, and load balancing bandwidth.
10. Installer and Operation & Maintenance Platform Browser Version Recommendation
It is recommended to use Google Chrome version 111 or above, preferably the latest stable version.
11. Pre-Deployment Checklist
Before starting the installation, please confirm each item:
- The operating system version meets the requirements.
- CPU memory, system disk, and data disk meet the requirements.
/datais mounted to a separate data disk.iptables,gzip, andtarare installed.- System time synchronization is normal.
- The online or offline installation method has been determined.
- Installer port
18080is accessible. - Business access port
80or443is open. - If external middleware is used, connection information is fully prepared.
- Object storage is compatible with the S3 protocol, and bucket and account permissions are ready.
- Data disk IO testing meets the requirements.
- Public or internal network bandwidth meets the expected number of users.