服务器
来源:github.com/tuist/tuist/tree/main/server
用途#
该服务器为 Tuist 的服务器端功能提供支持,例如身份验证、账户与项目管理、缓存存储、洞察分析、预览、注册表以及集成(GitHub、Slack 和 SSO)。它是一个基于 Phoenix/Elixir 的应用,使用 Postgres 和 ClickHouse。
如何贡献#
向服务器贡献代码需要签署 CLA(server/CLA.md)。
本地设置#
bash
cd server
mise install
# Dependencies
brew services start postgresql@16
mise run clickhouse:start
# Install dependencies + set up the database
mise run install
# Run the server
mise run dev
在浏览器中打开 http://localhost:8080。在开发环境中,登录页面包含一个以测试用户身份登录按钮,可使用预置账户([email protected] / tuistrocks)登录。
Note
内部开发者通过 fnox 从 1Password 加载开发密钥——mise run dev将服务器包裹在fnox exec中运行(参见server/fnox.toml)。外部贡献者无需访问 1Password;服务器可在没有它的情况下本地运行。OAuth、Stripe 和其他第三方集成将被禁用,但核心功能仍可正常工作。
本地 Helm 测试#
你可以使用kind和附带的 mise 任务在本地机器上启动完整的技术栈。这会在本地构建 Docker 镜像、创建 kind 集群、安装 Helm Chart,并自动对所有服务进行端口转发:
bash
# Deploy everything (builds images from source)
mise run helm:up --license "YOUR_LICENSE_KEY"
# Include the observability stack (Grafana, Prometheus, Loki, Tempo)
mise run helm:up --license "YOUR_LICENSE_KEY" --observability
# Check status
mise run helm:status
# Tear down
mise run helm:down
前置条件:docker、kind、helm和kubectl。
测试与格式化#
- 测试:
mix test - 格式化:
mise run format