返回

默认路径 · LINUX 服务器

一条命令,安装 kageos

默认通过服务器 IP 快速安装;准备好域名时,也可以切换到域名和 HTTPS 路径。两种方式使用同一个实例,后续切换不需要迁移数据。

没有域名,也可以先跑起来

安装器会自动识别公网 IP,并从 10001 开始选择空闲端口。适合首次体验,也适合还没有完成域名备案或 DNS 准备的服务器。

$ curl -fsSL https://kageos.com/install-prod.sh | sudo bash -s -- --cn
无需域名

安装完成后直接打开 IP 和实例端口。

需要放行端口

云安全组仍需手动放行,例如 10001。

以后再加域名

不重装、不迁移数据,运行 domain 命令即可。

安装完成以后

先打开,再慢慢完善

第一次安装优先保证能用。域名、HTTPS 和网关都可以等验证完成后再配置。

访问地址
http://服务器IP:10001
管理员
system
再次查看密码
sudo kageos password
检查安装状态
sudo kageos doctor

更多

需要时再看

应该选择 IP 还是域名?

第一次安装、还没有域名或备案时,选择“IP 快速安装”。准备给团队长期使用,并且域名、DNS、80/443 已经就绪时,选择“域名 + HTTPS”。两种方式使用同一套实例和数据,先用 IP 不会影响以后升级成域名。

没有域名可以安装吗?

可以。默认自动获取服务器公网 IP,并使用第一个空闲端口,从 10001 开始。云服务器还需要在安全组中放行对应端口。

IP 安装需要开放哪些端口?

安装器从 10001 开始选择第一个空闲实例端口,并在结束时打印实际访问地址。请只在云服务器安全组中放行最终分配的 TCP 端口;第二个实例通常使用 10002,依此类推。

MySQL、NATS 和 MinIO 等内部服务不需要暴露到公网。

安装器会自动修改防火墙吗?

如果服务器本机的 iptables FORWARD 策略阻止容器流量,安装器会尝试为当前 kageos 端口增加范围受限的放行规则,不会直接把全局策略改成全部放行。但安装器无法修改阿里云、腾讯云、华为云等平台的安全组,云防火墙仍需在控制台中手动配置。

公网 IP 检测不正确怎么办?

服务器位于 NAT、堡垒机或多出口网络后面时,自动检测结果可能不是用户真正访问的地址。可以明确传入公网地址和端口:

curl -fsSL https://kageos.com/install-prod.sh | sudo bash -s -- --base-url http://203.0.113.10:10001 --cn
使用域名前需要准备什么?

把域名的 A 或 AAAA 记录解析到服务器,确认公网 TCP 80 和 443 可以到达这台机器,然后再运行 sudo kageos domain app.example.com

如果域名解析尚未生效,证书签发会失败;原来的 IP 实例会被保留,可以等待 DNS 生效后重试。

中国大陆服务器使用域名需要备案吗?

使用中国大陆服务器通过域名公开提供互联网信息服务,通常需要先完成 ICP 备案,具体以服务器厂商和当地监管要求为准。还没有备案时,可以先通过 IP 和实例端口完成内部验证;不要把“能够访问”理解为已经满足正式对外服务的合规要求。

域名方式真的会自动配置 HTTPS 吗?

默认路径会使用 Caddy 配置反向代理并自动申请 HTTPS,前提是 DNS 已指向服务器,而且 80/443 没有被错误拦截。

如果服务器已经运行 Nginx,kageos 会接入现有 Nginx;已有证书可以直接复用,没有证书时需要沿用你的 Nginx/Certbot 证书流程。

服务器已经有 1Panel、Nginx 或 Caddy 怎么办?

不要让 kageos 主容器直接抢占 80/443。它仍运行在本机实例端口上;sudo kageos domain 会优先识别已有 Caddy 或 Nginx 并添加独立路由。使用其他面板或负载均衡时,请把域名转发到 127.0.0.1:实例端口,并让外部网关负责 TLS。

域名配置失败会影响已经运行的数据吗?

