Files
lan-manager/deploy/lan-manager-debian12/README.md

5.3 KiB
Raw Blame History

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. 进入目录并执行安装脚本:
cd lan-manager-debian12
sudo bash install.sh

安装脚本会完成以下操作:

  • 创建系统用户 lanmgr
  • 将程序安装到 /opt/lan-manager/
  • 创建数据目录 /opt/lan-manager/data/
  • 注册并启动 systemd 服务 lan-manager
  • 设置开机自启

安装后验证

# 查看服务状态
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

修改配置后重启服务生效:

sudo systemctl restart lan-manager

防火墙与公网访问

如果需要通过公网访问,建议开放端口或使用 Nginx 反向代理:

方式 A直接开放端口

sudo ufw allow 8080/tcp

方式 BNginx 反向代理(推荐)

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_PASSSESSION_SECRET
  • 默认情况下访客可直接查看机器列表,但无法进入机器详情页;后端 API 已对详情接口做了权限拦截。
  • 建议使用 HTTPS配合 Nginx + Let's Encrypt/certbot

数据备份与恢复(升级前必做)

系统已内置 JSON 全量导出/导入功能,可完整保留机器、服务、关系数据,以及 SSH 配置信息。

方式 AWeb 界面(管理员登录后)

进入 机器列表 页面,点击右上角的:

  • 导出数据:下载 lan-manager-backup-YYYYMMdd.json
  • 导入数据:选择之前下载的备份文件,系统会以 覆盖模式 恢复全部数据

方式 B命令行

# 导出(需要管理员 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. 停止服务:
    sudo systemctl stop lan-manager
    
  3. 替换二进制:
    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. 启动服务:
    sudo systemctl start lan-manager
    
  5. 验证数据完整性,如有问题可执行导入恢复。

卸载

如果你想完全卸载 LAN Manager使用自带的卸载脚本即可

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 数据库。如需保留历史数据,请提前备份:

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