refactor: rebrand to SafeSight Edge

- Rename Agent binary: rk3588-agent → safesight-agent
- Update Go module: rk3588sys/agent → safesight-agent
- Rename CMake project: rk3588_media_server → safesight_media
- Rename Media binary: media-server → safesight-media
- Update all install paths, scripts, and config references
This commit is contained in:
tian 2026-07-17 11:00:39 +08:00
parent 5ba627f265
commit c26531b4f3
26 changed files with 139 additions and 139 deletions

View File

@ -1,9 +1,9 @@
# Minimum version based on requirements from PRD (CMake >= 3.20)
cmake_minimum_required(VERSION 3.20)
project(rk3588_media_server
VERSION 0.1.0
DESCRIPTION "RK3588 media server bootstrap"
project(safesight_media
VERSION 1.0.0
DESCRIPTION "SafeSight Media - AI-powered video analysis engine"
LANGUAGES C CXX)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
@ -84,28 +84,28 @@ install(TARGETS rk_shared_state
LIBRARY DESTINATION bin
)
add_executable(media-server ${SRC_FILES})
set_target_properties(media-server PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
target_include_directories(media-server
add_executable(safesight-media ${SRC_FILES})
set_target_properties(safesight-media PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
target_include_directories(safesight-media
PRIVATE
${CMAKE_SOURCE_DIR}/include
${CMAKE_SOURCE_DIR}/third_party
)
target_link_libraries(media-server PRIVATE project_options Threads::Threads)
target_link_libraries(safesight-media PRIVATE project_options Threads::Threads)
if(RK3588_ENABLE_FFMPEG)
target_compile_definitions(media-server PRIVATE RK3588_ENABLE_FFMPEG)
target_include_directories(media-server PRIVATE ${FFMPEG_INCLUDE_DIRS})
target_link_libraries(media-server PRIVATE PkgConfig::FFMPEG PkgConfig::SWSCALE)
target_compile_definitions(safesight-media PRIVATE RK3588_ENABLE_FFMPEG)
target_include_directories(safesight-media PRIVATE ${FFMPEG_INCLUDE_DIRS})
target_link_libraries(safesight-media PRIVATE PkgConfig::FFMPEG PkgConfig::SWSCALE)
endif()
if(RK3588_ENABLE_MPP)
target_include_directories(media-server SYSTEM PRIVATE
target_include_directories(safesight-media SYSTEM PRIVATE
${RK_MPP_ROOT}/inc
${RK_RKNN_ROOT}/examples/3rdparty/mpp/include
)
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
target_compile_options(media-server PRIVATE -Wno-pedantic)
target_compile_options(safesight-media PRIVATE -Wno-pedantic)
endif()
endif()
@ -120,11 +120,11 @@ if(RK3588_ENABLE_RGA)
message(WARNING "RGA enabled but librga not found; disable RK3588_ENABLE_RGA or install librga-dev")
else()
message(STATUS "Found librga: ${RK_RGA_LIB}")
target_compile_definitions(media-server PRIVATE RK3588_ENABLE_RGA)
target_include_directories(media-server SYSTEM PRIVATE ${RK_RGA_INCLUDE_DIR})
target_link_libraries(media-server PRIVATE ${RK_RGA_LIB})
target_compile_definitions(safesight-media PRIVATE RK3588_ENABLE_RGA)
target_include_directories(safesight-media SYSTEM PRIVATE ${RK_RGA_INCLUDE_DIR})
target_link_libraries(safesight-media PRIVATE ${RK_RGA_LIB})
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
target_compile_options(media-server PRIVATE -Wno-pedantic)
target_compile_options(safesight-media PRIVATE -Wno-pedantic)
endif()
endif()
endif()
@ -142,21 +142,21 @@ if(RK3588_ENABLE_RKNN)
if(NOT RK_RKNN_LIB)
message(WARNING "RKNN enabled but librknnrt not found; disable RK3588_ENABLE_RKNN or set RKNN_RUNTIME_LIB_DIR")
else()
target_compile_definitions(media-server PRIVATE RK3588_ENABLE_RKNN)
target_include_directories(media-server PRIVATE ${RKNN_RUNTIME_INCLUDE_DIR})
target_link_libraries(media-server PRIVATE ${RK_RKNN_LIB})
target_compile_definitions(safesight-media PRIVATE RK3588_ENABLE_RKNN)
target_include_directories(safesight-media PRIVATE ${RKNN_RUNTIME_INCLUDE_DIR})
target_link_libraries(safesight-media PRIVATE ${RK_RKNN_LIB})
endif()
endif()
if(WIN32)
target_link_libraries(media-server PRIVATE ws2_32)
target_link_libraries(safesight-media PRIVATE ws2_32)
endif()
target_compile_definitions(media-server PRIVATE
target_compile_definitions(safesight-media PRIVATE
RK_PROJECT_VERSION="${PROJECT_VERSION}"
RK_GIT_SHA="${RK_GIT_SHA}"
)
install(TARGETS media-server RUNTIME DESTINATION bin)
install(TARGETS safesight-media RUNTIME DESTINATION bin)
if(BUILD_SAMPLES)
add_subdirectory(samples)
@ -170,4 +170,4 @@ endif()
add_subdirectory(plugins)
include(GNUInstallDirs)
install(FILES configs/sample_cam1.json DESTINATION ${CMAKE_INSTALL_DATADIR}/rk3588-media-server)
install(FILES configs/sample_cam1.json DESTINATION ${CMAKE_INSTALL_DATADIR}/safesight-media)

View File

@ -1,5 +1,5 @@
# RK3588 智能视频分析系统 PRDv1.2
# SafeSight 智能视觉安全监测平台 PRDv1.2
---
@ -40,7 +40,7 @@
### 2.1 系统逻辑架构
```text
[ media-server 主进程 ]
[ safesight-media 主进程 ]
|
+-- Graph Manager (图管理加载配置、构建DAG、热更新/回滚)
|
@ -53,7 +53,7 @@
+-- HTTP Server (REST API + Web 控制台 + 状态查询)
```
- **media-server**:主入口,负责初始化配置、图构建、主事件循环。
- **safesight-media**:主入口,负责初始化配置、图构建、主事件循环。
- **Graph ManagerGraphMgr**
- 对应多个 graph每个 graph 一路/一组业务流程)。
- 实例化节点Node建立边Edge负责热更新时的 diff & 切换。
@ -1199,13 +1199,13 @@ cmake --build build -j$(nproc)
```bash
# 纯转码网关
./build/media-server --config configs/sample_cam1.json
./build/safesight-media --config configs/sample_cam1.json
# 带预处理的 pipeline
./build/media-server --config configs/sample_preprocess.json
./build/safesight-media --config configs/sample_preprocess.json
# 内置 RTSP Server 模式
./build/media-server --config configs/sample_cam1_rtsp_server.json
./build/safesight-media --config configs/sample_cam1_rtsp_server.json
```
### 10.2 交叉编译(可选)
@ -1228,7 +1228,7 @@ cmake -S . -B build-cross \
cmake --build build-cross -j$(nproc)
# 同步到板子
rsync -avz build-cross/ user@board_ip:/opt/media-server/
rsync -avz build-cross/ user@board_ip:/opt/safesight-media/
```
---

View File

@ -8,18 +8,18 @@
"discovery_port": 35688,
"device_name": "cam1_strict_minio_alarm",
"device_id_path": "/var/lib/rk3588-agent/device_id",
"device_id_path": "/var/lib/safesight-agent/device_id",
"models_dir": "/opt/rk3588-media-server/models",
"models_dir": "/opt/safesight-media/models",
"max_upload_mb": 200,
"config_path": "/opt/rk3588-media-server/etc/media-server.json",
"config_path": "/opt/safesight-media/etc/media-server.json",
"media_server_process": {
"enable": true,
"exec_path": "/opt/rk3588-media-server/bin/systemctl-wrapper.sh",
"work_dir": "/opt/rk3588-media-server",
"configs_dir": "/opt/rk3588-media-server/etc",
"pid_file": "/var/run/rk3588sys-media-server.pid",
"exec_path": "/opt/safesight-media/bin/systemctl-wrapper.sh",
"work_dir": "/opt/safesight-media",
"configs_dir": "/opt/safesight-media/etc",
"pid_file": "/var/run/safesight-media-server.pid",
"graceful_timeout_ms": 5000
},
"media_server_base_url": "http://127.0.0.1:9000",

View File

@ -16,13 +16,13 @@ import (
"syscall"
"time"
"rk3588sys/agent/internal/config"
"rk3588sys/agent/internal/discovery"
"rk3588sys/agent/internal/httpapi"
"rk3588sys/agent/internal/log"
"rk3588sys/agent/internal/mediaserver"
"rk3588sys/agent/internal/modelstore"
"rk3588sys/agent/internal/sysinfo"
"safesight-agent/internal/config"
"safesight-agent/internal/discovery"
"safesight-agent/internal/httpapi"
"safesight-agent/internal/log"
"safesight-agent/internal/mediaserver"
"safesight-agent/internal/modelstore"
"safesight-agent/internal/sysinfo"
)
var Version = "0.0.0-dev"

View File

@ -1,3 +1,3 @@
module rk3588sys/agent
module safesight-agent
go 1.21

View File

@ -6,7 +6,7 @@ import (
"path/filepath"
"sync"
"rk3588sys/agent/internal/files"
"safesight-agent/internal/files"
)
type Entry struct {

View File

@ -11,7 +11,7 @@ import (
"strings"
"time"
"rk3588sys/agent/internal/sysinfo"
"safesight-agent/internal/sysinfo"
)
const Magic = "RK3588SYS_DISCOVERY_V1"

View File

@ -15,7 +15,7 @@ import (
"strings"
"time"
"rk3588sys/agent/internal/files"
"safesight-agent/internal/files"
)
type agentBinaryUpdateResult struct {

View File

@ -10,8 +10,8 @@ import (
"strings"
"testing"
"rk3588sys/agent/internal/config"
"rk3588sys/agent/internal/mediaserver"
"safesight-agent/internal/config"
"safesight-agent/internal/mediaserver"
)
func TestHandleConfigCandidateApplyPromotesCandidateAndBacksUpCurrent(t *testing.T) {

View File

@ -11,7 +11,7 @@ import (
"strings"
"testing"
"rk3588sys/agent/internal/config"
"safesight-agent/internal/config"
)
func TestHandleConfigCandidateStoresValidatedCandidate(t *testing.T) {

View File

@ -11,8 +11,8 @@ import (
"path/filepath"
"testing"
"rk3588sys/agent/internal/config"
"rk3588sys/agent/internal/procctl"
"safesight-agent/internal/config"
"safesight-agent/internal/procctl"
)
type fakeProcessController struct {

View File

@ -11,10 +11,10 @@ import (
"strings"
"time"
"rk3588sys/agent/internal/assets"
"rk3588sys/agent/internal/audit"
"rk3588sys/agent/internal/metrics"
"rk3588sys/agent/internal/sysinfo"
"safesight-agent/internal/assets"
"safesight-agent/internal/audit"
"safesight-agent/internal/metrics"
"safesight-agent/internal/sysinfo"
)
type configFileStatus struct {

View File

@ -10,7 +10,7 @@ import (
"strings"
"time"
"rk3588sys/agent/internal/files"
"safesight-agent/internal/files"
)
type faceGalleryInfo struct {

View File

@ -8,7 +8,7 @@ import (
"strings"
"testing"
"rk3588sys/agent/internal/modelstore"
"safesight-agent/internal/modelstore"
)
func TestHandleModelsStatusReturnsInstalledModels(t *testing.T) {

View File

@ -10,7 +10,7 @@ import (
"sort"
"strings"
"rk3588sys/agent/internal/files"
"safesight-agent/internal/files"
)
type installedResource struct {

View File

@ -17,15 +17,15 @@ import (
"sync"
"time"
"rk3588sys/agent/internal/audit"
"rk3588sys/agent/internal/config"
"rk3588sys/agent/internal/files"
"rk3588sys/agent/internal/mediaserver"
"rk3588sys/agent/internal/metrics"
"rk3588sys/agent/internal/modelstore"
"rk3588sys/agent/internal/procctl"
"rk3588sys/agent/internal/sysinfo"
"rk3588sys/agent/internal/tasks"
"safesight-agent/internal/audit"
"safesight-agent/internal/config"
"safesight-agent/internal/files"
"safesight-agent/internal/mediaserver"
"safesight-agent/internal/metrics"
"safesight-agent/internal/modelstore"
"safesight-agent/internal/procctl"
"safesight-agent/internal/sysinfo"
"safesight-agent/internal/tasks"
)
type Server struct {

View File

@ -12,7 +12,7 @@ import (
"sort"
"strings"
"rk3588sys/agent/internal/files"
"safesight-agent/internal/files"
)
type Item struct {

View File

@ -14,8 +14,8 @@ import (
"sync"
"time"
"rk3588sys/agent/internal/config"
"rk3588sys/agent/internal/files"
"safesight-agent/internal/config"
"safesight-agent/internal/files"
)
var ErrNotSupported = errors.New("not supported")

View File

@ -9,7 +9,7 @@ import (
"syscall"
"time"
"rk3588sys/agent/internal/log"
"safesight-agent/internal/log"
)
func isAlive(pid int) (bool, error) {

View File

@ -14,7 +14,7 @@ import (
"strings"
"time"
"rk3588sys/agent/internal/files"
"safesight-agent/internal/files"
)
func Hostname() string {

View File

@ -205,7 +205,7 @@ if(RK3588_ENABLE_ZLMEDIAKIT AND RK_ZLMK_API_LIB)
add_custom_command(TARGET publish POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${RK_ZLMK_API_LIB}" $<TARGET_FILE_DIR:publish>
)
install(FILES "${RK_ZLMK_API_LIB}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/rk3588-media-server/plugins)
install(FILES "${RK_ZLMK_API_LIB}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/safesight-media/plugins)
endif()
set_target_properties(publish PROPERTIES
OUTPUT_NAME "publish"
@ -564,8 +564,8 @@ if(RK3588_ENABLE_ZLMEDIAKIT AND RK_ZLMK_API_LIB)
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${RK_ZLMK_API_LIB}" $<TARGET_FILE_DIR:zlm_http>
)
install(TARGETS zlm_http
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/rk3588-media-server/plugins
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}/rk3588-media-server/plugins
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/safesight-media/plugins
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}/safesight-media/plugins
)
endif()
@ -587,6 +587,6 @@ set_target_properties(ai_shoe_det PROPERTIES
)
install(TARGETS input_rtsp input_file publish preprocess ai_yolo ai_face_det ai_scrfd ai_scrfd_sliding ai_face_recog tracker gate osd alarm logic_gate region_event action_recog event_fusion storage ai_scheduler ai_shoe_det
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/rk3588-media-server/plugins
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}/rk3588-media-server/plugins
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/safesight-media/plugins
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}/safesight-media/plugins
)

View File

@ -190,11 +190,11 @@ if [ $BUILD_AGENT -eq 1 ]; then
# 编译 Agent
echo -e "${CYAN}[编译 Agent]${NC}"
go build -o rk3588-agent_linux_arm64 ./cmd/rk3588-agent
go build -o safesight-agent_linux_arm64 ./cmd/safesight-agent
echo -e "${GREEN}${NC} Agent 编译完成"
echo " 输出: $AGENT_DIR/rk3588-agent_linux_arm64"
ls -lh "$AGENT_DIR/rk3588-agent_linux_arm64"
echo " 输出: $AGENT_DIR/safesight-agent_linux_arm64"
ls -lh "$AGENT_DIR/safesight-agent_linux_arm64"
fi
echo ""
fi

View File

@ -4,7 +4,7 @@
#
# 用法: sudo ./deploy.sh [install|upgrade|status|logs|clean-hls|uninstall]
# 首次安装 Agent 时传入后台管理统一主钥匙;后续部署默认沿用设备保存的主钥匙:
# sudo AGENT_TOKEN=<managerd.json 中的 agent_token> ./deploy.sh install
# sudo AGENT_TOKEN=<safesightd.json 中的 agent_token> ./deploy.sh install
set -e
@ -22,13 +22,13 @@ PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
BUILD_DIR="$PROJECT_DIR/build"
# 安装目录
INSTALL_DIR="/opt/rk3588-media-server"
AGENT_INSTALL_DIR="/opt/rk3588-agent"
INSTALL_DIR="/opt/safesight-media"
AGENT_INSTALL_DIR="/opt/safesight-agent"
SERVICE_DIR="/etc/systemd/system"
LOGROTATE_DIR="/etc/logrotate.d"
# 运行时数据目录(持久化数据)
RUNTIME_DIR="/var/lib/rk3588-media-server"
RUNTIME_DIR="/var/lib/safesight-media"
HLS_DIR="$RUNTIME_DIR/hls"
LOGS_DIR="$RUNTIME_DIR/logs"
ALARMS_DIR="$RUNTIME_DIR/alarms"
@ -62,7 +62,7 @@ resolve_agent_token() {
echo -e "${GREEN}${NC} 使用设备已保存的后台管理统一主钥匙"
else
echo -e "${RED}错误: 未提供 AGENT_TOKEN且未找到已保存的主钥匙 $AGENT_TOKEN_FILE${NC}"
echo "首次安装必须使用sudo AGENT_TOKEN=<managerd.json 中的 agent_token> ./scripts/deploy.sh install"
echo "首次安装必须使用sudo AGENT_TOKEN=<safesightd.json 中的 agent_token> ./scripts/deploy.sh install"
echo "部署脚本不会本地生成 token。"
exit 1
fi
@ -125,8 +125,8 @@ install_logrotate() {
echo -e "${CYAN}[配置日志轮转]${NC}"
# Media Server 日志轮转
cat > "$LOGROTATE_DIR/rk3588-media-server" << 'EOF'
/var/lib/rk3588-media-server/logs/*.log {
cat > "$LOGROTATE_DIR/safesight-media" << 'EOF'
/var/lib/safesight-media/logs/*.log {
daily
rotate 7
compress
@ -143,7 +143,7 @@ EOF
# HLS 分片清理保留最近7天
cat > "$LOGROTATE_DIR/rk3588-hls" << 'EOF'
/var/lib/rk3588-media-server/hls/*/index*.ts {
/var/lib/safesight-media/hls/*/index*.ts {
daily
rotate 1
maxage 7
@ -152,7 +152,7 @@ EOF
nocompress
}
/var/lib/rk3588-media-server/hls/*/index*.m3u8 {
/var/lib/safesight-media/hls/*/index*.m3u8 {
daily
rotate 1
maxage 7
@ -162,7 +162,7 @@ EOF
}
EOF
chmod 644 "$LOGROTATE_DIR/rk3588-media-server"
chmod 644 "$LOGROTATE_DIR/safesight-media"
chmod 644 "$LOGROTATE_DIR/rk3588-hls"
echo -e "${GREEN}${NC} 日志轮转配置完成"
@ -177,7 +177,7 @@ install_hls_cleanup() {
# HLS 分片清理脚本 - 保留最近 N 天的分片
KEEP_DAYS=${1:-3}
HLS_DIR="/var/lib/rk3588-media-server/hls"
HLS_DIR="/var/lib/safesight-media/hls"
if [ ! -d "$HLS_DIR" ]; then
echo "HLS 目录不存在: $HLS_DIR"
@ -196,20 +196,20 @@ EOF
chmod +x "$INSTALL_DIR/bin/cleanup-hls.sh"
# 添加到 crontab每天凌晨3点执行
CRON_FILE="/etc/cron.d/rk3588-media-server"
CRON_FILE="/etc/cron.d/safesight-media"
cat > "$CRON_FILE" << 'EOF'
# RK3588 Media Server 定时任务
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# 每天凌晨3点清理HLS旧分片保留3天
0 3 * * * root /opt/rk3588-media-server/bin/cleanup-hls.sh 3 >> /var/lib/rk3588-media-server/logs/cleanup.log 2>&1
0 3 * * * root /opt/safesight-media/bin/cleanup-hls.sh 3 >> /var/lib/safesight-media/logs/cleanup.log 2>&1
# 每周日凌晨4点清理告警视频保留30天
0 4 * * 0 root find /var/lib/rk3588-media-server/clips -name "*.mp4" -type f -mtime +30 -delete 2>/dev/null
0 4 * * 0 root find /var/lib/safesight-media/clips -name "*.mp4" -type f -mtime +30 -delete 2>/dev/null
# 每周日凌晨4点清理告警图片保留90天
30 4 * * 0 root find /var/lib/rk3588-media-server/alarms -name "*.jpg" -type f -mtime +90 -delete 2>/dev/null
30 4 * * 0 root find /var/lib/safesight-media/alarms -name "*.jpg" -type f -mtime +90 -delete 2>/dev/null
EOF
chmod 644 "$CRON_FILE"
@ -334,7 +334,7 @@ render_template_config() {
fi
rendered_at="$(date -Iseconds)"
out_file="/tmp/rk3588-media-server-${DEPLOY_CONFIG_ID}-${DEPLOY_CONFIG_VERSION}.json"
out_file="/tmp/safesight-media-${DEPLOY_CONFIG_ID}-${DEPLOY_CONFIG_VERSION}.json"
for overlay in $DEPLOY_CONFIG_OVERLAYS; do
overlay_path="$PROJECT_DIR/$overlay"
@ -413,9 +413,9 @@ import json
import os
import re
config_file = "/opt/rk3588-media-server/etc/media-server.json"
install_dir = "/opt/rk3588-media-server"
runtime_dir = "/var/lib/rk3588-media-server"
config_file = "/opt/safesight-media/etc/media-server.json"
install_dir = "/opt/safesight-media"
runtime_dir = "/var/lib/safesight-media"
project_dir = os.path.expanduser("~/apps/OrangePi3588Media")
def fix_path(path):
@ -522,12 +522,12 @@ cmd_install_agent() {
# 查找 Agent 编译产物(优先使用预编译的 arm64 二进制)
AGENT_SOURCE=""
if [ -f "$PROJECT_DIR/agent/rk3588-agent_linux_arm64" ]; then
AGENT_SOURCE="$PROJECT_DIR/agent/rk3588-agent_linux_arm64"
echo -e "${GREEN}${NC} 找到预编译 Agent: rk3588-agent_linux_arm64"
elif [ -f "$PROJECT_DIR/agent/cmd/rk3588-agent/rk3588-agent" ]; then
AGENT_SOURCE="$PROJECT_DIR/agent/cmd/rk3588-agent/rk3588-agent"
echo -e "${GREEN}${NC} 找到源码编译 Agent: rk3588-agent"
if [ -f "$PROJECT_DIR/agent/safesight-agent_linux_arm64" ]; then
AGENT_SOURCE="$PROJECT_DIR/agent/safesight-agent_linux_arm64"
echo -e "${GREEN}${NC} 找到预编译 Agent: safesight-agent_linux_arm64"
elif [ -f "$PROJECT_DIR/agent/cmd/safesight-agent/safesight-agent" ]; then
AGENT_SOURCE="$PROJECT_DIR/agent/cmd/safesight-agent/safesight-agent"
echo -e "${GREEN}${NC} 找到源码编译 Agent: safesight-agent"
fi
if [ -z "$AGENT_SOURCE" ]; then
@ -536,10 +536,10 @@ cmd_install_agent() {
fi
mkdir -p "$AGENT_INSTALL_DIR"
mkdir -p "/var/lib/rk3588-agent"
mkdir -p "/var/lib/safesight-agent"
cp "$AGENT_SOURCE" "$AGENT_INSTALL_DIR/rk3588-agent"
chmod +x "$AGENT_INSTALL_DIR/rk3588-agent"
cp "$AGENT_SOURCE" "$AGENT_INSTALL_DIR/safesight-agent"
chmod +x "$AGENT_INSTALL_DIR/safesight-agent"
printf '%s\n' "$AGENT_TOKEN" > "$AGENT_TOKEN_FILE"
chmod 600 "$AGENT_TOKEN_FILE"
@ -553,7 +553,7 @@ cmd_install_agent() {
"discovery_enable": true,
"discovery_port": 35688,
"device_name": "rk3588_$(hostname)",
"device_id_path": "/var/lib/rk3588-agent/device_id",
"device_id_path": "/var/lib/safesight-agent/device_id",
"models_dir": "$INSTALL_DIR/models",
"resources_dir": "$INSTALL_DIR/resources",
"max_upload_mb": 200,
@ -569,7 +569,7 @@ cmd_install_agent() {
}
EOF
chown -R orangepi:orangepi "/var/lib/rk3588-agent"
chown -R orangepi:orangepi "/var/lib/safesight-agent"
echo -e "${GREEN}${NC} Agent 安装完成,已写入后台管理统一主钥匙"
}
@ -615,7 +615,7 @@ WantedBy=multi-user.target
EOF
# Agent 服务
cat > "$SERVICE_DIR/rk3588-agent.service" << EOF
cat > "$SERVICE_DIR/safesight-agent.service" << EOF
[Unit]
Description=RK3588 Agent Service
After=network.target media-server.service
@ -626,12 +626,12 @@ Type=simple
User=root
Group=root
WorkingDirectory=$AGENT_INSTALL_DIR
ExecStart=$AGENT_INSTALL_DIR/rk3588-agent --config $AGENT_INSTALL_DIR/agent.config.json
ExecStart=$AGENT_INSTALL_DIR/safesight-agent --config $AGENT_INSTALL_DIR/agent.config.json
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
SyslogIdentifier=rk3588-agent
SyslogIdentifier=safesight-agent
[Install]
WantedBy=multi-user.target
@ -672,8 +672,8 @@ cmd_install() {
echo -e "${BLUE}[启动服务]${NC}"
systemctl enable media-server
systemctl start media-server
systemctl enable rk3588-agent
systemctl start rk3588-agent
systemctl enable safesight-agent
systemctl start safesight-agent
echo ""
echo -e "${GREEN}╔════════════════════════════════════════════════════════════╗${NC}"
@ -711,7 +711,7 @@ cmd_upgrade() {
# 停止服务
echo "停止服务..."
systemctl stop media-server rk3588-agent
systemctl stop media-server safesight-agent
# 重新安装
cmd_install
@ -779,7 +779,7 @@ cmd_status() {
# Agent
echo -e "${CYAN}[RK3588 Agent]${NC}"
if systemctl is-active --quiet rk3588-agent 2>/dev/null; then
if systemctl is-active --quiet safesight-agent 2>/dev/null; then
echo -e " 状态: ${GREEN}● 运行中${NC}"
echo " 管理界面: http://$(hostname -I | awk '{print $1}'):9100"
else
@ -834,15 +834,15 @@ cmd_uninstall() {
[ "$REPLY" != "y" ] && [ "$REPLY" != "Y" ] && echo "已取消" && exit 0
echo "[1/4] 停止服务..."
systemctl stop media-server rk3588-agent 2>/dev/null || true
systemctl disable media-server rk3588-agent 2>/dev/null || true
systemctl stop media-server safesight-agent 2>/dev/null || true
systemctl disable media-server safesight-agent 2>/dev/null || true
echo "[2/4] 删除服务文件..."
rm -f "$SERVICE_DIR/media-server.service"
rm -f "$SERVICE_DIR/rk3588-agent.service"
rm -f "$LOGROTATE_DIR/rk3588-media-server"
rm -f "$SERVICE_DIR/safesight-agent.service"
rm -f "$LOGROTATE_DIR/safesight-media"
rm -f "$LOGROTATE_DIR/rk3588-hls"
rm -f "/etc/cron.d/rk3588-media-server"
rm -f "/etc/cron.d/safesight-media"
systemctl daemon-reload
echo "[3/4] 备份数据..."
@ -899,7 +899,7 @@ case "${1:-install}" in
echo " uninstall 卸载服务"
echo ""
echo "示例:"
echo " sudo AGENT_TOKEN=<managerd.json 中的 agent_token> ./deploy.sh install"
echo " sudo AGENT_TOKEN=<safesightd.json 中的 agent_token> ./deploy.sh install"
echo " sudo ./deploy.sh upgrade # 沿用设备保存的后台管理统一主钥匙"
echo " sudo ./deploy.sh status"
echo " sudo ./deploy.sh clean-hls 7 # 保留最近7天"

View File

@ -1,6 +1,6 @@
#!/bin/bash
# RK3588 Media Server 运维脚本
# 安装后位于 /opt/rk3588-media-server/script/ops.sh
# 安装后位于 /opt/safesight-media/script/ops.sh
#
# 用法: sudo ./ops.sh [status|start|stop|restart|logs|hw|ddr-status|ddr-performance|ddr-ondemand|ddr-restore]
@ -15,7 +15,7 @@ NC='\033[0m'
# 服务名称
MEDIA_SERVICE="media-server"
AGENT_SERVICE="rk3588-agent"
AGENT_SERVICE="safesight-agent"
cmd_status() {
echo -e "${BLUE}========== RK3588 Media Server 状态 ==========${NC}"
@ -65,8 +65,8 @@ cmd_status() {
# HLS 输出
echo -e "${CYAN}[HLS 输出]${NC}"
if [ -d "/var/lib/rk3588-media-server/hls" ]; then
CHANNELS=$(find "/var/lib/rk3588-media-server/hls" -maxdepth 1 -type d 2>/dev/null | wc -l)
if [ -d "/var/lib/safesight-media/hls" ]; then
CHANNELS=$(find "/var/lib/safesight-media/hls" -maxdepth 1 -type d 2>/dev/null | wc -l)
CHANNELS=$((CHANNELS - 1))
echo " 通道数: $CHANNELS"
fi
@ -74,8 +74,8 @@ cmd_status() {
# 存储使用
echo -e "${CYAN}[存储使用]${NC}"
echo " HLS: $(du -sh /var/lib/rk3588-media-server/hls 2>/dev/null | cut -f1)"
echo " 日志: $(du -sh /var/lib/rk3588-media-server/logs 2>/dev/null | cut -f1)"
echo " HLS: $(du -sh /var/lib/safesight-media/hls 2>/dev/null | cut -f1)"
echo " 日志: $(du -sh /var/lib/safesight-media/logs 2>/dev/null | cut -f1)"
echo ""
echo "命令帮助:"
@ -115,23 +115,23 @@ cmd_logs() {
}
cmd_metrics() {
/opt/rk3588-media-server/scripts/monitor_hw.sh
/opt/safesight-media/scripts/monitor_hw.sh
}
cmd_ddr_status() {
bash /opt/rk3588-media-server/scripts/ddr_mode.sh status
bash /opt/safesight-media/scripts/ddr_mode.sh status
}
cmd_ddr_performance() {
bash /opt/rk3588-media-server/scripts/ddr_mode.sh performance
bash /opt/safesight-media/scripts/ddr_mode.sh performance
}
cmd_ddr_ondemand() {
bash /opt/rk3588-media-server/scripts/ddr_mode.sh ondemand
bash /opt/safesight-media/scripts/ddr_mode.sh ondemand
}
cmd_ddr_restore() {
bash /opt/rk3588-media-server/scripts/ddr_mode.sh restore
bash /opt/safesight-media/scripts/ddr_mode.sh restore
}
# 主入口

View File

@ -40,7 +40,7 @@ if [[ ! -d "$ARTIFACT_DIR" ]]; then
exit 1
fi
REMOTE_DIR="/tmp/rk3588_media_server"
REMOTE_DIR="/tmp/safesight_media"
scp -r "$ARTIFACT_DIR" "$USER@$HOST:$REMOTE_DIR"

View File

@ -8,11 +8,11 @@
namespace {
void PrintUsage() {
std::cout << "Usage: media-server [--config <path>] [--version]\n";
std::cout << "Usage: safesight-media [--config <path>] [--version]\n";
}
void PrintVersion() {
std::cout << "RK3588 Media Server v" << rk3588::ProjectVersion()
std::cout << "SafeSight Media v" << rk3588::ProjectVersion()
<< " (git " << rk3588::GitSha() << ")\n";
}