mirror of
https://github.com/MengMengCode/CLICD.git
synced 2026-08-04 21:31:23 +08:00
4.8 KiB
4.8 KiB
CLICD
CLICD 是一个面向 LXC 的轻量容器管理面板,提供 Web 控制台、CLI、批量任务、镜像管理、NAT 端口、IPv6 分配、WebSSH、资源限制、流量限制和安全告警能力。它适合用来管理小型 VPS 上的 LXC 容器,也适合需要批量创建和分发子用户管理链接的场景。
功能介绍
- 支持 Ubuntu、Debian、Alpine、CentOS、Arch Linux、Fedora、Rocky Linux 等系统镜像。镜像可以在镜像管理中按需下载;如果宿主机资源比较小,建议优先选择 Alpine 这类轻量镜像。
- 支持 WebSSH 管理,可以在浏览器里一键进入容器终端,不需要手动复制 SSH 密码。
- 支持子用户管理链接,管理员可以把指定容器分发给拼车用户,子用户只能管理自己被授权的容器。
- 支持设置 NAT4 端口数量、NAT 端口映射和协议限制,并支持分配公网 IPv6。IPv6 分配要求宿主机本身拥有可路由的 IPv6 地址段。
- 支持超售容量估算。宿主机控制页提供 KSM 合并、Swap 倾向和 cgroup v2
memory.reclaim一次性回收能力;不会展示 LXC 下无实际通用效果的内存气球回收开关。 - 支持 API 接入,可以通过 API 完成容器、任务、镜像、端口、流量、安全告警等功能的自动化控制。
- 支持仅使用 CLI 管理。需要关闭 Web 控制台时,可以停止并禁用 systemd 服务,然后使用
clicd cli --no-web进入命令行模式。 - 支持设置容器有效期。到期后容器会自动关机,子用户无法继续操作,只有管理员重新设置延期日期后才能恢复使用。
- 支持单向和双向网络流量限制。达到限制后容器会自动关机,避免流量超额。
- 内置基于 conntrack 的轻量安全告警。系统不会保存完整正常连接日志,但会对端口扫描、横向扫描、爆破倾向、SMTP 滥用、UDP 反射、挖矿端口、代理/VPN/Tor 等可疑行为生成告警并写入审计日志。
技术栈
- Backend: Go, net/http, LXC, cgroup v2, iptables, conntrack
- Frontend: React, TypeScript, Vite, Tailwind CSS, lucide-react, xterm.js
- Runtime: Linux, systemd, LXC
- Build: GitHub Actions, Node.js 20, Go 1.22
安装
推荐使用 GitHub Actions 构建出的 Release 产物。下载 clicd-linux-amd64.tar.gz 后在目标服务器上执行:
tar -xzf clicd-linux-amd64.tar.gz
cd clicd-linux-amd64
sudo ./install.sh
安装完成后访问:
http://YOUR_SERVER_IP:8999
首次启动时会自动初始化管理员账号:
Username: admin
Password: 随机 16 位密码
安装脚本会尝试从 systemd 日志中输出初始账号密码。如果机器上已经存在 /root/.clicd/config.json,则不会重新生成密码。
查看初始密码日志:
journalctl -u clicd --no-pager -n 80 | grep -E "Username:|Password:"
GitHub Actions 构建
仓库内置 .github/workflows/build.yml:
- 推送到
main或master时自动构建 Linux amd64 产物。 - 创建
v*标签时自动发布 GitHub Release。 - 支持手动
workflow_dispatch构建。
发布版本示例:
git tag v1.0.0
git push origin v1.0.0
Release 会包含:
clicd-linux-amd64.tar.gz
clicd-linux-amd64
SHA256SUMS
CLI 模式
进入 CLI:
clicd cli
仅使用 CLI,不自动拉起 Web 服务:
systemctl stop clicd
systemctl disable clicd
clicd cli --no-web
重新启用 Web 控制台:
systemctl enable --now clicd
常用服务命令
systemctl status clicd
systemctl restart clicd
journalctl -u clicd -f
注意事项
- 需要 root 权限安装和运行。
- 宿主机需要支持 LXC。
- NAT 和端口映射依赖 iptables。
- 安全告警依赖 conntrack 或
/proc/net/nf_conntrack。 - IPv6 分配要求宿主机拥有可用公网 IPv6 地址段。
- 配置文件位于
/root/.clicd/config.json,其中包含敏感信息,不要提交到公开仓库。