# LAN Manager Debian 12 部署包 本包包含 LAN Manager 的 Linux amd64 编译二进制、systemd 服务文件及一键安装脚本。前端资源已静态嵌入二进制中,无需额外安装 Node.js 或 Nginx 即可直接运行。 ## 系统要求 - Debian 12 (bookworm) - systemd - 不需要安装 SQLite(使用纯 Go 实现的 SQLite 驱动,无需 CGO) ## 包内文件说明 ``` lan-manager # 服务端可执行文件(已嵌入前端) lan-manager.env # 环境变量配置文件 lan-manager.service # systemd 服务单元 install.sh # 一键安装脚本 uninstall.sh # 一键卸载脚本 README.md # 本说明文件 ``` ## 快速安装 1. 将本包上传到 Debian 12 服务器(例如 `/root/lan-manager-debian12/`) 2. 进入目录并执行安装脚本: ```bash cd lan-manager-debian12 sudo bash install.sh ``` 安装脚本会完成以下操作: - 创建系统用户 `lanmgr` - 将程序安装到 `/opt/lan-manager/` - 创建数据目录 `/opt/lan-manager/data/` - 注册并启动 systemd 服务 `lan-manager` - 设置开机自启 ## 安装后验证 ```bash # 查看服务状态 systemctl status lan-manager # 查看实时日志 journalctl -u lan-manager -f # 测试访问 curl http://127.0.0.1:8080/api/auth/me ``` ## 配置修改 所有配置通过 `/opt/lan-manager/lan-manager.env` 中的环境变量管理。常用配置项: | 变量 | 说明 | 默认值 | |------|------|--------| | `HOST` | 监听地址 | `0.0.0.0` | | `PORT` | 监听端口 | `8080` | | `DATA_DIR` | 数据目录 | `/opt/lan-manager/data` | | `DB_PATH` | SQLite 数据库文件路径 | `/opt/lan-manager/data/lan-manager.db` | | `ADMIN_USER` | 管理员用户名 | `admin` | | `ADMIN_PASS` | 管理员密码 | `changeme` | | `SESSION_SECRET` | Session Cookie 密钥 | `lan-manager-secret-change-in-production` | | `PING_INTERVAL` | 自动 Ping/SSH 采集间隔(秒) | `60` | | `UI_REFRESH_INTERVAL` | 前端自动刷新间隔(毫秒) | `10000` | 修改配置后重启服务生效: ```bash sudo systemctl restart lan-manager ``` ## 防火墙与公网访问 如果需要通过公网访问,建议开放端口或使用 Nginx 反向代理: **方式 A:直接开放端口** ```bash sudo ufw allow 8080/tcp ``` **方式 B:Nginx 反向代理(推荐)** ```nginx server { listen 80; server_name your-domain.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` ## 安全提醒 - **首次部署后,请立即修改 `ADMIN_PASS` 和 `SESSION_SECRET`。** - 默认情况下访客可直接查看机器列表,但无法进入机器详情页;后端 API 已对详情接口做了权限拦截。 - 建议使用 HTTPS(配合 Nginx + Let's Encrypt/certbot)。 ## 数据备份与恢复(升级前必做) 系统已内置 JSON 全量导出/导入功能,可完整保留机器、服务、关系数据,以及 SSH 配置信息。 ### 方式 A:Web 界面(管理员登录后) 进入 **机器列表** 页面,点击右上角的: - **导出数据**:下载 `lan-manager-backup-YYYYMMdd.json` - **导入数据**:选择之前下载的备份文件,系统会以 **覆盖模式** 恢复全部数据 ### 方式 B:命令行 ```bash # 导出(需要管理员 Cookie 或 session) curl -b your-session-cookie http://localhost:8080/api/export > lan-manager-backup.json # 导入(覆盖模式,会清空现有数据后恢复) curl -b your-session-cookie -X POST http://localhost:8080/api/import \ -F "file=@lan-manager-backup.json" \ -F "mode=overwrite" ``` ### ⚠️ 备份文件安全提醒 导出文件中 **包含 SSH 密码**(已按数据库中的密文/明文形式导出)。请妥善保管备份文件,避免泄露。 ## 升级步骤 1. **先导出数据备份**(见上文) 2. 停止服务: ```bash sudo systemctl stop lan-manager ``` 3. 替换二进制: ```bash sudo cp /path/to/new/lan-manager /opt/lan-manager/ sudo chown lanmgr:lanmgr /opt/lan-manager/lan-manager sudo chmod +x /opt/lan-manager/lan-manager ``` 4. 启动服务: ```bash sudo systemctl start lan-manager ``` 5. **验证数据完整性**,如有问题可执行导入恢复。 ## 卸载 如果你想完全卸载 LAN Manager,使用自带的卸载脚本即可: ```bash cd /root/lan-manager-debian12 # 或你存放安装包的目录 sudo bash uninstall.sh ``` 卸载脚本会执行以下操作: - 停止并禁用 `lan-manager` systemd 服务 - 删除 `/etc/systemd/system/lan-manager.service` - 删除程序及数据目录 `/opt/lan-manager/` - 删除运行用户 `lanmgr` - 提示清理防火墙规则(如有) **⚠️ 注意**:卸载会一并删除 `/opt/lan-manager/data/` 下的 SQLite 数据库。如需保留历史数据,请提前备份: ```bash cp /opt/lan-manager/data/lan-manager.db /backup/lan-manager.db ``` --- ## 常见问题 **Q: 服务启动失败,日志提示端口被占用?** A: 修改 `lan-manager.env` 中的 `PORT` 为其他端口,然后 `systemctl restart lan-manager`。 **Q: 如何备份数据?** A: 直接复制 SQLite 数据库文件即可:`cp /opt/lan-manager/data/lan-manager.db /backup/lan-manager.db`。