whyour
e555fcbb0b
fix: honor Python requirement specifiers and portable script discovery
2026-10-15 23:36:21 +08:00
whyour
5801f735bc
fix: improve shell compatibility and process cleanup
...
Preserve literal paths and arguments, use portable command options, validate startup configuration, and retain scripts when downloads fail.
Ensure task watchdogs and process groups are cleaned up across Bash versions, with compatibility and process lifecycle regression coverage.
2026-10-15 23:20:15 +08:00
whyour
13c0a4d21b
fix: handle mobile INI editing and silence timeout cleanup
...
Map INI to the CodeMirror properties language and fall back to plain text for unsupported modes. Reap the timeout watchdog immediately under stderr redirection to prevent Bash job notifications during cleanup.
Refs #3095 , #3096
2026-10-15 01:17:43 +08:00
whyour
73c41eed22
fix(i18n): retain Python dependency and notification audit translations
2026-10-14 10:25:13 +08:00
whyour
e435f6e886
fix(notify): audit system and JS/Python script notification results
2026-10-13 02:20:59 +08:00
whyour
db88d037db
fix(python): integrate latest develop and support older venv pip
2026-10-13 02:20:59 +08:00
whyour
be877cfddc
fix: 修复完整镜像源地址及 CRLF 任务导入 ( #3093 )
...
* fix: address six verified legacy issue regressions
* fix: limit issue patch to mirror URLs and CRLF imports
* fix: preserve APT formats and third-party repositories
2026-10-13 01:11:35 +08:00
whyour
81a60254a2
fix(python): share safe startup and honor explicit virtual environments
2026-10-12 00:23:20 +08:00
whyour
89c6355635
fix: renew system tokens and serialize authentication cache updates
2026-10-11 01:56:50 +08:00
whyour
0218404d9f
fix: 修复页面升级、ql update 与静态资源版本同步 ( #3086 )
...
* fix: validate panel upgrades and synchronize versioned static builds
* fix: add static-only mirror backfill workflow
* fix: avoid lifecycle self-kill and stop cancelled upgrade groups
* fix: build images when the shared upgrade engine changes
* fix: dispatch upgrade lifecycle through a fixed script
* fix: reclaim upgrade locks safely and normalize health probes
* fix: match backend base URL normalization exactly
2026-10-07 17:43:03 +08:00
whyour
2cab112391
fix: 加固安全输入边界并修复订阅兼容性 ( #3084 )
...
* fix: harden scoped API inputs and isolate login throttling
* fix: close script path gaps and harden security boundaries
* fix: preserve subscription aliases and avoid extension eval
* fix: allow cancelling invalid historical subscriptions
* fix: make script parent validation explicit for CodeQL
* fix: limit command execution and clarify trusted path branches
* fix: separate diff tool script access from config APIs
* fix: clean up obsolete subscription SSH credentials
2026-10-06 18:21:54 +08:00
whyour
a303e33b4e
fix: invalidate queued cron revisions and enforce task process timeouts
2026-09-29 23:37:00 +08:00
whyour
def4917447
fix: finalize exited shell tasks and preserve command environments
2026-09-29 00:52:33 +08:00
whyour
bc0f35e3f7
fix: reduce task startup overhead and lazy-load notifications ( #3080 )
2026-09-28 23:41:31 +08:00
whyour
a8310e7d51
fix: restore legacy cron schedules and shell diagnostics ( #3078 )
2026-09-27 16:16:22 +08:00
whyour
2d6c2206b3
fix: verify task termination and preserve startup configuration
2026-09-22 22:23:18 +08:00
whyour
4eb27427f8
fix: 修复 develop 调度锁、运行恢复与 Alpine 缓存并发 ( #3070 )
...
* fix: repair develop scheduler locks and runtime recovery
* test: wait for child reaping after verified termination
* fix: abort cron mutations when scheduler deletion fails
2026-09-13 13:44:44 +08:00
whyour
a94e665054
fix: 修复任务生命周期与调度就绪,优化执行和构建开销 ( #3069 )
...
* fix: harden task lifecycle and scheduler readiness
* fix: confine log writes to the configured log directory
* fix: verify complete build artifacts and untracked inputs
* fix: reconcile scheduler state and make stop win startup races
* fix: isolate cron generations and serialize scheduler recovery
2026-09-13 00:32:41 +08:00
whyour
134cd8337c
fix: read ql runtime logs from syslog
2026-08-20 09:41:42 +08:00
whyour
88200f2805
feat: add ql service log command
2026-08-20 00:56:59 +08:00
whyour
dfa73af104
fix: preserve container startup diagnostics
2026-08-18 00:40:40 +08:00
whyour
276dfc2382
perf: bound runtime memory and storage usage
2026-08-16 16:29:06 +08:00
whyour
d67f33df39
fix: 防止 task_before 污染 Node.js 依赖路径
2026-07-24 22:33:48 +08:00
whyour
da6dac8bf1
ts-node 异常,锁定 typescript 版本
2026-07-10 01:36:31 +08:00
whyour
d3016431ce
定时任务显示完整运行历史
2026-06-28 15:48:58 +08:00
whyour
369dd13212
修复 deps 目录依赖逻辑
2026-06-21 12:12:29 +08:00
whyour
b5a5fb3be6
shell 增加国际化
2026-06-14 21:19:06 +08:00
whyour
0ee0b83207
延迟增加运行时间提示
2026-06-14 15:21:29 +08:00
whyour
5f2d5bb24a
修复 esm 依赖查询路径
2026-06-13 21:08:25 +08:00
whyour
949d956aef
grpc 服务增加证书校验
2026-06-13 20:16:49 +08:00
whyour
05f8fd3805
接口提示信息国际化
2026-06-11 02:19:04 +08:00
whyour
617cf7e5b4
更新 stop emoji
2026-06-09 00:48:03 +08:00
whyour
23b41893a3
修复获取任务退出码
2026-06-07 23:28:21 +08:00
whyour
34d4526413
修复 work_dir 目录判断
2026-06-07 22:03:48 +08:00
jiandanc
0af546cd1d
feat: 支持 Python venv 隔离环境,适配 Node.js 原生部署
...
## 背景
原方案使用系统 Python + pip --prefix 安装依赖到 data/dep_cache/python3,
系统 Python 环境被污染,且无法隔离不同项目的依赖。
## 改动内容
### 核心:Python venv 支持
- shell/start.sh: 使用 python3 -m venv 创建虚拟环境,替代 --prefix 模式
- 从 .env 文件读取 PYTHON_VENV_DIR 配置
- 首次启动自动创建 .venv,已存在则跳过
- 仅将 .venv/bin 加入 PATH 优先级,不设置 PYTHONHOME/PYTHONPATH(避免破坏 venv 机制)
- .env 不再强制覆盖,仅首次从 .env.example 复制
- 启动时自动修复 task/ql 软链接指向当前部署目录
### 后端适配
- back/config/const.ts: 新增 PYTHON_VENV_DIR 常量
- back/config/util.ts: venv 模式下跳过 pip --prefix,直接使用 venv 的 pip3
### 开发模式支持
- shell/dev-env.sh: pnpm start 时自动 source,将 .venv/bin 加入 PATH
- package.json: start:back 加入 source dev-env.sh
### 新增文件
- shell/start-simplify.sh: 精简版启动脚本(跳过系统依赖安装,适用于已预装环境的服务器)
- README-NODE.md: Node.js 原生部署完整文档
### 配置
- .env.example: 新增 PYTHON_VENV_DIR=./.venv 配置项(默认注释状态)
## 兼容性
- Docker 模式不受影响(使用独立的 docker-entrypoint.sh,走原有 --prefix 逻辑)
- 未配置 PYTHON_VENV_DIR 时默认使用系统 Python(向后兼容)
2026-06-07 21:03:51 +08:00
whyour
ad92e0c2c0
修复任务统计日志
2026-06-07 15:15:12 +08:00
whyour
fd6b4e4cde
定时任务增加 work_dir 设置
2026-06-07 13:19:01 +08:00
whyour
4e803df51e
修复内部服务 ip 地址
2026-06-01 18:28:54 +08:00
whyour
e8ac195c96
增加任务统计
2026-06-01 18:20:18 +08:00
whyour
abad29cbf9
修复非 root debian dockerfile
2026-05-30 23:55:57 +08:00
whyour and dream10201
84d730d510
统一 Alpine/Debian 分支,QL_SCHEDULER 参数化调度
...
* 修改获取示例文件 api path
* 增加 debian-slim 基础镜像
* 修复 debian apt 命令,支持 qinglong 命令
* 更新 npm 版本 0.7.7
* 更新 npm v0.8.4
* 修复linux依赖检测 (#2082 )
* 修复拉取私有仓库
* 修复 shell check_server
* 修复 qinglong 命令
* 更新 npm 版本 v0.13.2
* 增加 debian 开发版本
* 修改切换 linux 镜像源
* 修复 qinglong 命令
* 移除 qinglong 命令 npm 默认镜像源
* 修复 workflow
* 更新 npm 版本 v0.14.5
* 增加 npx 命令
* 更新 workflow action 版本
* 更新 npm 版本 v0.16.0
* 修复 linux 镜像源
* 更新 npm 版本 v0.17.0
* 更新 npm 版本 v0.18.0
* 修改 npm 安装启动命令
* 更新 npm 版本 v0.19.9
* 修复 debian netcat 包名
* 更新 npm 版本 v0.20.4
* 安装 linux 依赖自动识别 alpine 和 debian
* 修改 apt 命令
* 更新 npm 版本 v0.21.2
* 修改 ts 文件执行依赖
* npm 启动增加 reload 逻辑
* 更新 npm 版本 v2.17.8
* 修复 qinglong 命令
* 更新 npm 版本 v2.17.9
* 更新 npm 版本 v2.17.10
* 更新 npm 版本 v2.17.11
* 修改 debian 版本为 12 bookworm
* 更新 npm 版本 v2.17.12
* 修改本地服务启动提示
* 更新 npm 版本 v2.17.13
* 写入文件增加文件锁
* 修复系统安装依赖提示
* 更新 npm 版本 v2.18.2-6
* 更新 nodejs 版本
* 更新 npm 版本 v2.18.3-3
* 修复 command 变量
* 移除自动清除 deb
* 修复 npm 启动脚本
* 修复发布 npm包依赖文件
* 修改 linux 启动文件逻辑
* 更新 npm 版本 v2.19.0-10
* 修复 apt 命令
* 更新 npm 版本 v2.19.1-0
* 更新 npm 版本 v2.19.2-2
* 增加 packageManager
* 增加用户 qinglong
* 更新 pipeline
* 移除 init_nginx
* 更新 npm 版本 v2.20.0
* 更新 npm 版本 2.20.1
* 更新 npm 版本 2.20.2
* fix: 修复非 root 用户启动
* chore: 合并 debian 和 alpine 逻辑
---------
Co-authored-by: dream10201 <xiuxiu10201@gmail.com >
2026-05-30 18:03:51 +08:00
whyour
57d58c871e
fix: isolate task node dependencies
2026-05-24 01:40:07 +08:00
whyour
bb6d436c19
fix: run scripts from their own directory
2026-05-24 00:15:24 +08:00
fbeb4f4a6c
Fix PM2 startup failures on ARM routers with Node.js incompatibility ( #2828 )
...
* Initial plan
* Add fallback mechanism for PM2 startup failures on incompatible hardware
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
2025-11-16 20:29:32 +08:00
8f23c61fee
Add non-root Docker user support with automatic command setup ( #2830 )
...
* Initial plan
* Add non-root user guide and improve error messages
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
* Add PM2_HOME configuration to fix non-root user permission errors
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
* Fix PM2 socket error by using /tmp for PM2_HOME instead of mounted volume
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
* Document symlink permission limitation for non-root users
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
* Clarify that scheduled tasks auto-adapt to use full paths when symlinks unavailable
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
* Add error handling for symlink creation to prevent worker crashes
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
* Add practical solutions for non-root users to use ql and task commands
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
* Modify linkCommand to create symlinks in ~/bin for non-root users
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
* 修复链接 task 命令
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
Co-authored-by: whyour <imwhyour@gmail.com >
2025-11-15 01:46:24 +08:00
58f5fe763f
Add cron task management to QLAPI ( #2826 )
...
* Initial plan
* Add cron management capabilities to QLAPI
- Added GetCrons, GetCronById, EnableCrons, DisableCrons, RunCrons to proto
- Implemented gRPC handlers for new cron operations
- Updated client.js to expose new methods to scripts
- Updated sample to demonstrate new API usage
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
* Add documentation for QLAPI cron management features
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
* Specify pnpm version 8.3.1 in package.json
Add packageManager field to enforce pnpm@8.3.1 as requested
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
* Revert pnpm-lock.yaml to original state
The lockfile was inadvertently updated during dependency installation
for proto generation. Reverting to maintain consistency with pnpm@8.3.1.
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
* Regenerate proto files with correct tool versions
Regenerated using protoc v3.17.3 and protoc-gen-ts_proto v2.6.1
to match the original project configuration.
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
2025-11-14 23:20:56 +08:00
214241797d
Fix QlPort and QlGrpcPort environment variables ignored in host network mode and pm2 reload ( #2825 )
...
* Initial plan
* Fix host mode port configuration by using QlPort environment variable
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
* Fix GRPC_PORT conflict in host network mode
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
* Ensure BACK_PORT and GRPC_PORT survive pm2 reload with --update-env
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
* Move env.sh sourcing after fix_config to preserve more environment variables
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
* Refactor: Extract export_ql_envs function and move env.sh sourcing earlier
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
* Extract load_ql_envs function and reorder initialization in docker-entrypoint.sh and update.sh
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com >
2025-11-14 22:56:39 +08:00
whyour
06aa07329f
修复日志目录逻辑
2025-11-09 21:42:45 +08:00
whyour
0e28e1b6c4
修复 pm2 日志目录
2025-11-09 17:52:38 +08:00
whyour
399728b433
修复 jwt 认证
2025-11-02 22:28:58 +08:00