forked from Eeveid/lightOps
60 lines
1.4 KiB
Bash
Executable File
60 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env sh
|
|
set -eu
|
|
|
|
if [ "$(id -u)" -ne 0 ]; then
|
|
echo "请使用 root 用户运行" >&2
|
|
exit 1
|
|
fi
|
|
|
|
install -d /opt/lightops /etc/lightops
|
|
chmod 0755 /opt/lightops
|
|
|
|
if [ ! -x /opt/lightops/lightops-server ]; then
|
|
echo "运行此脚本前,请先将 lightops-server 放到 /opt/lightops/lightops-server" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f /etc/lightops/server.toml ]; then
|
|
cat >/etc/lightops/server.toml <<'EOF'
|
|
bind = "0.0.0.0:8080"
|
|
database_url = "sqlite:///opt/lightops/lightops.db?mode=rwc"
|
|
jwt_secret = "请替换为足够长的随机密钥"
|
|
public_url = "https://panel.example.com"
|
|
static_dir = "/opt/lightops/web"
|
|
registration_token_ttl_minutes = 30
|
|
task_timeout_secs = 20
|
|
EOF
|
|
fi
|
|
|
|
cat >/etc/systemd/system/lightops-server.service <<'EOF'
|
|
[Unit]
|
|
Description=LightOps Server
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
StartLimitIntervalSec=300
|
|
StartLimitBurst=10
|
|
|
|
[Service]
|
|
Type=simple
|
|
WorkingDirectory=/opt/lightops
|
|
ExecStart=/opt/lightops/lightops-server --config /etc/lightops/server.toml
|
|
Restart=always
|
|
RestartSec=5
|
|
KillSignal=SIGINT
|
|
TimeoutStopSec=20
|
|
User=root
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
|
|
systemctl daemon-reload
|
|
systemctl enable --now lightops-server
|
|
sleep 2
|
|
if ! systemctl is-active --quiet lightops-server; then
|
|
echo "Server 启动失败,最近日志如下:" >&2
|
|
journalctl -u lightops-server -n 80 --no-pager >&2 || true
|
|
exit 1
|
|
fi
|
|
echo "LightOps Server 已安装并运行"
|