不会因为绑定域名而迁移数据库或业务文件。管理器会先备份实例和网关配置,验证失败时恢复原配置并重新启动原实例。修正 DNS、端口或证书问题后,可以再次运行同一条 domain 命令。

以后怎样换成域名和 HTTPS?

先把域名解析到服务器,再执行下面的命令。它默认使用 Caddy 自动申请 HTTPS;如果服务器正在运行 Nginx,会接入现有 Nginx。

sudo kageos domain demo.example.com

多实例服务器需要带实例名,例如:sudo kageos domain instance-02 demo.example.com

一台服务器能安装多个实例吗?

可以。再次执行同一条命令会创建 instance-02、instance-03,并自动选择 10002、10003 等空闲端口。每个实例拥有独立容器、配置和数据目录。

多个实例怎样分别绑定域名?

有多个实例时,在 domain 命令中明确指定实例 ID:

sudo kageos domain instance-01 crm.example.com
sudo kageos domain instance-02 support.example.com
怎样备份和恢复数据?

备份会短暂停止实例以生成一致的本地归档,完成后自动重新启动。恢复前还会额外创建一份安全备份。

sudo kageos backup instance-01
sudo kageos restore instance-01 /var/backups/kageos/instance-01-时间.tar.gz --yes
如何指定域名、端口或容器引擎?

自动化部署可以继续传入参数,不经过交互:

curl -fsSL https://kageos.com/install-prod.sh | sudo bash -s -- --base-url https://app.example.com --tls-mode external --http-port 10001 --cn
查看完整安装脚本与参数
大流量部署如何使用 S3 和 CDN?

普通部署不需要配置:默认由容器内置 Nginx 提供前端文件,最简单,也适合绝大多数中小型团队。只有静态资源流量已经明显占用主服务器带宽时,再启用这项高级能力。

先准备一个兼容 S3 的存储桶,并让 CDN 域名指向它;CDN 需要允许公开 GET,并为你的 kageos 域名开启跨域访问(CORS)。安装命令只填写公开配置;随后安装器会在终端中隐藏输入 Access Key 和 Secret Key。

curl -fsSL https://kageos.com/install-prod.sh | sudo bash -s -- --cn --web-assets s3 --web-s3-endpoint https://s3.example.com --web-s3-bucket kageos-assets --web-cdn-url https://cdn.example.com

密钥不会出现在命令参数中,也不会传入长期运行的主容器。配置会保存到 root 专用的实例配置文件中,之后执行 sudo kageos update 会自动复用,并在切换新版本前先上传新资源。自动化环境也可以通过 KAGEOS_WEB_S3_ACCESS_KEY_IDKAGEOS_WEB_S3_SECRET_ACCESS_KEY 注入密钥。

安装失败或访问不了怎么办?

先运行 sudo kageos doctor,再检查云安全组是否放行了实例端口。

查看状态:sudo kageos status;查看日志:sudo kageos logs

更新管理器:sudo kageos self-update。正常更新实例时也会自动刷新管理器。

其他平台

在自己的电脑上先试用

长期运行仍推荐 Linux 服务器。macOS 和 Windows 适合在本地快速体验,数据保存在各自的容器数据卷中。

macOS

先安装并启动 Podman Desktop,再执行安装命令。

$ brew install --cask podman-desktop
$ curl -fsSL https://kageos.com/install.sh | bash -s -- --port 8080

Windows

在 PowerShell 中安装 Podman Desktop,再运行 Windows 安装脚本。

PS> winget install -e --id RedHat.Podman-Desktop
PS> iwr https://kageos.com/install.ps1 -OutFile install.ps1
PS> powershell -ExecutionPolicy Bypass -File .\install.ps1

源码开发与贡献

想改代码?从源码启动

生产安装不会下载源码。如果你想阅读、调试或贡献代码,请克隆仓库,再运行仓库自带的开发脚本。

$ git clone https://github.com/kageos/kageos.git
$ cd kageos
$ ./scripts/dev.sh