高级设置
Komodo Core 和 Periphery 的额外配置选项,包括自定义证书颁发机构、OAuth/OIDC 提供商以及挂载的配置文件。
自定义证书颁发机构
为了与私有网络上的配套服务(例如 OIDC 和 git 提供商)通信, Komodo Core 和 Periphery 可能都需要信任一个或多个自定义 CA。
从 V2 开始,Komodo Core 和 Periphery 镜像都会在启动时自动执行 update-ca-certificates,
只需将任何所需的根证书挂载到 /usr/local/share/ca-certificates 中:
volumes:
## ... (不变)
## 挂载自定义根 CA 证书以逐个信任
- /path/to/root_ca1.crt:/usr/local/share/ca-certificates/root_ca1.crt
- /path/to/root_ca2.crt:/usr/local/share/ca-certificates/root_ca2.crt
## 或者整个文件夹也可以。
- /path/to/custom-certs:/usr/local/share/ca-certificates
OIDC / OAuth2
要启用 OAuth2 登录,您必须在相应的 OAuth 提供商上创建一个客户端, 例如 GitHub 或 Google。
Komodo 还支持自托管的 OAuth2 提供商,如 Authentik、Gitea 和 Keycloak。
- Komodo 使用
web application登录流程。 - 重定向 uri 是:
<KOMODO_HOST>/auth/github/callback(GitHub)<KOMODO_HOST>/auth/google/callback(Google)<KOMODO_HOST>/auth/oidc/callback(OIDC)
Authentik
查看 Authentik 集成文档。
Keycloak
- 在 Keycloak 中创建一个 OIDC 客户端。
- 记下您输入的
Client ID(例如:“komodo”),您将在 Komodo 配置中需要它 有效的重定向 URI:使用<KOMODO_HOST>/auth/oidc/callback并将<KOMODO_HOST>替换为您的 Komodo url。- 将
客户端身份验证设置为开。 - 创建客户端后,打开它并转到
凭据选项卡并复制客户端密钥
- 记下您输入的
- 为 komodo核心 docker 容器编辑您的环境变量并设置以下内容:
KOMODO_OIDC_ENABLED=trueKOMODO_OIDC_PROVIDER=https://<您的 Keycloak url>/realms/master或如果您不想使用默认领域,则将master替换为另一个领域KOMODO_OIDC_CLIENT_ID=...您指定为Client ID的内容KOMODO_OIDC_CLIENT_SECRET=...您从 Keycloak 复制的内容
限制 Periphery IP
如果使用反向代理配合 Komodo Core,您可以限制能够连接到 Periphery 端点的 IP。例如使用 Caddy:
(reject-ips) {
@externalIp not remote_ip 192.168.0.0/16 12.34.56.78/32
respond @externalIp 403
}
komodo.example.com {
handle /ws/periphery {
import reject-ips
reverse_proxy komodo-core:9120
}
handle {
reverse_proxy komodo-core:9120
}
}
note
您的反向代理应将 X-FORWARDED-HOST 头设置为您的 Komodo Core 域名,caddy 默认会这样做。
挂载配置文件
如果您希望将敏感信息排除在环境变量之外,您可以选择
在您的主机上编写一个配置文件,并将其挂载到 Komodo 核心容器中的 /config/config.toml。
配置也可以作为 YAML 或 JSON 传递。 您可以使用 it-tools 将此 TOML 文件转换为您喜欢的格式:
info
配置仍然可以在环境变量中传递,并且将优先于文件中传递的内容。
快速下载到 ./komodo/core.config.toml:
wget -P komodo https://raw.githubusercontent.com/moghtech/komodo/main/config/core.config.toml
https://github.com/moghtech/komodo/blob/main/config/core.config.toml