Skip to content

sensdata/idb

Repository files navigation

iDB

面向服务器、容器、文件、服务、防火墙规则与常见运维操作的自托管基础设施管理平台。

License

iDB 适合开发者和小型团队,用一套控制台统一管理 Linux 主机,而不必引入一整套复杂运维平台。项目由 Web 控制台、控制端 center 和宿主机侧执行端 agent 组成。

当前默认部署方式为:

  • 宿主机原生运行 center
  • 宿主机 systemd 运行本机 agent

升级脚本会兼容旧版本 Docker 部署,并在升级时迁移到原生运行模式。

功能特性

  • 统一管理多台主机
  • 实时查看 CPU、内存、磁盘、网络和进程状态
  • 提供 Web 终端、文件管理、服务管理
  • 支持 Docker 与 Docker Compose 管理
  • 基于 nftables 的防火墙管理
  • SSH 设置与证书管理
  • 计划任务、日志查看、文件同步
  • 内置常用应用的部署能力

架构说明

  • center:控制平面、API 服务、Web 控制台宿主、任务与日志协调
  • agent:运行在主机侧的执行组件,负责终端、文件、服务与系统操作
  • frontend:基于 Vue 的前端控制台
  • plugins:可选插件与应用集成

安装

快速安装

通过官网入口安装:

curl -fsSL https://idb.net/install.sh | sudo bash

显式使用 iDB 提供的镜像/代理源安装:

curl -fsSL https://idb.net/install.sh | IDB_GITHUB_PROXY=https://dl.idb.net sudo bash

备用的 GitHub 直连安装方式:

sudo curl -fsSL https://raw.githubusercontent.com/sensdata/idb/main/scripts/install.sh | sudo bash

如果需要绕过 idb.net,也可以直接从 iDB 镜像下载发布版安装脚本再执行:

curl -fsSL https://dl.idb.net/github-releases/sensdata/idb/releases/latest/download/install.sh -o install.sh
sudo IDB_GITHUB_PROXY=https://dl.idb.net bash install.sh

说明:

  • 安装脚本本身已经带 GitHub 连通性检测,必要时会自动回退到 https://dl.idb.net
  • 需要 rootsudo 权限执行
  • 安装完成后会在终端输出一次初始 admin 密码

从源码构建部署

git clone --recurse-submodules https://github.com/sensdata/idb.git
cd idb
make deploy

make deploy 会基于当前工作区代码直接构建并安装本机的 idbidb-agent

它会执行:

  • 编译前后端产物
  • 准备密钥、JWT 材料和证书
  • 安装或更新 center 服务
  • 安装或更新 agent 服务

注意:

  • make deploy 不要求必须处于 main 分支,它部署的是你当前 checkout 的代码
  • 会覆盖本机已安装的 idb / idb-agent 服务
  • 涉及重要升级时,建议先备份 /var/lib/idb/data/etc/idb

初始管理员密码同时会写入:

/etc/idb/idb.env

可通过以下命令查看:

sudo grep '^PASSWORD=' /etc/idb/idb.env

升级

通过官网入口升级:

curl -fsSL https://idb.net/upgrade.sh | sudo bash

通过 iDB 镜像/代理源升级:

curl -fsSL https://idb.net/upgrade.sh | IDB_GITHUB_PROXY=https://dl.idb.net sudo bash

备用的 GitHub 直连升级方式:

curl -fsSL https://raw.githubusercontent.com/sensdata/idb/main/scripts/upgrade.sh -o upgrade.sh
sudo bash upgrade.sh

如果需要绕过 idb.net,也可以直接从 iDB 镜像下载发布版升级脚本:

curl -fsSL https://dl.idb.net/github-releases/sensdata/idb/releases/latest/download/upgrade.sh -o upgrade.sh
sudo IDB_GITHUB_PROXY=https://dl.idb.net bash upgrade.sh

当前升级行为:

  • 先升级 center
  • center 重启后会自动检查默认主机上的本机 agent
  • 如果本机 agent 版本落后,会自动升级,不需要用户再手动点击一次主机升级
  • 如果检测到旧版 Docker 部署,升级脚本会自动迁移到宿主机原生部署

快速开始

  1. 浏览器访问控制台。 默认部署下通常是 http://your-server-ip:9918
  2. 使用以下信息登录: 用户名:admin 密码:安装脚本输出的密码,或 /etc/idb/idb.env 中记录的密码
  3. 在主机管理页面添加远程主机
  4. 按需安装或升级主机 agent
  5. 开始使用文件管理、终端、服务管理、Docker 管理和应用部署功能

仓库结构

idb/
├── agent/       # Agent 运行时
├── center/      # Center 控制端与 API
├── core/        # 公共常量、模型、工具
├── frontend/    # Web 前端
├── plugins/     # 插件与应用集成
├── scripts/     # 安装 / 升级 / 卸载脚本
└── README.md

开发

环境要求

  • Go 1.25+
  • Node.js 24+
  • npm

后端开发

cd center
go run main.go start

前端开发

cd frontend
npm install
npm run dev

测试源码部署

如果要在测试机验证某个分支:

git fetch origin
git switch your-branch
git pull
make deploy

建议部署后至少检查:

sudo systemctl status idb --no-pager -l
sudo systemctl status idb-agent --no-pager -l
sudo journalctl -u idb -n 100 --no-pager
sudo tail -n 100 /var/log/idb-agent/idb-agent.log

如果要确认当前部署的是哪个提交:

git branch --show-current
git rev-parse --short HEAD

参与贡献

欢迎提交 Issue 和 Pull Request。

基本流程:

  1. Fork 仓库
  2. 创建功能分支
  3. 提交聚焦、清晰的改动
  4. 在合适的地方补充或更新测试
  5. 发起 Pull Request

约定建议:

  • 遵循 Go 标准格式和现有项目风格
  • 保持提交粒度清晰
  • 功能行为发生变化时同步更新文档

文档

重新生成 Swagger 文档:

cd center
go generate .

许可证

本项目基于 Apache License 2.0 发布。详见 LICENSE