mirror of
https://github.com/moeacgx/Telegram-Panel.git
synced 2026-06-01 23:20:57 +08:00
本次版本主要更新: - 新增应用内一键更新:在系统设置页增加“应用更新(Docker)”,支持检查新版本、匹配当前架构更新包、点击后自动下载并部署。 - 新增自更新服务 AppSelfUpdateService:基于 GitHub Release 读取版本与资产,执行下载、解压、目录切换(app-current/app-previous)并触发程序重启。 - 新增 SelfUpdateOptions 配置:支持开关、工作目录、Docker-only 限制、下载超时与重启延迟等参数化控制。 - Docker 启动链路改造:新增 entrypoint 脚本,容器重启后优先从 /data/app-current 启动更新版本,并统一挂载 /data/logs 与 /data/appsettings.local.json。 - Release 工作流增强:自动发布时同时构建并上传 linux-x64/linux-arm64 zip 资产,为面板内一键更新提供标准下载源。 - CI 触发范围补齐:Docker workflow 监听 docker 目录变更,确保 entrypoint 变更可触发镜像构建验证。 - 更新检查兼容性修复:为 UpdateCheckService 的 GitHub 字段增加 JsonPropertyName 映射,确保 tag/release 信息解析稳定。 - README 补充自动更新文档:新增面板一键更新流程、资产依赖与使用限制说明。
36 lines
1011 B
Bash
36 lines
1011 B
Bash
#!/usr/bin/env sh
|
||
set -eu
|
||
|
||
APP_ENTRY="TelegramPanel.Web.dll"
|
||
DEFAULT_APP_DIR="/app"
|
||
UPDATED_APP_DIR="/data/app-current"
|
||
|
||
mkdir -p /data /data/sessions /data/logs
|
||
if [ ! -f /data/appsettings.local.json ]; then
|
||
printf '{}' > /data/appsettings.local.json
|
||
fi
|
||
|
||
APP_DIR="$DEFAULT_APP_DIR"
|
||
if [ -f "$UPDATED_APP_DIR/$APP_ENTRY" ]; then
|
||
APP_DIR="$UPDATED_APP_DIR"
|
||
fi
|
||
|
||
# 运行目录下日志统一指向 /data/logs,避免更新目录轮换后日志丢失。
|
||
if [ -e "$APP_DIR/logs" ] && [ ! -L "$APP_DIR/logs" ]; then
|
||
rm -rf "$APP_DIR/logs"
|
||
fi
|
||
if [ ! -e "$APP_DIR/logs" ]; then
|
||
ln -s /data/logs "$APP_DIR/logs" || true
|
||
fi
|
||
|
||
# 面板保存的本地配置统一使用 /data/appsettings.local.json
|
||
if [ -e "$APP_DIR/appsettings.local.json" ] && [ ! -L "$APP_DIR/appsettings.local.json" ]; then
|
||
rm -f "$APP_DIR/appsettings.local.json"
|
||
fi
|
||
if [ ! -e "$APP_DIR/appsettings.local.json" ]; then
|
||
ln -s /data/appsettings.local.json "$APP_DIR/appsettings.local.json" || true
|
||
fi
|
||
|
||
cd "$APP_DIR"
|
||
exec dotnet "$APP_ENTRY"
|