v0.0.2: Java应用模板、任务中心占位符修复、端口映射修复、WFJ Panel品牌统一

This commit is contained in:
2026-09-08 12:00:49 +08:00
parent 90bc4bd398
commit c98716dd7b
8 changed files with 948 additions and 13 deletions
+22 -1
View File
@@ -287,4 +287,25 @@ VALUES ('v0.0.1', 'https://114.66.55.63:3001/download/wfj-panel-v0.0.1.exe',
- 交互式终端(xterm.js)
- Docker 容器管理(概览/容器列表/镜像/应用商店/任务中心/配置/网络/卷)
- 应用商店一键部署(Redis/MySQL/Halo)
- 系统防火墙管理(firewalld/ufw/iptables)', 1, NOW());
- 系统防火墙管理(firewalld/ufw/iptables)', 0, NOW());
-- v0.0.2
INSERT INTO app_version (version, download_url, release_notes, is_latest, created_at)
VALUES ('v0.0.2', 'https://114.66.55.63:3001/download/wfj-panel-v0.0.2.exe',
'WFJ Panel v0.0.2 更新
新增功能:
- 应用商店新增 Java 应用模板(支持选择 Java 版本、自定义启动命令、端口映射、路径可视化选择)
- 运行时类容器支持重复部署(自动生成不重复容器名)
- 应用商店参数新增 path 类型(远程目录浏览器选择宿主机路径)
问题修复:
- 修复任务中心显示占位符 {{CONTAINER_NAME}} 未替换的问题
- 修复端口映射容器端口占位符未替换导致部署失败的问题
- 修复 execDeploy 超时后 SSH stream 未销毁导致 channel 泄漏
- 修复 select 类型参数无默认值时部署按钮误判为必填项未填而置灰
- docker pull 超时从 5 分钟提升到 10 分钟
其他改进:
- 窗口标题由 SSH Panel 改为 WFJ Panel
- 登录页 LOGO 改为 WFJ Panel', 1, NOW());
+60
View File
@@ -0,0 +1,60 @@
-- ============================================================
-- Java 应用模板 —— 应用商店热更新(支持选择 Java 版本)
-- 执行方式:在 appstore 数据库中运行此 SQL
-- 执行后在 WFJ Panel 应用商店点击「同步」即可看到新模板
-- ============================================================
-- ─── 扩大端口字段长度,以容纳占位符(如 {{CONTAINER_PORT}} 为 18 字符,原 VARCHAR(16) 不够)───
ALTER TABLE app_ports MODIFY COLUMN host_port VARCHAR(32) NOT NULL COMMENT '宿主机端口';
ALTER TABLE app_ports MODIFY COLUMN container_port VARCHAR(32) NOT NULL COMMENT '容器端口';
-- ─── 主表 ───
-- image 使用 {{JAVA_IMAGE}} 占位符,部署时由用户选择的 Java 版本替换
INSERT INTO app_templates (app_key, name, tagline, description, icon, category, image, container_name, network, restart, hostname, workdir, command, sort_order, is_active)
VALUES (
'java',
'Java 应用',
'运行 Java jar 或 war 文件',
'Java 镜像默认工作目录为 /app。将主机中包含 jar/war 文件的目录挂载到 /app,通过自定义启动命令运行 Java 应用。支持 JVM 参数、环境变量、Profile 等灵活配置。适合部署 Spring Boot、Quarkus 等打包为 jar 的 Java 服务。',
'java',
'运行时',
'{{JAVA_IMAGE}}',
'{{CONTAINER_NAME}}',
'',
'always',
'',
'/app',
'{{START_COMMAND}}',
4,
1
);
SET @java_id = LAST_INSERT_ID();
-- ─── 端口映射:宿主机端口 → 容器端口(Java 应用必须暴露端口才能访问)───
INSERT INTO app_ports (template_id, host_port, container_port, protocol, sort_order) VALUES
(@java_id, '{{HOST_PORT}}', '{{CONTAINER_PORT}}', 'tcp', 0);
-- ─── 挂载卷:宿主机应用目录 → /app ───
INSERT INTO app_volumes (template_id, host_path, container_path, mode, sort_order) VALUES
(@java_id, '{{APP_DIR}}', '/app', 'rw', 0);
-- ─── 用户参数 ───
INSERT INTO app_params (template_id, param_key, label, type, placeholder, default_value, required, options, show_when, sort_order) VALUES
-- Java 版本下拉选择,value 即完整镜像地址
(@java_id, 'JAVA_IMAGE', 'Java 版本', 'select', '', '', 1,
'[{"value":"bitnami/java:latest","label":"Java Latest (最新版)"},{"value":"bitnami/java:21","label":"Java 21 LTS"},{"value":"bitnami/java:17","label":"Java 17 LTS"},{"value":"bitnami/java:11","label":"Java 11 LTS"},{"value":"bitnami/java:8","label":"Java 8 LTS"}]',
NULL, 0),
(@java_id, 'CONTAINER_NAME', '容器名称', 'text', 'java-app', 'java-app', 1, NULL, NULL, 1),
-- 启动命令:完全自定义,支持 JVM 参数、Spring Profile 等
-- 常见示例:
-- java -jar app.jar
-- java -jar app.jar --spring.profiles.active=prod
-- java -Xmx512m -Xms256m -jar app.jar
-- java -Xmx512m -Dserver.port=8080 -jar app.jar --spring.profiles.active=prod
(@java_id, 'START_COMMAND', '启动命令', 'text', 'java -jar app.jar', 'java -jar app.jar', 1, NULL, NULL, 2),
(@java_id, 'APP_DIR', '宿主机应用目录', 'path', '/path/to/app', '', 1, NULL, NULL, 3),
-- 宿主机端口:外部访问端口,默认 8080
(@java_id, 'HOST_PORT', '宿主机端口', 'number', '8080', '8080', 1, NULL, NULL, 4),
-- 容器端口:Java 应用监听端口,需与启动命令中 server.port 一致,默认 8080
(@java_id, 'CONTAINER_PORT', '容器端口', 'number', '8080', '8080', 1, NULL, NULL, 5);