mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-27 16:48:58 +00:00
dd7da015e3
* init rustfs config * improve code for rustfs-config crate * add * improve code for comment * fix: modify rustfs-config crate name * add default fn * improve error logger * fix: modify docker config yaml * improve code for config * feat: restrict kafka feature to Linux only - Add target-specific feature configuration in Cargo.toml for obs and event-notifier crates - Implement conditional compilation for kafka feature only on Linux systems - Add appropriate error handling for non-Linux platforms - Ensure backward compatibility with existing code * refactor(ci): optimize build workflow for better efficiency - Integrate GUI build steps into main build-rustfs job - Add conditional GUI build execution based on tag releases - Simplify workflow by removing redundant build-rustfs-gui job - Copy binary directly to embedded-rustfs directory without downloading artifacts - Update merge job dependency to only rely on build-rustfs - Improve cross-platform compatibility for Windows binary naming (.exe) - Streamline artifact uploading and OSS publishing process - Maintain consistent conditional logic for release operations * refactor(ci): optimize build workflow for better efficiency - Integrate GUI build steps into main build-rustfs job - Add conditional GUI build execution based on tag releases - Simplify workflow by removing redundant build-rustfs-gui job - Copy binary directly to embedded-rustfs directory without downloading artifacts - Update merge job dependency to only rely on build-rustfs - Improve cross-platform compatibility for Windows binary naming (.exe) - Streamline artifact uploading and OSS publishing process - Maintain consistent conditional logic for release operations * fix(ci): add repo-token to setup-protoc action for authentication - Add GITHUB_TOKEN parameter to arduino/setup-protoc@v3 action - Ensure proper authentication for Protoc installation in CI workflow - Maintain consistent setup across different CI environments * modify config * improve readme.md * remove env config relation * add allow(dead_code)
117 lines
3.4 KiB
Markdown
117 lines
3.4 KiB
Markdown
# RustFS
|
|
|
|
## English Documentation |[中文文档](README_ZH.md)
|
|
|
|
### Prerequisites
|
|
|
|
| Package | Version | Download Link |
|
|
|---------|---------|----------------------------------------------------------------------------------------------------------------------------------|
|
|
| Rust | 1.8.5+ | [rust-lang.org/tools/install](https://www.rust-lang.org/tools/install) |
|
|
| protoc | 30.2+ | [protoc-30.2-linux-x86_64.zip](https://github.com/protocolbuffers/protobuf/releases/download/v30.2/protoc-30.2-linux-x86_64.zip) |
|
|
| flatc | 24.0+ | [Linux.flatc.binary.g++-13.zip](https://github.com/google/flatbuffers/releases/download/v25.2.10/Linux.flatc.binary.g++-13.zip) |
|
|
|
|
### Building RustFS
|
|
|
|
#### Generate Protobuf Code
|
|
|
|
```bash
|
|
cargo run --bin gproto
|
|
```
|
|
|
|
#### Using Docker for Prerequisites
|
|
|
|
```yaml
|
|
- uses: arduino/setup-protoc@v3
|
|
with:
|
|
version: "30.2"
|
|
|
|
- uses: Nugine/setup-flatc@v1
|
|
with:
|
|
version: "25.2.10"
|
|
```
|
|
|
|
#### Adding Console Web UI
|
|
|
|
1. Download the latest console UI:
|
|
```bash
|
|
wget https://dl.rustfs.com/artifacts/console/rustfs-console-latest.zip
|
|
```
|
|
2. Create the static directory:
|
|
```bash
|
|
mkdir -p ./rustfs/static
|
|
```
|
|
3. Extract and compile RustFS:
|
|
```bash
|
|
unzip rustfs-console-latest.zip -d ./rustfs/static
|
|
cargo build
|
|
```
|
|
|
|
### Running RustFS
|
|
|
|
#### Configuration
|
|
|
|
Set the required environment variables:
|
|
|
|
```bash
|
|
# Basic config
|
|
export RUSTFS_VOLUMES="./target/volume/test"
|
|
export RUSTFS_ADDRESS="0.0.0.0:9000"
|
|
export RUSTFS_CONSOLE_ENABLE=true
|
|
export RUSTFS_CONSOLE_ADDRESS="0.0.0.0:9001"
|
|
|
|
# Observability config
|
|
export RUSTFS_OBS_CONFIG="./deploy/config/obs.toml"
|
|
|
|
# Event message configuration
|
|
#export RUSTFS_EVENT_CONFIG="./deploy/config/event.toml"
|
|
|
|
```
|
|
|
|
#### Start the service
|
|
|
|
```bash
|
|
./rustfs /data/rustfs
|
|
```
|
|
|
|
### Observability Stack
|
|
|
|
#### Deployment
|
|
|
|
1. Navigate to the observability directory:
|
|
```bash
|
|
cd .docker/observability
|
|
```
|
|
|
|
2. Start the observability stack:
|
|
```bash
|
|
docker compose -f docker-compose.yml up -d
|
|
```
|
|
|
|
#### Access Monitoring Dashboards
|
|
|
|
- Grafana: `http://localhost:3000` (credentials: `admin`/`admin`)
|
|
- Jaeger: `http://localhost:16686`
|
|
- Prometheus: `http://localhost:9090`
|
|
|
|
#### Configuring Observability
|
|
|
|
1. Copy the example configuration:
|
|
```bash
|
|
cd deploy/config
|
|
cp obs.toml.example obs.toml
|
|
```
|
|
|
|
2. Edit `obs.toml` with the following parameters:
|
|
|
|
| Parameter | Description | Example |
|
|
|----------------------|-----------------------------------|-----------------------|
|
|
| endpoint | OpenTelemetry Collector address | http://localhost:4317 |
|
|
| service_name | Service name | rustfs |
|
|
| service_version | Service version | 1.0.0 |
|
|
| environment | Runtime environment | production |
|
|
| meter_interval | Metrics export interval (seconds) | 30 |
|
|
| sample_ratio | Sampling ratio | 1.0 |
|
|
| use_stdout | Output to console | true/false |
|
|
| logger_level | Log level | info |
|
|
| local_logging_enable | stdout | true/false |
|