yunuskargi/configbox

GitHub: yunuskargi/configbox

ConfigBox 是一款免费开源网络配置备份工具,通过 Web 界面自动化管理多厂商设备的配置备份,解决手动备份繁琐且易出错的问题。

Stars: 1 | Forks: 1

# ConfigBox — 网络配置备份管理器 一款免费、开源的网络配置备份工具,支持 FortiGate、Cisco、Juniper 和 Palo Alto 设备。通过现代化 Web 界面实现自动化配置备份,支持配置差异比较、电子邮件通知,并可在数分钟内完成 Docker 部署。 作为 RANCID、Oxidized 和 SolarWinds NCM 的替代方案,它拥有现代化的仪表盘、内置的用户管理,且无任何许可费用。 ![仪表盘](https://img.shields.io/badge/stack-Go%20%2B%20React-blue) ![许可](https://img.shields.io/badge/license-AGPL--3.0-green) ![Docker](https://img.shields.io/badge/deploy-Docker%20Compose-blue) ![ConfigBox 仪表盘](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/d647978ed7084111.png) ## 支持的设备 | 厂商 | 协议 | 详情 | |--------|----------|--------| | **FortiGate** | REST API | 通过 `/api/v2/monitor/system/config/backup` 备份配置 | | **Juniper** | SSH | `show configuration | display set` | | **Cisco** (IOS/NX-OS/ASA) | SSH | `show running-config` | | **Palo Alto** | PAN-OS XML API | 通过 XML API 导出配置 | ## 功能特性 - 自动化定时备份(基于 cron) - 一键手动备份 - 配置差异比较 / 对比 - CSV 批量设备导入 - **远程备份至 S3 / Google Drive** — 每次备份后自动复制到云存储 - **备份归档** — 自动 gzip 压缩旧备份以节省磁盘空间 - 仪表盘统计与趋势图表 - 基于位置的设备管理 - 电子邮件通知(成功/失败/变更/每日摘要)包含远程上传状态 - 暗色模式 / 亮色模式 - 多语言支持(英文 & 土耳其文) - 基于角色的访问控制(管理员 / 备份管理员) - 双重身份验证 (TOTP) - 全面的审计日志 - 凭据加密 (AES-256-CBC) - 速率限制 - 单一二进制文件(~30MB Docker 镜像) - 纯文件存储 — 即使应用崩溃,您也可以直接从 `backups/` 目录访问配置 ## 快速开始 ### 系统要求 - Docker & Docker Compose ### 1. 克隆仓库 ``` git clone https://github.com/yunuskargi/configbox.git cd configbox ``` ### 2. 配置环境变量 ``` cp .env.example .env # 修改 .env 中的 JWT_SECRET 值! ``` ### 3. 运行 ``` docker compose up -d ``` 应用将在 `http://localhost:6161` 可用。 ### 4. 登录 - **用户名:** `admin` - **密码:** `admin` ## CLI 命令 ``` # 重置用户密码 docker compose exec backend /configbox reset-password ``` ## 备份文件结构 ``` backups/ ├── fortigate/ │ └── device-name/ │ ├── 2024-01-15_020000.conf │ └── 2024-01-16_020000.conf ├── juniper/ ├── cisco/ └── paloalto/ ``` ## 远程备份 (S3 / Google Drive) ConfigBox 可以将每次备份的副本自动上传到兼容 S3 的存储(AWS、MinIO、Cloudflare R2、Backblaze B2)或 Google Drive。通过 Web 界面的 **设置 → 远程备份** 进行配置 — 内含设置指南。 ## 技术栈 | 组件 | 技术 | |-----------|-----------| | 后端 | Go (Chi router, sqlx, golang.org/x/crypto/ssh) | | 前端 | React + Vite | | 数据库 | SQLite (WAL 模式) | | 认证 | JWT + bcrypt + TOTP | | 加密 | AES-256-CBC | | 调度器 | robfig/cron | ## 更新 / 升级 更新过程中您的数据是安全的: - **数据库** → 存储在 Docker 命名卷 `db-data` 中,在容器重建后依然持久化 - **配置备份** → 存储在您主机的 `./backups` 绑定挂载目录中,更新时不会被触及 - **模式** → 使用 `CREATE TABLE IF NOT EXISTS`,无需手动迁移 ### 更新步骤 ``` cd configbox # 拉取最新源代码 git pull # 重新构建并重启(容器将自动重新创建,数据得以保留) docker compose up -d --build ``` ### 重要提示 ## 安全 - 默认登录凭证是 `admin/admin` — 首次登录时系统会要求您修改 - 所有凭据(设备密码、API 密钥、SMTP)在数据库中均已加密 - 如果将 ConfigBox 暴露到互联网,请在前端配置带有 SSL 的反向代理(nginx、Traefik、Caddy) - 参见 `.env.example` 以了解可选设置,例如 `ENCRYPTION_KEY`、`TRUSTED_PROXY` 和 `FORCE_HTTPS` ## 许可 本项目基于 [AGPL-3.0](LICENSE) 许可。 ## 贡献 欢迎提交 Pull 请求和 Issue。对于重大更改,请先开启一个 Issue。
标签:Cisco备份, CSV批量导入, FortiGate备份, Google Drive备份, Go语言, IT运维, Juniper备份, Palo Alto备份, PAN-OS XML API, RBAC访问控制, React前端, REST API, S3备份, Socks5代理, SSH协议, Web管理界面, 云存储备份, 免费工具, 双因素认证, 备份归档, 多语言支持, 安全测试框架, 审计日志, 数据压缩, 日志审计, 暗色模式, 用户管理, 程序破解, 网络设备配置, 网络配置备份, 自动化备份, 自定义脚本, 设备管理, 请求拦截, 轻量级应用, 邮件通知, 配置差异比较, 配置管理工具