Kuma Mieru 文档
部署

Docker

在自己的服务器上用 Docker Compose 或 docker run 运行 Kuma Mieru 的 GHCR 镜像。

Docker 部署目前处于 Beta 阶段。

镜像地址是 ghcr.io/alice39s/kuma-mieru:1,支持 linux/amd64 和 linux/arm64。容器内的服务监听 3000 端口,下面的示例把它映射到主机的 3883 端口。标签的含义见版本策略。

启动

推荐使用 Docker Compose。

克隆仓库:

git clone https://github.com/Alice39s/kuma-mieru.git
cd kuma-mieru

docker-compose.yml 读取仓库根目录的 .env。从 Web 应用的模板复制一份:

cp apps/web/.env.example .env

编辑 .env,至少设置 UPTIME_KUMA_URLS。其他变量见环境变量。

.env
UPTIME_KUMA_URLS=https://example.kuma-mieru.invalid/status/your-status-page-id

模板中的 KUMA_MIERU_TITLE、KUMA_MIERU_DESCRIPTION 和 KUMA_MIERU_ICON 三行会覆盖状态页自身的标题、描述和图标。把标题和描述改成你需要的值。想沿用状态页的图标时,删掉 KUMA_MIERU_ICON 这一行。

启动服务:

docker compose up -d

服务运行在 http://0.0.0.0:3883。

查看日志:

docker compose logs -f

.env 中缺少的变量以空值传入

docker-compose.yml 的 environment 列出了状态页地址和 KUMA_MIERU_* 变量。.env 中缺少其中某个变量时,它以空值传入容器,覆盖镜像内置的默认值:

  • 既没有 UPTIME_KUMA_URLS,也没有 UPTIME_KUMA_BASE_URL 和 PAGE_ID 时,配置生成脚本报错,容器启动中止。
  • 缺少 KUMA_MIERU_SHOW_STAR_BUTTON 时,Star 按钮隐藏。需要显示时,写上 KUMA_MIERU_SHOW_STAR_BUTTON=true。
  • 缺少 KUMA_MIERU_TITLE 或 KUMA_MIERU_DESCRIPTION 时,浏览器标签页的标题和页面描述使用 Kuma Mieru 的默认值。
  • 缺少 KUMA_MIERU_ICON 时,使用状态页自身的图标。

镜像内置的默认值

镜像为以下变量设置了默认值。用 docker run 启动时,没有通过 -e 或 --env-file 设置的变量使用这些值:

变量默认值
UPTIME_KUMA_URLS空
UPTIME_KUMA_BASE_URLhttps://whimsical-sopapillas-78abba.netlify.app
PAGE_IDdemo
KUMA_MIERU_TITLEUptime Kuma
KUMA_MIERU_DESCRIPTIONA beautiful and modern uptime monitoring dashboard
KUMA_MIERU_ICON空
KUMA_MIERU_EDIT_THIS_PAGEfalse
KUMA_MIERU_SHOW_STAR_BUTTONtrue
ALLOW_EMBEDDINGfalse
  • 没有设置 UPTIME_KUMA_URLS 时,容器使用内置的 UPTIME_KUMA_BASE_URL 和 PAGE_ID,连接 demo 状态页。
  • 浏览器标签页的标题和页面描述使用环境变量或镜像内置的值,不使用状态页自身的值。请把 KUMA_MIERU_TITLE 和 KUMA_MIERU_DESCRIPTION 设为你需要的内容。导航栏和多页面标签仍优先显示 Uptime Kuma 状态页的实时标题,见环境变量。
  • 内置的 KUMA_MIERU_ICON 为空,图标使用状态页自身的图标。
  • 使用仓库的 docker-compose.yml 时,environment 中列出的变量会覆盖这些默认值,见上面 Docker Compose 部分的说明。

修改配置

容器每次启动时先运行配置生成脚本,再启动服务。修改 .env 后,重新创建容器,让新的环境变量生效:

docker compose up -d --force-recreate

使用 docker run 时,先删除旧容器,再用新的参数运行 docker run:

docker stop kuma-mieru
docker rm kuma-mieru

更新镜像

在仓库目录执行。git pull 用来获取最新的 docker-compose.yml:

git pull
docker compose pull
docker compose up -d

健康检查

镜像提供健康检查接口 /api/health。Dockerfile 和 docker-compose.yml 都用 curl -f 每 30 秒请求一次容器内的 http://localhost:3000/api/health,超时时间为 3 秒。docker-compose.yml 设置连续失败 3 次后把容器标记为不健康。

自行构建镜像

拉取的镜像出现问题时,可以在本地构建。编辑 docker-compose.yml,注释 image 行,再取消 build 行的注释:

docker-compose.yml
services:
  kuma-mieru:
    # image: ghcr.io/alice39s/kuma-mieru:1
    build: .

然后构建并启动:

docker compose up -d --build

Dockerfile 分两个阶段:

阶段内容
构建基于 node:26.12.1-alpine,用 Bun 1.4.4 安装 @kuma-mieru/web 及其 workspace 依赖,再执行 bun run --cwd apps/web build
运行基于 node:26.12.1-alpine,以非 root 用户 nextjs 运行,用 dumb-init 作为 PID 1。启动时用 tsx 运行配置生成脚本,再用 Node.js 启动 standalone 服务

STRICT_IMAGE_REMOTE_PATTERNS 只在构建镜像时生效,见环境变量。

最后更新于