#turbo #cache #remote #server #azure-storage #provider #self-hosted

app turbo-remote-cache-rs

适用于 turbo 的远程缓存服务器

2 个不稳定版本

0.3.0 2024 年 8 月 26 日
0.2.1 2024 年 8 月 26 日

#28缓存

Download history 188/week @ 2024-08-20

每月 190 下载量

MIT 许可证

62KB
920

turbo-repo-remote-cache-rs

NPM version Crates.io Version

用 Rust 编写的快速 turbo 远程缓存服务器。

如果你在使用 turbo 并且想要有一个自托管的远程缓存服务器,这个就是为你准备的。

  1. 它非常快 ⚡️。
  2. 它支持多个对象存储提供商(S3、GCP、Azure 和文件)。

安装

  • 使用 Cargo(Linux/macOS/Windows)
cargo install turbo-remote-cache-rs
  • 使用 Npm(Linux/macOS/Windows)
npm install -g turbo-remote-cache-rs

用法

  1. .env.example 复制到与二进制文件相同的目录,并将其重命名为 .env
  2. 编辑 .env 文件以满足您的需求(TURBO_TOKENSBUCKET_NAME 是必需的),请参阅 .env.example 了解每个云存储提供商所需变量的更多信息。
  3. 运行二进制文件。
  turbo-repo-remote-cache-rs
  1. 为 turbo 命令行界面提供 URL
turbo build --api="http://127.0.0.1:4000" --token=<token> --team=<team>

您也可以在项目的根目录中设置 teamIdapiUrl.turbo/config.json

  1. 享受您自托管的远程缓存和更快的构建 🚀。

Docker

  1. 创建一个 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"]
  1. 构建镜像。
docker build -t your-image .
  1. 运行镜像。
docker run -p 4000:4000 -v ./cache:/tmp/cache your-image
  1. 为 turbo 命令行界面提供 URL
turbo build --api="http://127.0.0.1:4000" --token=<token> --team=<team>

您也可以在项目的根目录中设置 teamIdapiUrl.turbo/config.json

Kubernetes

请参阅 examples/k8s 中的示例,不要忘记在应用之前更改 spec 和 env 变量以满足您的需求(注意,这只是一个示例,并不适用于生产环境)。

环境变量

必需

名称 描述 默认
TURBO_TOKENS 允许访问缓存的 turbo 令牌的逗号分隔列表。 ""
BUCKET_NAME 存储缓存的存储桶名称。 "cache"
STORAGE_PROVIDER 要使用的存储提供商。 s3azuregcsfilememory "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-durationx-artifact-tagx-artifact-client-cix-artifact-client-interactive,但它们被忽略且不影响缓存。
  • 添加nx云支持。
  • 添加更多高级认证支持。
  • 也许有一个仪表板来管理团队和项目会很好。

依赖项

~17–29MB
~511K SLoC