功能: - 前台导航: 分类Tab切换、实时搜索、健康状态指示、响应式适配 - 后台管理: 服务/分类CRUD、系统设置、登录认证(bcrypt) - 健康检查: 定时检测(5min)、独立检查URL、三态指示(在线/离线/未检测) - 云端备份: WebDAV上传/下载/恢复/删除、定时自动备份、本地备份管理 技术栈: Go + Gin + GORM + SQLite
83 lines
1.6 KiB
Bash
Executable File
83 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Configuration
|
|
APP_NAME="tonav-go"
|
|
APP_DIR="/root/.openclaw/workspace/ToNav-go"
|
|
BINARY_NAME="tonav-go-v1"
|
|
PID_FILE="$APP_DIR/tonav-go.pid"
|
|
LOG_FILE="$APP_DIR/tonav.log"
|
|
|
|
start() {
|
|
if [ -f $PID_FILE ]; then
|
|
PID=$(cat $PID_FILE)
|
|
if ps -p $PID > /dev/null; then
|
|
echo "$APP_NAME is already running (PID: $PID)"
|
|
return
|
|
fi
|
|
fi
|
|
|
|
echo "Starting $APP_NAME..."
|
|
cd $APP_DIR
|
|
nohup ./$BINARY_NAME >> $LOG_FILE 2>&1 &
|
|
echo $! > $PID_FILE
|
|
echo "$APP_NAME started with PID: $(cat $PID_FILE)"
|
|
}
|
|
|
|
stop() {
|
|
if [ -f $PID_FILE ]; then
|
|
PID=$(cat $PID_FILE)
|
|
echo "Stopping $APP_NAME (PID: $PID)..."
|
|
kill $PID
|
|
rm $PID_FILE
|
|
echo "$APP_NAME stopped."
|
|
else
|
|
echo "$APP_NAME is not running."
|
|
fi
|
|
}
|
|
|
|
status() {
|
|
if [ -f $PID_FILE ]; then
|
|
PID=$(cat $PID_FILE)
|
|
if ps -p $PID > /dev/null; then
|
|
echo "$APP_NAME is running (PID: $PID)"
|
|
else
|
|
echo "$APP_NAME is not running (stale PID file)"
|
|
fi
|
|
else
|
|
echo "$APP_NAME is not running."
|
|
fi
|
|
}
|
|
|
|
build() {
|
|
echo "Building $APP_NAME..."
|
|
cd $APP_DIR
|
|
go build -o $BINARY_NAME
|
|
echo "Build complete."
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
start
|
|
;;
|
|
stop)
|
|
stop
|
|
;;
|
|
restart)
|
|
stop
|
|
sleep 2
|
|
start
|
|
;;
|
|
status)
|
|
status
|
|
;;
|
|
build)
|
|
build
|
|
;;
|
|
log)
|
|
tail -f $LOG_FILE
|
|
;;
|
|
*)
|
|
echo "Usage: $0 {start|stop|restart|status|build|log}"
|
|
exit 1
|
|
esac
|