feat(M5): 前端完善 + 部署 — Vue3 全量页面、仪表盘统计与我的审计接口、systemd/sudoers/迁移脚本、部署文档
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# ws_usernode systemd 服务单元(生产部署)
|
||||
#
|
||||
# 安装:
|
||||
# 1. 构建单二进制:make build-embed(含前端产物)
|
||||
# 2. 安装二进制与配置:
|
||||
# sudo install -o usernode -g usernode -m 0755 bin/usernode /usr/local/bin/usernode
|
||||
# sudo install -o root -g root -m 0644 config.example.toml /etc/usernode/config.toml
|
||||
# (按需编辑 /etc/usernode/config.toml:监听地址、数据库、SMTP、system.sudo=true)
|
||||
# 3. 创建运行用户与数据目录:
|
||||
# sudo useradd -r -s /usr/sbin/nologin -d /var/lib/usernode usernode
|
||||
# sudo mkdir -p /var/lib/usernode && sudo chown usernode:usernode /var/lib/usernode
|
||||
# 4. 安装 sudoers 白名单(节点以专有用户经 sudo -n 执行系统账号命令,见 sudoers.example):
|
||||
# sudo cp deploy/sudoers.example /etc/sudoers.d/usernode && sudo visudo -c
|
||||
# 5. 安装本单元并启动:
|
||||
# sudo install -o root -g root -m 0644 deploy/usernode.service /etc/systemd/system/usernode.service
|
||||
# sudo systemctl daemon-reload
|
||||
# sudo systemctl enable --now usernode
|
||||
# 6. 初始化:migrate + 创建初始管理员
|
||||
# sudo -u usernode usernode migrate --config /etc/usernode/config.toml
|
||||
# sudo -u usernode usernode admin create --config /etc/usernode/config.toml \
|
||||
# --username root --password 'xxx' --email admin@example.com
|
||||
#
|
||||
# 说明:
|
||||
# - 以 usernode 专有用户运行;数据(SQLite / 审计归档)在 /var/lib/usernode。
|
||||
# - 生产必须配置 [system] sudo=true dry_run=false,配合 /etc/sudoers.d/usernode 白名单。
|
||||
# - 建议前置 nginx/caddy 反向代理启用 TLS;[server] listen 保持 127.0.0.1。
|
||||
|
||||
[Unit]
|
||||
Description=ws_usernode server user management node
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=usernode
|
||||
Group=usernode
|
||||
WorkingDirectory=/var/lib/usernode
|
||||
ExecStart=/usr/local/bin/usernode serve --config /etc/usernode/config.toml
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
Restart=on-failure
|
||||
RestartSec=3
|
||||
# 安全加固
|
||||
NoNewPrivileges=true
|
||||
ProtectSystem=strict
|
||||
ProtectHome=true
|
||||
ReadWritePaths=/var/lib/usernode /var/log/usernode /etc/usernode
|
||||
PrivateTmp=true
|
||||
PrivateDevices=true
|
||||
ProtectKernelTunables=true
|
||||
ProtectKernelModules=true
|
||||
ProtectControlGroups=true
|
||||
# 日志走 journald
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user