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-backendhivesqlite
  • --package-backendfiles3
  • --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

Libraries