fix: allow local object storage deployment
This commit is contained in:
@@ -30,6 +30,8 @@ BRANCH=main
|
|||||||
PUBLIC_HTTP_PORT=12026
|
PUBLIC_HTTP_PORT=12026
|
||||||
API_PORT=3000
|
API_PORT=3000
|
||||||
GATEWAY_CMPP_ADDR=0.0.0.0:17890
|
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_EMAIL=admin@example.com
|
||||||
PROD_ADMIN_USERNAME=prod_admin
|
PROD_ADMIN_USERNAME=prod_admin
|
||||||
PROD_ADMIN_PASSWORD='change-me'
|
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。
|
脚本会安装 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
|
```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_USER="${MINIO_ROOT_USER:-cmpp_minio}"
|
||||||
MINIO_ROOT_PASSWORD="${MINIO_ROOT_PASSWORD:-$(openssl rand -base64 32 | tr -d '\n')}"
|
MINIO_ROOT_PASSWORD="${MINIO_ROOT_PASSWORD:-$(openssl rand -base64 32 | tr -d '\n')}"
|
||||||
MINIO_BUCKET="${MINIO_BUCKET:-cmpp-platform}"
|
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_EMAIL="${PROD_ADMIN_EMAIL:-admin@example.com}"
|
||||||
PROD_ADMIN_USERNAME="${PROD_ADMIN_USERNAME:-prod_admin}"
|
PROD_ADMIN_USERNAME="${PROD_ADMIN_USERNAME:-prod_admin}"
|
||||||
PROD_ADMIN_PASSWORD="${PROD_ADMIN_PASSWORD:-$(openssl rand -base64 18 | tr -d '\n')}"
|
PROD_ADMIN_PASSWORD="${PROD_ADMIN_PASSWORD:-$(openssl rand -base64 18 | tr -d '\n')}"
|
||||||
@@ -100,6 +102,11 @@ install_go() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
install_minio() {
|
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
|
local arch
|
||||||
case "$(uname -m)" in
|
case "$(uname -m)" in
|
||||||
x86_64|amd64) arch="amd64" ;;
|
x86_64|amd64) arch="amd64" ;;
|
||||||
@@ -140,7 +147,7 @@ SQL
|
|||||||
|
|
||||||
write_env() {
|
write_env() {
|
||||||
log "Writing production environment"
|
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
|
cat >/etc/cmpp-platform/cmpp-platform.env <<EOF
|
||||||
NODE_ENV=production
|
NODE_ENV=production
|
||||||
API_PORT=${API_PORT}
|
API_PORT=${API_PORT}
|
||||||
@@ -151,7 +158,8 @@ MINIO_ENDPOINT=127.0.0.1:9000
|
|||||||
MINIO_ACCESS_KEY=${MINIO_ROOT_USER}
|
MINIO_ACCESS_KEY=${MINIO_ROOT_USER}
|
||||||
MINIO_SECRET_KEY=${MINIO_ROOT_PASSWORD}
|
MINIO_SECRET_KEY=${MINIO_ROOT_PASSWORD}
|
||||||
MINIO_BUCKET=${MINIO_BUCKET}
|
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_CONTROL_URL=http://127.0.0.1:8090
|
||||||
GATEWAY_HEALTH_ADDR=${GATEWAY_CONTROL_ADDR}
|
GATEWAY_HEALTH_ADDR=${GATEWAY_CONTROL_ADDR}
|
||||||
GATEWAY_CMPP_ADDR=${GATEWAY_CMPP_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}
|
database=postgresql://${DB_USER}:***@127.0.0.1:5432/${DB_NAME}
|
||||||
minio_user=${MINIO_ROOT_USER}
|
minio_user=${MINIO_ROOT_USER}
|
||||||
minio_password=${MINIO_ROOT_PASSWORD}
|
minio_password=${MINIO_ROOT_PASSWORD}
|
||||||
|
object_storage_driver=${OBJECT_STORAGE_DRIVER}
|
||||||
EOF
|
EOF
|
||||||
chmod 600 /root/cmpp-platform-credentials.txt
|
chmod 600 /root/cmpp-platform-credentials.txt
|
||||||
|
|
||||||
|
|||||||
@@ -40,8 +40,14 @@ chmod 600 "$ADMIN_CREDENTIAL_FILE" || true
|
|||||||
|
|
||||||
echo "[deploy] Restarting services"
|
echo "[deploy] Restarting services"
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
systemctl enable --now cmpp-minio cmpp-api cmpp-gateway nginx
|
if [[ "${OBJECT_STORAGE_DRIVER:-minio}" == "local" ]]; then
|
||||||
systemctl restart cmpp-minio
|
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-api
|
||||||
systemctl restart cmpp-gateway
|
systemctl restart cmpp-gateway
|
||||||
systemctl restart nginx
|
systemctl restart nginx
|
||||||
|
|||||||
Reference in New Issue
Block a user