fix: allow local object storage deployment
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user