| App Store | Server Works |
|---|---|
您可以从GitHub Releases页面下载预编译的二进制文件:
-
访问 GitHub Releases 页面
-
根据您的操作系统和架构选择合适的版本下载:
- Windows (amd64)
- macOS (amd64, arm64)
- Linux (amd64, arm64, mips64, mips64le)
- FreeBSD (amd64, arm64)
-
解压下载的文件
-
创建配置文件(参考下方配置说明)
-
运行程序:
# Linux/macOS ./NoLets --config your_config.yaml # Windows NoLets.exe --config your_config.yaml
常用参数:
--addr: 服务器监听地址,默认为0.0.0.0:8080--url-prefix: 服务URL前缀,默认为/--dir: 数据存储目录,默认为./data--dsn: MySQL数据库连接字符串--debug: 启用调试模式--config, -c: 指定配置文件路径
本项目提供了以下Docker镜像地址:
- Docker Hub:
sunvc/nolet:latest - GitHub Container Registry:
ghcr.io/sunvc/nolet:latest
您可以使用以下命令拉取镜像:
# 从Docker Hub拉取
docker pull sunvc/nolet:latest
# 或从GitHub Container Registry拉取
docker pull ghcr.io/sunvc/nolet:latest
docker run -d --name NoLet-server \
-p 8080:8080 \
-v ./data:/data \
--restart=always \
ghcr.io/sunvc/nolet:latest项目根目录下的compose.yaml文件已配置好使用Docker镜像的环境:
services:
NoLetServer:
image: ghcr.io/sunvc/nolet:latest
container_name: NoLets
restart: always
ports:
- "8080:8080"
volumes:
- ./data:/data运行以下命令启动服务:
docker-compose up -d项目中的config.yaml仅作为配置文件示例,用户需要自己创建并指定配置文件进行服务配置。可以使用--config或-c参数指定配置文件路径。
system:
user: "" # 基础认证用户名
password: "" # 基础认证密码
push_password: "" # 群组推送密码
addr: "0.0.0.0:8080" # 服务器监听地址
url_prefix: "/" # 服务URL前缀
data: "./data" # 数据存储目录
name: "NoLets" # 服务名称
dsn: "" # MySQL DSN连接字符串
cert: "" # TLS证书路径
key: "" # TLS证书私钥路径
reduce_memory_usage: false # 降低内存占用(增加CPU消耗)
proxy_header: "" # HTTP头中远程IP地址来源
max_batch_push_count: -1 # 批量推送最大数量,-1表示无限制
max_apns_client_count: 1 # 最大APNs客户端连接数
max_device_key_arr_length: 10 # 最大key列表数量
concurrency: 262144 # 最大并发连接数(256 * 1024)
read_timeout: 3s # 读取超时时间
write_timeout: 3s # 写入超时时间
idle_timeout: 10s # 空闲超时时间
admins: [ ] # 管理员ID列表
debug: true # 启用调试模式
expired: 0 # 语音过期时间(秒)
icp_info: "" # ICP备案信息
time_zone: "UTC" # 时区设置
apple:
apnsPrivateKey: "" # APNs私钥内容或路径
topic: "" # APNs Topic
keyID: "" # APNs Key ID
teamID: "" # APNs Team ID
develop: false # 启用APNs开发环境服务可以通过以下三种方式配置,优先级从高到低:
- 命令行参数:启动时指定的参数,优先级最高
- 环境变量:系统环境变量,次优先级
- 配置文件:
config.yaml文件或通过--config/-c参数指定的配置文件
| 参数 | 环境变量 | 说明 | 默认值 |
|---|---|---|---|
--addr |
NOLET_SERVER_ADDRESS |
服务器监听地址 | 0.0.0.0:8080 |
--url-prefix |
NOLET_SERVER_URL_PREFIX |
服务 URL 前缀 | / |
--dir |
NOLET_SERVER_DATA_DIR |
服务器数据存储目录 | ./data |
--dsn |
NOLET_SERVER_DSN |
MySQL DSN(user:pass@tcp(host)/dbname) | |
--cert |
NOLET_SERVER_CERT |
服务器 TLS 证书 | |
--key |
NOLET_SERVER_KEY |
服务器 TLS 证书密钥 | |
--reduce-memory-usage |
NOLET_SERVER_REDUCE_MEMORY_USAGE |
降低内存使用(会增加 CPU 消耗) | false |
--user, -u |
NOLET_SERVER_BASIC_AUTH_USER |
基本认证用户名 | |
--password, -p |
NOLET_SERVER_BASIC_AUTH_PASSWORD |
基本认证密码 | |
--push-password |
NOLET_PUSH_PASSWORD |
推送认证密码 | |
--sign-key, --sk |
NOLET_SIGN_KEY |
应用签名密钥 | |
--proxy-header |
NOLET_SERVER_PROXY_HEADER |
代理头中远程 IP 地址字段 | |
--max-batch-push-count |
NOLET_SERVER_MAX_BATCH_PUSH_COUNT |
最大批量推送数量,-1 表示无限制 |
-1 |
--max-apns-client-count, --max |
NOLET_SERVER_MAX_APNS_CLIENT_COUNT |
最大 APNs 客户端连接数 | 1 |
--max-device-key-arr-length |
NOLET_CONCURRENCY |
最大设备 Key 列表长度 | 10 |
--concurrency |
NOLET_SERVER_CONCURRENCY |
最大并发连接数 | 262144 |
--read-timeout |
NOLET_SERVER_READ_TIMEOUT |
读取请求超时时间 | 3s |
--write-timeout |
NOLET_SERVER_WRITE_TIMEOUT |
响应写入超时时间 | 3s |
--idle-timeout |
NOLET_SERVER_IDLE_TIMEOUT |
Keep-Alive 空闲超时时间 | 10s |
--debug |
NOLET_DEBUG |
启用调试模式 | false |
--voice |
NOLET_VOICE |
启用语音支持 | false |
--auths |
NOLET_AUTHS |
授权 ID 列表 | |
--apns-private-key |
NOLET_APPLE_APNS_PRIVATE_KEY |
APNs 私钥路径 | 内置默认值 |
--topic |
NOLET_APPLE_TOPIC |
APNs Topic | me.uuneo.Meoworld |
--key-id |
NOLET_APPLE_KEY_ID |
APNs Key ID | BNY5GUGV38 |
--team-id |
NOLET_APPLE_TEAM_ID |
APNs Team ID | FUWV6U942Q |
--develop, --dev |
NOLET_APPLE_DEVELOP |
使用 APNs 开发环境 | false |
--Expired, --ex |
NOLET_EXPIRED_TIME |
语音过期时间(秒) | 120 |
--ICP, --icp |
NOLET_ICP_INFO |
ICP 备案信息 | |
--config, -c |
配置文件路径 | ||
--proxy-download, --dp |
NOLET_PROXY_DOWNLOAD |
启用代理下载 | false |
--export-path, --dc |
NOLET_EXPORT_PATH |
导出数据库路径 | |
--import-path, --dl |
NOLET_IMPORT_PATH |
导入数据库路径 | |
--build-test |
构建测试模式 |
-
创建自己的配置文件:
- 参考项目中的
config.yaml示例创建自己的配置文件 - 确保配置文件包含所需的配置项
- 参考项目中的
-
指定配置文件路径:
./NoLets --config /path/to/your/config.yaml # 或使用简写 ./NoLets -c /path/to/your/config.yaml -
配置文件与命令行参数混合使用:
# 配置文件中的设置会被命令行参数覆盖 ./NoLets -c /path/to/your/config.yaml --debug --addr 127.0.0.1:8080