macOS
先安装并启动 Podman Desktop,再执行安装命令。
默认路径 · LINUX 服务器
默认通过服务器 IP 快速安装;准备好域名时,也可以切换到域名和 HTTPS 路径。两种方式使用同一个实例,后续切换不需要迁移数据。
安装器会自动识别公网 IP,并从 10001 开始选择空闲端口。适合首次体验,也适合还没有完成域名备案或 DNS 准备的服务器。
安装完成后直接打开 IP 和实例端口。
云安全组仍需手动放行,例如 10001。
不重装、不迁移数据:sudo kageos domain app.example.com
先把域名解析到服务器并开放 80/443,安装器会在第一次启动时直接配置网关和 HTTPS,不会先启动 IP 实例再重建。
A/AAAA 记录必须指向这台服务器。
证书签发和 HTTPS 访问需要标准 Web 端口。
中国大陆服务器使用域名公开服务前,通常需要完成备案。
先用 IP,后加域名
已经通过 IP 安装完成后,随时可以把同一个实例切换到域名。先把域名的 A 或 AAAA 记录解析到这台服务器,并在云安全组和防火墙中开放公网 TCP 80、443。
确认域名指向服务器,公网可以访问 TCP 80 和 443。中国大陆服务器对外提供域名服务通常还需先完成备案。
把 app.example.com 换成真实域名。命令会配置网关、更新实例访问地址并重启实例完成验证,业务数据和管理员密码保持不变。
先查看实例列表,再明确指定要绑定的实例,避免把域名配错:
没有现有网关时默认使用 Caddy 自动申请可信 HTTPS;如果服务器已经运行 Nginx,kageos 会优先接入现有 Nginx,并复用该域名已有的证书。完成后运行 sudo kageos doctor instance-01,并按命令最终输出的 URL 验证。现有 Nginx 没有该域名证书时会先提供 HTTP,并明确提示证书路径;补齐证书后再次运行同一条 domain 命令即可启用 HTTPS。
安装完成以后
第一次安装优先保证能用。域名、HTTPS 和网关都可以等验证完成后再配置;IP 安装成功时,终端会按本次真实实例 ID 输出后续绑定域名的完整命令。
更多
第一次安装、还没有域名或备案时,选择“IP 快速安装”。准备给团队长期使用,并且域名、DNS、80/443 已经就绪时,选择“域名 + HTTPS”。两种方式使用同一套实例和数据,先用 IP 不会影响以后升级成域名。
可以。默认自动获取服务器公网 IP,并使用第一个空闲端口,从 10001 开始。云服务器还需要在安全组中放行对应端口。
安装器从 10001 开始选择第一个空闲实例端口,并在结束时打印实际访问地址。请只在云服务器安全组中放行最终分配的 TCP 端口;第二个实例通常使用 10002,依此类推。
MySQL、NATS 和 MinIO 等内部服务不需要暴露到公网。
如果服务器本机的 iptables FORWARD 策略阻止容器流量,安装器会尝试为当前 kageos 端口增加范围受限的放行规则,不会直接把全局策略改成全部放行。但安装器无法修改阿里云、腾讯云、华为云等平台的安全组,云防火墙仍需在控制台中手动配置。
服务器位于 NAT、堡垒机或多出口网络后面时,自动检测结果可能不是用户真正访问的地址。可以明确传入公网地址和端口:
把域名的 A 或 AAAA 记录解析到服务器,确认公网 TCP 80 和 443 可以到达这台机器,然后在安装命令中加入 --domain app.example.com。
安装器会先检查 DNS,再在实例第一次启动时配置网关和 HTTPS;不会为了绑定域名额外启动第二遍。
使用中国大陆服务器通过域名公开提供互联网信息服务,通常需要先完成 ICP 备案,具体以服务器厂商和当地监管要求为准。还没有备案时,可以先通过 IP 和实例端口完成内部验证;不要把“能够访问”理解为已经满足正式对外服务的合规要求。
默认路径会使用 Caddy 配置反向代理并自动申请 HTTPS,前提是 DNS 已指向服务器,而且 80/443 没有被错误拦截。
如果 Nginx 正在实际监听 80/443,kageos 会接入现有 Nginx 并复用已有证书;如果实际监听者是 Caddy,则继续使用 Caddy。缺少证书时安装器会停止并提示准备证书,不会静默降级成 HTTP。
不要让 kageos 主容器直接抢占 80/443。它仍运行在本机实例端口上;sudo kageos domain 会识别实际监听 80/443 的 Caddy 或 Nginx 并添加独立路由,不会只凭服务状态猜测。使用其他面板或负载均衡时,请把域名转发到 127.0.0.1:实例端口,并让外部网关负责 TLS。
不会因为绑定域名而迁移数据库或业务文件。管理器会先备份实例和网关配置,验证失败时恢复原配置并重新启动原实例。修正 DNS、端口或证书问题后,可以再次运行同一条 domain 命令。
先把域名解析到服务器并开放公网 TCP 80、443,再执行下面的命令。它会检查 DNS、配置可信 HTTPS 并验证公网地址,同时保留原实例、业务数据和管理员密码。
多实例服务器先运行 sudo kageos instance list,再带上实例名,例如:sudo kageos domain instance-02 demo.example.com。默认不允许静默降级到 HTTP;只有明确接受纯 HTTP 时才使用 --allow-http。完成后使用 sudo kageos doctor instance-02 检查。
可以。再次执行同一条命令会创建 instance-02、instance-03,并自动选择 10002、10003 等空闲端口。每个实例拥有独立容器、配置和数据目录。
有多个实例时,在 domain 命令中明确指定实例 ID:
备份会短暂停止实例以生成一致的本地归档,完成后自动重新启动。恢复前还会额外创建一份安全备份。
自动化部署可以继续传入参数,不经过交互:
普通部署不需要配置:默认由容器内置 Nginx 提供前端文件,最简单,也适合绝大多数中小型团队。只有静态资源流量已经明显占用主服务器带宽时,再启用这项高级能力。
先准备一个兼容 S3 的存储桶,并让 CDN 域名指向它;CDN 需要允许公开 GET,并为你的 kageos 域名开启跨域访问(CORS)。安装命令只填写公开配置;随后安装器会在终端中隐藏输入 Access Key 和 Secret Key。
密钥不会出现在命令参数中,也不会传入长期运行的主容器。配置会保存到 root 专用的实例配置文件中,之后执行 sudo kageos update 会自动复用,并在切换新版本前先上传新资源。自动化环境也可以通过 KAGEOS_WEB_S3_ACCESS_KEY_ID 和 KAGEOS_WEB_S3_SECRET_ACCESS_KEY 注入密钥。
先运行 sudo kageos doctor,再检查云安全组是否放行了实例端口。
查看状态:sudo kageos status;查看日志:sudo kageos logs。
更新管理器:sudo kageos self-update。正常更新实例时也会自动刷新管理器。
其他平台
长期运行仍推荐 Linux 服务器。macOS 和 Windows 适合在本地快速体验,数据保存在各自的容器数据卷中。
先安装并启动 Podman Desktop,再执行安装命令。
在 PowerShell 中安装 Podman Desktop,再运行 Windows 安装脚本。
源码开发与贡献