fbc-starter 0.1.21

A production-ready web server starter for Rust based on Axum, with built-in configuration, logging, CORS, database and Redis support
Documentation
# ============================================
# fbc-starter 配置文件示例
# ============================================
# 复制此文件为 .env 并根据实际情况修改配置
# 配置项命名规则:使用双下划线 __ 分隔层级,例如 APP__SERVER__ADDR

# ============================================
# 服务器配置
# ============================================
# 服务器监听地址
APP__SERVER__ADDR=0.0.0.0

# 服务器端口
APP__SERVER__PORT=3000

# 工作线程数(可选,0 表示使用默认值)
# APP__SERVER__WORKERS=0

# 上下文路径(可选,例如 "/api")
# APP__SERVER__CONTEXT_PATH=/api

# ============================================
# 日志配置
# ============================================
# 日志级别:trace, debug, info, warn, error
APP__LOG__LEVEL=info

# 是否使用 JSON 格式输出日志
APP__LOG__JSON=false

# 日志时区偏移(小时,默认 8 表示东八区 UTC+8)
# 可配置值:-12 ~ 14,例如 -5 表示 UTC-5
# APP__LOG__TIMEZONE=8

# ============================================
# 文件日志配置(可选,所有字段都有默认值)
# ============================================
# 日志文件目录(默认 ./logs)
# APP__LOG__FILE__DIRECTORY=./logs

# 日志文件名前缀,最终文件名为 {filename}.log(默认 app)
# APP__LOG__FILE__FILENAME=app

# 文件日志格式:plain 或 json(默认 plain)
# APP__LOG__FILE__FORMAT=plain

# 日志滚动策略:daily(按天)或 size(按大小,默认 daily)
# APP__LOG__FILE__ROTATION=daily

# 单个日志文件大小限制(单位:MB,0 表示不限制,默认 100)
# APP__LOG__FILE__SIZE_LIMIT_MB=100

# 保留的最大日志文件数量(0 表示不限制,默认 10)
# APP__LOG__FILE__COUNT_LIMIT=10

# ============================================
# CORS 配置
# ============================================
# 允许的源(逗号分隔,* 表示允许所有)
# APP__CORS__ALLOWED_ORIGINS=*

# 允许的 HTTP 方法(逗号分隔)
# APP__CORS__ALLOWED_METHODS=GET,POST,PUT,DELETE,PATCH,OPTIONS

# 允许的请求头(逗号分隔,* 表示允许所有)
# APP__CORS__ALLOWED_HEADERS=*

# 是否允许凭证(当 allowed_origins 或 allowed_headers 为 * 时,此选项会自动设置为 false)
# APP__CORS__ALLOW_CREDENTIALS=false

# ============================================
# 数据库配置(可选,需要启用 database 特性)
# ============================================
# 数据库连接 URL
# PostgreSQL 示例: postgres://user:password@localhost:5432/dbname
# MySQL 示例: mysql://user:password@localhost:3306/dbname
# SQLite 示例: sqlite://path/to/database.db
# APP__DATABASE__URL=postgres://user:password@localhost:5432/dbname

# 最大连接数(可选,默认 100)
# APP__DATABASE__MAX_CONNECTIONS=100

# 最小连接数(可选,默认 10)
# APP__DATABASE__MIN_CONNECTIONS=10

# ============================================
# Redis 配置(可选,需要启用 redis 特性)
# ============================================
# Redis 连接 URL
# 格式: redis://[username:password@]host:port[/database]
# 示例: redis://127.0.0.1:6379
# 带密码示例: redis://:password@127.0.0.1:6379
# APP__REDIS__URL=redis://127.0.0.1:6379

# Redis 密码(可选,如果 URL 中已包含密码则不需要)
# APP__REDIS__PASSWORD=your_password

# 连接池大小(可选,默认 10)
# APP__REDIS__POOL_SIZE=10

# ============================================
# Nacos 配置(可选,需要启用 nacos 特性)
# ============================================
# Nacos 服务器地址列表(JSON 数组格式)
# 示例: ["http://127.0.0.1:8848"]
# 多个地址示例: ["http://127.0.0.1:8848","http://127.0.0.2:8848"]
# APP__NACOS__SERVER_ADDRS=["http://127.0.0.1:8848"]

# 命名空间(可选)
# APP__NACOS__NAMESPACE=

# 用户名(可选,用于认证)
# APP__NACOS__USERNAME=nacos

# 密码(可选,用于认证)
# APP__NACOS__PASSWORD=nacos

# 服务名称(用于服务注册,如果为空则使用环境变量 CARGO_PKG_NAME)
# APP__NACOS__SERVICE_NAME=my-service

# 服务组名(可选,默认为 DEFAULT_GROUP)
# APP__NACOS__GROUP_NAME=DEFAULT_GROUP

# 服务 IP(可选,默认使用服务器配置的地址)
# APP__NACOS__SERVICE_IP=127.0.0.1

# 服务端口(可选,默认使用8848端口)
# APP__NACOS__SERVICE_PORT=8848

# 健康检查路径(可选)
# APP__NACOS__HEALTH_CHECK_PATH=/health

# 元数据(可选,JSON 对象格式)
# 示例: {"version":"1.0.0","env":"production"}
# APP__NACOS__METADATA={"version":"1.0.0"}

# 订阅的服务列表(可选,用于服务发现,JSON 数组格式)
# 示例: ["service1","service2"]
# APP__NACOS__SUBSCRIBE_SERVICES=["service1","service2"]

# 订阅的配置列表(可选,用于配置管理,JSON 数组格式)
# 每个配置项包含 data_id, group, namespace(可选)
# 示例: [{"data_id":"config1","group":"DEFAULT_GROUP"},{"data_id":"config2","group":"DEFAULT_GROUP","namespace":"namespace1"}]
# APP__NACOS__SUBSCRIBE_CONFIGS=[{"data_id":"config1","group":"DEFAULT_GROUP"}]
# ============================================
# Kafka 配置(可选,需要启用 kafka 特性)
# ============================================
# Kafka 集群地址(可以是单个地址或多个地址,逗号分隔)
# 单个地址示例: localhost:9092
# 多个地址示例: 10.0.0.1:9092,10.0.0.2:9092,10.0.0.3:9092
# APP__KAFKA__BROKERS=localhost:9092

# ============================================
# Kafka 生产者配置(可选,需要启用 producer 特性)
# ============================================
# 生产者重试次数(默认 3)
# APP__KAFKA__PRODUCER__RETRIES=3

# 是否启用幂等性(默认 true)
# APP__KAFKA__PRODUCER__ENABLE_IDEMPOTENCE=true

# ACK 确认级别:all(-1), leader(1), none(0)(默认 all)
# APP__KAFKA__PRODUCER__ACKS=all

# ============================================
# Kafka 消费者配置(可选,需要启用 consumer 特性)
# ============================================
# 是否启用自动提交 offset(默认 true)
# APP__KAFKA__CONSUMER__ENABLE_AUTO_COMMIT=true