unpuber_cli
unpuber_cli 是 unpuber 私有 pub 仓库服务的命令行入口。
功能
- 启动私有 pub server(默认
0.0.0.0:4000) - 支持元数据存储后端:
hive/sqlite - 支持包文件存储后端:
file/s3
本地 CLI 运行
方式 1:直接在仓库里运行
dart pub get
dart run packages/unpuber_cli/bin/unpuber_cli.dart \
--host 0.0.0.0 \
--port 4000 \
--dir ./docker-data/unpuber
方式 2:全局激活后运行
dart pub global activate --source path ./packages/unpuber_cli
unpuber_cli --host 0.0.0.0 --port 4000 --dir ./docker-data/unpuber
常用参数
unpuber_cli --help
unpuber_cli --version
--host/-s:监听地址,默认0.0.0.0--port/-p:监听端口,默认4000--dir:本地数据目录,默认$HOME/.unpuber--meta-backend:hive或sqlite--package-backend:file或s3--proxy-origin:代理上游地址(可选)
S3 存储示例
export UNPUBER_S3_BUCKET=your-bucket
export AWS_REGION=ap-southeast-1
export AWS_ACCESS_KEY_ID=xxx
export AWS_SECRET_ACCESS_KEY=xxx
unpuber_cli --package-backend s3 --meta-backend sqlite
Docker 构建与运行
方式 1:单独构建并运行
docker build -f packages/unpuber_cli/Dockerfile -t unpuber/unpuber_cli:local .
docker run --rm -it \
-p 4000:4000 \
-v "$(pwd)/docker-data/unpuber:/data" \
unpuber/unpuber_cli:local
方式 2:使用 docker compose
docker compose up -d --build unpuber_cli
与 Dart/Flutter publish 联动
# 在发布机器上配置 token(示例地址)
dart pub token add http://localhost:4000
在待发布包的 pubspec.yaml 中设置:
publish_to: http://localhost:4000
然后执行:
dart pub publish --dry-run
dart pub publish