2 个不稳定版本
新 0.3.0 | 2024 年 8 月 26 日 |
---|---|
0.2.1 | 2024 年 8 月 26 日 |
#28 在 缓存
每月 190 下载量
62KB
920 行
turbo-repo-remote-cache-rs
用 Rust 编写的快速 turbo 远程缓存服务器。
如果你在使用 turbo 并且想要有一个自托管的远程缓存服务器,这个就是为你准备的。
- 它非常快 ⚡️。
- 它支持多个对象存储提供商(S3、GCP、Azure 和文件)。
安装
- 使用 Cargo(Linux/macOS/Windows)
cargo install turbo-remote-cache-rs
- 使用 Npm(Linux/macOS/Windows)
npm install -g turbo-remote-cache-rs
- 从 发布页面 下载最新版本的二进制文件
用法
- 将
.env.example
复制到与二进制文件相同的目录,并将其重命名为.env
。 - 编辑
.env
文件以满足您的需求(TURBO_TOKENS
,BUCKET_NAME
是必需的),请参阅.env.example
了解每个云存储提供商所需变量的更多信息。 - 运行二进制文件。
turbo-repo-remote-cache-rs
- 为 turbo 命令行界面提供 URL
turbo build --api="http://127.0.0.1:4000" --token=<token> --team=<team>
您也可以在项目的根目录中设置 teamId
和 apiUrl
到 .turbo/config.json
。
- 享受您自托管的远程缓存和更快的构建 🚀。
Docker
- 创建一个 Dockerfile。
FROM salamaashoush/turbo-remote-cache-rs
ENV PORT=4000
ENV FS_PATH=/tmp
ENV BUCKET_NAME=cache
ENV TURBO_TOKENS="token1,token2,token3"
EXPOSE 4000
CMD ["turbo-remote-cache"]
- 构建镜像。
docker build -t your-image .
- 运行镜像。
docker run -p 4000:4000 -v ./cache:/tmp/cache your-image
- 为 turbo 命令行界面提供 URL
turbo build --api="http://127.0.0.1:4000" --token=<token> --team=<team>
您也可以在项目的根目录中设置 teamId
和 apiUrl
到 .turbo/config.json
。
Kubernetes
请参阅 examples/k8s 中的示例,不要忘记在应用之前更改 spec 和 env 变量以满足您的需求(注意,这只是一个示例,并不适用于生产环境)。
环境变量
必需
名称 | 描述 | 默认 |
---|---|---|
TURBO_TOKENS |
允许访问缓存的 turbo 令牌的逗号分隔列表。 | "" |
BUCKET_NAME |
存储缓存的存储桶名称。 | "cache" |
STORAGE_PROVIDER |
要使用的存储提供商。 s3 、azure 、gcs 、file 或 memory |
"memory" |
文件存储提供商
名称 | 描述 | 默认 |
---|---|---|
FS_PATH |
存储缓存的路径。 | 操作系统临时目录 |
S3 存储提供商
名称 | 描述 | 默认 |
---|---|---|
AWS_ACCESS_KEY_ID |
AWS访问密钥ID。 | "" |
AWS_SECRET_ACCESS_KEY |
AWS密钥访问密钥。 | "" |
AWS_DEFAULT_REGION |
AWS区域。 | "" |
AWS_ENDPOINT |
AWS端点。 | "" |
AWS_SESSION_TOKEN |
AWS会话令牌 | "" |
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI |
AWS存储桶端点。 | "" |
AWS_ALLOW_HTTP |
设置为“true”以允许没有TLS的HTTP连接。 | False |
AWS_PROFILE |
设置配置文件名称,需要启用aws_profile功能 | "" |
Azure存储提供程序
名称 | 描述 | 默认 |
---|---|---|
AZURE_STORAGE_ACCOUNT_NAME |
存储账户名称。 | "" |
AZURE_STORAGE_ACCOUNT_KEY |
存储账户主密钥 | "" |
AZURE_STORAGE_ACCESS_KEY |
AZURE_STORAGE_ACCOUNT_KEY 的别名 |
"" |
AZURE_STORAGE_CLIENT_ID |
服务主体授权的客户ID | "" |
AZURE_STORAGE_CLIENT_SECRET |
服务主体授权的客户密钥 | "" |
AZURE_STORAGE_TENANT_ID |
用于oauth流量的租户ID | "" |
GCS存储提供程序
名称 | 描述 | 默认 |
---|---|---|
GOOGLE_SERVICE_ACCOUNT |
服务账户文件位置 | "" |
GOOGLE_SERVICE_ACCOUNT_PATH |
(别名)服务账户文件位置 | "" |
SERVICE_ACCOUNT |
(别名)服务账户文件位置 | "" |
GOOGLE_SERVICE_ACCOUNT_KEY |
序列化后的服务账户密钥JSON | "" |
GOOGLE_BUCKET |
存储桶名称 | "" |
GOOGLE_BUCKET_NAME |
(别名)存储桶名称 | "" |
待办事项
- 目前支持turbo头
x-artifact-duration
、x-artifact-tag
、x-artifact-client-ci
和x-artifact-client-interactive
,但它们被忽略且不影响缓存。 - 添加nx云支持。
- 添加更多高级认证支持。
- 也许有一个仪表板来管理团队和项目会很好。
依赖项
~17–29MB
~511K SLoC