Skip to main content

高级设置

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 提供商上创建一个客户端, 例如 GitHubGoogle

Komodo 还支持自托管的 OAuth2 提供商,如 AuthentikGiteaKeycloak

  • 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=true
    • KOMODO_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

配置也可以作为 YAMLJSON 传递。 您可以使用 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