C ChunHo教程
Komari · 通用教程

Komari 安装教程

主机装面板 + 反代,其他机器只装探针。下文域名一律用 yourdomain.com 占位;下载走 GitHub 官方 Release。

1. 架构说明

Komari 分两块:

其他 VPS ──agent──▶ https://monitor.yourdomain.com (只装探针) │ ▼ 主机:Caddy / Nginx 反代 HTTPS │ ▼ Komari 面板容器 127.0.0.1:25774
探针机不需要 Docker、不需要反代、不需要开放入站端口;只要能访问面板域名的 443 即可。
面板域名
monitor.yourdomain.com
下载来源
GitHub Release官方
面板端口
127.0.0.1:25774仅本机
反代
CaddyHTTPS + WS

3. 主机安装面板(Docker)

需要 Docker + Compose。目录可自定,示例用 /opt/komari-panel

3.1 compose 示例

mkdir -p /opt/komari-panel/data
cd /opt/komari-panel

cat > .env <<'EOF'
ADMIN_PASSWORD=CHANGE_ME_STRONG_PASSWORD
EOF

cat > docker-compose.yml <<'EOF'
services:
  komari:
    image: ghcr.io/komari-monitor/komari:latest
    container_name: komari
    restart: unless-stopped
    ports:
      - "127.0.0.1:25774:25774"   # 仅本机,公网走反代
    environment:
      ADMIN_USERNAME: admin
      ADMIN_PASSWORD: ${ADMIN_PASSWORD}
    volumes:
      - ./data:/app/data
    # 若与 Caddy 同 Docker 网络,取消下面注释并加入 caddy 网络
    # networks:
    #   - caddy_default

# networks:
#   caddy_default:
#     external: true
EOF

docker compose up -d
docker compose ps
docker compose logs --tail=50

3.2 本机验证

curl -I http://127.0.0.1:25774
# 期望 HTTP 200 / 3xx
不要把 25774 映射成 0.0.0.0 暴露公网。统一用域名 + HTTPS 反代。

4. Caddy 反代(HTTPS + WebSocket)

探针与面板通信依赖 WebSocket。反代需转发 Upgrade / Connection,并关闭响应缓冲。

4.1 Caddyfile

monitor.yourdomain.com {
	# 面板在同一 Docker 网络时用服务名:
	# reverse_proxy komari:25774 { ... }

	# 面板只监听宿主机 127.0.0.1:25774 时用:
	reverse_proxy host.docker.internal:25774 {
		header_up Host {host}
		header_up X-Real-IP {remote_host}
		header_up Connection {http.request.header.Connection}
		header_up Upgrade {http.request.header.Upgrade}
		flush_interval -1
	}
}

若 Caddy 非 Docker、直接装在宿主机:

monitor.yourdomain.com {
	reverse_proxy 127.0.0.1:25774 {
		header_up Host {host}
		header_up X-Real-IP {remote_host}
		header_up Connection {http.request.header.Connection}
		header_up Upgrade {http.request.header.Upgrade}
		flush_interval -1
	}
}

4.2 Nginx 参考(可选)

server {
    listen 443 ssl http2;
    server_name monitor.yourdomain.com;

    # ssl_certificate     /path/fullchain.pem;
    # ssl_certificate_key /path/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:25774;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 3600s;
        proxy_buffering off;
    }
}

4.3 重载

# Caddy Docker 示例
docker compose exec -T caddy caddy reload --config /etc/caddy/Caddyfile

# 或宿主机
# systemctl reload caddy
# nginx -t && systemctl reload nginx

浏览器打开 https://monitor.yourdomain.com,用 compose 里的管理员账号登录。

5. DNS 解析

给面板域名加 A 记录,指向主机公网 IP

Caddy 在域名已解析且 80/443 可达时会自动申请证书。

6. 探针机安装

探针机只跑 agent。二进制从 GitHub Releases 下载。

6.1 在面板拿 token

  1. 登录 https://monitor.yourdomain.com
  2. 添加节点 / 创建探针,复制该节点的 token
  3. 每台机器用自己的 token,不要混用

6.2 一键安装(systemd 机器)

# 1) 选架构下载(示例 amd64)
mkdir -p /opt/komari
curl -fL -o /opt/komari/agent \
  "https://github.com/komari-monitor/komari-agent/releases/latest/download/komari-agent-linux-amd64"
# arm64:
# curl -fL -o /opt/komari/agent \
#   "https://github.com/komari-monitor/komari-agent/releases/latest/download/komari-agent-linux-arm64"
chmod +x /opt/komari/agent

# 2) 写入服务(替换 YOUR_TOKEN)
cat > /etc/systemd/system/komari-agent.service <<'EOF'
[Unit]
Description=Komari Agent
After=network.target

[Service]
Type=simple
ExecStart=/opt/komari/agent -e https://monitor.yourdomain.com -t YOUR_TOKEN --disable-web-ssh --exclude-nics lo,docker0,br-,veth
WorkingDirectory=/opt/komari
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable --now komari-agent
systemctl status komari-agent --no-pager

6.3 无 systemd(部分容器 / 精简系统)

# 若提示 Text file busy:先停旧进程
pkill -f /opt/komari/agent || true
sleep 1

# 前台测试
/opt/komari/agent -e https://monitor.yourdomain.com -t YOUR_TOKEN --disable-web-ssh

# 后台 + 开机(crontab)
nohup /opt/komari/agent -e https://monitor.yourdomain.com -t YOUR_TOKEN --disable-web-ssh \
  --exclude-nics lo,docker0,br-,veth \
  >/var/log/komari-agent.log 2>&1 &

(crontab -l 2>/dev/null | grep -v 'komari/agent'; \
  echo '@reboot sleep 15; /opt/komari/agent -e https://monitor.yourdomain.com -t YOUR_TOKEN --disable-web-ssh --exclude-nics lo,docker0,br-,veth >/var/log/komari-agent.log 2>&1') | crontab -

6.4 参数说明

7. Token 说明

nano /etc/systemd/system/komari-agent.service
systemctl daemon-reload
systemctl restart komari-agent
journalctl -u komari-agent -n 30 --no-pager

8. 常见问题

Q:探针不上线?

Q:GitHub 下载失败?

Q:Text file busy

agent 正在运行无法覆盖。先 pkill -f /opt/komari/agent,下到 agent.newmv

Q:探针机要装 Caddy 吗?

不用。 面板 + 反代只在主机;探针只上报。

Q:官方文档入口