# 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