fix: allow local object storage deployment

This commit is contained in:
hectorzhao
2026-07-07 15:17:26 +08:00
parent 994dadb84e
commit 5a856e0b84
3 changed files with 23 additions and 4 deletions
+4
View File
@@ -30,6 +30,8 @@ BRANCH=main
PUBLIC_HTTP_PORT=12026
API_PORT=3000
GATEWAY_CMPP_ADDR=0.0.0.0:17890
OBJECT_STORAGE_DRIVER=minio
OBJECT_STORAGE_LOCAL_ROOT=/var/lib/cmpp-platform/object-storage
PROD_ADMIN_EMAIL=admin@example.com
PROD_ADMIN_USERNAME=prod_admin
PROD_ADMIN_PASSWORD='change-me'
@@ -37,6 +39,8 @@ PROD_ADMIN_PASSWORD='change-me'
脚本会安装 Node.js、Go、PostgreSQL、Redis、MinIO、Nginx,创建 systemd 服务,执行 Prisma migrate,构建前端/API/Gateway,并创建平台管理员。Node.js、Go 和 MinIO 下载会按服务器架构自动选择 x64/amd64 或 arm64。
如生产验证服务器临时无法稳定下载 MinIO,可显式传入 `OBJECT_STORAGE_DRIVER=local`,文件会通过真实 API 保存到服务器本地目录 `OBJECT_STORAGE_LOCAL_ROOT``cmpp-minio` 服务会跳过安装和启动。该模式只建议用于验证环境;正式生产建议恢复 `OBJECT_STORAGE_DRIVER=minio`
## 后续发布
```bash
+11 -2
View File
@@ -14,6 +14,8 @@ DB_PASSWORD="${DB_PASSWORD:-$(openssl rand -base64 24 | tr -d '\n')}"
MINIO_ROOT_USER="${MINIO_ROOT_USER:-cmpp_minio}"
MINIO_ROOT_PASSWORD="${MINIO_ROOT_PASSWORD:-$(openssl rand -base64 32 | tr -d '\n')}"
MINIO_BUCKET="${MINIO_BUCKET:-cmpp-platform}"
OBJECT_STORAGE_DRIVER="${OBJECT_STORAGE_DRIVER:-minio}"
OBJECT_STORAGE_LOCAL_ROOT="${OBJECT_STORAGE_LOCAL_ROOT:-/var/lib/cmpp-platform/object-storage}"
PROD_ADMIN_EMAIL="${PROD_ADMIN_EMAIL:-admin@example.com}"
PROD_ADMIN_USERNAME="${PROD_ADMIN_USERNAME:-prod_admin}"
PROD_ADMIN_PASSWORD="${PROD_ADMIN_PASSWORD:-$(openssl rand -base64 18 | tr -d '\n')}"
@@ -100,6 +102,11 @@ install_go() {
}
install_minio() {
if [[ "$OBJECT_STORAGE_DRIVER" == "local" ]]; then
log "Skipping MinIO install because OBJECT_STORAGE_DRIVER=local"
mkdir -p "$OBJECT_STORAGE_LOCAL_ROOT"
return
fi
local arch
case "$(uname -m)" in
x86_64|amd64) arch="amd64" ;;
@@ -140,7 +147,7 @@ SQL
write_env() {
log "Writing production environment"
mkdir -p /etc/cmpp-platform "$APP_DIR" "$APP_DIR/logs/api" "$APP_DIR/logs/gateway" "$APP_DIR/backups"
mkdir -p /etc/cmpp-platform "$APP_DIR" "$APP_DIR/logs/api" "$APP_DIR/logs/gateway" "$APP_DIR/backups" "$OBJECT_STORAGE_LOCAL_ROOT"
cat >/etc/cmpp-platform/cmpp-platform.env <<EOF
NODE_ENV=production
API_PORT=${API_PORT}
@@ -151,7 +158,8 @@ MINIO_ENDPOINT=127.0.0.1:9000
MINIO_ACCESS_KEY=${MINIO_ROOT_USER}
MINIO_SECRET_KEY=${MINIO_ROOT_PASSWORD}
MINIO_BUCKET=${MINIO_BUCKET}
OBJECT_STORAGE_DRIVER=minio
OBJECT_STORAGE_DRIVER=${OBJECT_STORAGE_DRIVER}
OBJECT_STORAGE_LOCAL_ROOT=${OBJECT_STORAGE_LOCAL_ROOT}
GATEWAY_CONTROL_URL=http://127.0.0.1:8090
GATEWAY_HEALTH_ADDR=${GATEWAY_CONTROL_ADDR}
GATEWAY_CMPP_ADDR=${GATEWAY_CMPP_ADDR}
@@ -285,6 +293,7 @@ admin_password=${PROD_ADMIN_PASSWORD}
database=postgresql://${DB_USER}:***@127.0.0.1:5432/${DB_NAME}
minio_user=${MINIO_ROOT_USER}
minio_password=${MINIO_ROOT_PASSWORD}
object_storage_driver=${OBJECT_STORAGE_DRIVER}
EOF
chmod 600 /root/cmpp-platform-credentials.txt
+8 -2
View File
@@ -40,8 +40,14 @@ chmod 600 "$ADMIN_CREDENTIAL_FILE" || true
echo "[deploy] Restarting services"
systemctl daemon-reload
systemctl enable --now cmpp-minio cmpp-api cmpp-gateway nginx
systemctl restart cmpp-minio
if [[ "${OBJECT_STORAGE_DRIVER:-minio}" == "local" ]]; then
systemctl disable --now cmpp-minio 2>/dev/null || true
systemctl enable --now cmpp-api cmpp-gateway nginx
else
systemctl enable --now cmpp-minio
systemctl restart cmpp-minio
systemctl enable --now cmpp-api cmpp-gateway nginx
fi
systemctl restart cmpp-api
systemctl restart cmpp-gateway
systemctl restart nginx