mirror of
https://github.com/rustfs/rustfs.git
synced 2026-01-17 09:40:32 +00:00
This commit streamlines the server configuration by unifying the S3 API and the WebUI (Console) to serve on a single port. Previously, the console was managed by separate configuration options (`RUSTFS_CONSOLE_ENABLE` and `RUSTFS_CONSOLE_ADDRESS`), requiring a distinct port. This added complexity to deployment and configuration. With this change: - The `RUSTFS_CONSOLE_ADDRESS` and `RUSTFS_CONSOLE_FS_ENDPOINT` environment variables are removed. - The WebUI is now always available and served directly from the main application port defined by `RUSTFS_ADDRESS`. - This simplifies setup, reduces the number of exposed ports, and makes the application easier to manage and deploy, especially in containerized environments. Users should update their startup scripts and remove the deprecated `RUSTFS_CONSOLE_*` variables.
115 lines
4.2 KiB
Bash
Executable File
115 lines
4.2 KiB
Bash
Executable File
#!/bin/bash -e
|
||
# Copyright 2024 RustFS Team
|
||
#
|
||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||
# you may not use this file except in compliance with the License.
|
||
# You may obtain a copy of the License at
|
||
#
|
||
# http://www.apache.org/licenses/LICENSE-2.0
|
||
#
|
||
# Unless required by applicable law or agreed to in writing, software
|
||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
# See the License for the specific language governing permissions and
|
||
# limitations under the License.
|
||
|
||
|
||
# check ./rustfs/static/index.html not exists
|
||
if [ ! -f ./rustfs/static/index.html ]; then
|
||
echo "Downloading rustfs-console-latest.zip"
|
||
# download rustfs-console-latest.zip do not show log
|
||
curl -s -L "https://dl.rustfs.com/artifacts/console/rustfs-console-latest.zip" -o tempfile.zip && unzip -q -o tempfile.zip -d ./rustfs/static && rm tempfile.zip
|
||
fi
|
||
|
||
if [ -z "$SKIP_BUILD" ]; then
|
||
cargo build -p rustfs --bins
|
||
fi
|
||
|
||
current_dir=$(pwd)
|
||
echo "Current directory: $current_dir"
|
||
|
||
# mkdir -p ./target/volume/test
|
||
mkdir -p ./target/volume/test{1..4}
|
||
|
||
|
||
if [ -z "$RUST_LOG" ]; then
|
||
export RUST_BACKTRACE=1
|
||
export RUST_LOG="rustfs=debug,ecstore=info,s3s=debug,iam=info"
|
||
fi
|
||
|
||
# export RUSTFS_ERASURE_SET_DRIVE_COUNT=5
|
||
|
||
# export RUSTFS_STORAGE_CLASS_INLINE_BLOCK="512 KB"
|
||
|
||
export RUSTFS_VOLUMES="./target/volume/test{1...4}"
|
||
# export RUSTFS_VOLUMES="./target/volume/test"
|
||
export RUSTFS_ADDRESS=":9000"
|
||
export RUSTFS_CONSOLE_ENABLE=true
|
||
export RUSTFS_CONSOLE_ADDRESS=":9001"
|
||
# export RUSTFS_SERVER_DOMAINS="localhost:9000"
|
||
# HTTPS 证书目录
|
||
# export RUSTFS_TLS_PATH="./deploy/certs"
|
||
|
||
# 可观测性 相关配置信息
|
||
export RUSTFS_OBS_ENDPOINT=http://localhost:4317 # OpenTelemetry Collector 的地址
|
||
#export RUSTFS_OBS_USE_STDOUT=false # 是否使用标准输出
|
||
#export RUSTFS_OBS_SAMPLE_RATIO=2.0 # 采样率,0.0-1.0之间,0.0表示不采样,1.0表示全部采样
|
||
#export RUSTFS_OBS_METER_INTERVAL=1 # 采样间隔,单位为秒
|
||
#export RUSTFS_OBS_SERVICE_NAME=rustfs # 服务名称
|
||
#export RUSTFS_OBS_SERVICE_VERSION=0.1.0 # 服务版本
|
||
export RUSTFS_OBS_ENVIRONMENT=develop # 环境名称
|
||
export RUSTFS_OBS_LOGGER_LEVEL=debug # 日志级别,支持 trace, debug, info, warn, error
|
||
export RUSTFS_OBS_LOCAL_LOGGING_ENABLED=true # 是否启用本地日志记录
|
||
export RUSTFS_OBS_LOG_DIRECTORY="$current_dir/deploy/logs" # Log directory
|
||
export RUSTFS_OBS_LOG_ROTATION_TIME="minute" # Log rotation time unit, can be "second", "minute", "hour", "day"
|
||
export RUSTFS_OBS_LOG_ROTATION_SIZE_MB=1 # Log rotation size in MB
|
||
|
||
#
|
||
export RUSTFS_SINKS_FILE_PATH="$current_dir/deploy/logs/rustfs.log"
|
||
export RUSTFS_SINKS_FILE_BUFFER_SIZE=12
|
||
export RUSTFS_SINKS_FILE_FLUSH_INTERVAL_MS=1000
|
||
export RUSTFS_SINKS_FILE_FLUSH_THRESHOLD=100
|
||
#
|
||
# Kafka sink 配置
|
||
#export RUSTFS_SINKS_KAFKA_BROKERS=localhost:9092
|
||
#export RUSTFS_SINKS_KAFKA_TOPIC=logs
|
||
#export RUSTFS_SINKS_KAFKA_BATCH_SIZE=100
|
||
#export RUSTFS_SINKS_KAFKA_BATCH_TIMEOUT_MS=1000
|
||
#
|
||
# Webhook sink 配置
|
||
#export RUSTFS_SINKS_WEBHOOK_ENDPOINT=http://localhost:8080/webhook
|
||
#export RUSTFS_SINKS_WEBHOOK_AUTH_TOKEN=you-auth-token
|
||
#export RUSTFS_SINKS_WEBHOOK_BATCH_SIZE=100
|
||
#export RUSTFS_SINKS_WEBHOOK_BATCH_TIMEOUT_MS=1000
|
||
#
|
||
#export RUSTFS_LOGGER_QUEUE_CAPACITY=10
|
||
|
||
export OTEL_INSTRUMENTATION_NAME="rustfs"
|
||
export OTEL_INSTRUMENTATION_VERSION="0.1.1"
|
||
export OTEL_INSTRUMENTATION_SCHEMA_URL="https://opentelemetry.io/schemas/1.31.0"
|
||
export OTEL_INSTRUMENTATION_ATTRIBUTES="env=production"
|
||
|
||
# notify
|
||
export RUSTFS_NOTIFY_WEBHOOK_ENABLE="true" # 是否启用 webhook 通知
|
||
export RUSTFS_NOTIFY_WEBHOOK_ENDPOINT="http://[::]:3020/webhook" # webhook 通知地址
|
||
export RUSTFS_NOTIFY_WEBHOOK_QUEUE_DIR="$current_dir/deploy/logs/notify"
|
||
|
||
|
||
export RUSTFS_NS_SCANNER_INTERVAL=60 # 对象扫描间隔时间,单位为秒
|
||
# exportRUSTFS_SKIP_BACKGROUND_TASK=true
|
||
|
||
export RUSTFS_COMPRESSION_ENABLED=true # 是否启用压缩
|
||
|
||
#export RUSTFS_REGION="us-east-1"
|
||
|
||
# 事件消息配置
|
||
#export RUSTFS_EVENT_CONFIG="./deploy/config/event.example.toml"
|
||
|
||
if [ -n "$1" ]; then
|
||
export RUSTFS_VOLUMES="$1"
|
||
fi
|
||
|
||
# 启动 webhook 服务器
|
||
#cargo run --example webhook -p rustfs-notify &
|
||
# 启动主服务
|
||
cargo run --bin rustfs |