Repository navigation
v0.3.0
新增
-
Java 下载源可选 —— 「Java 运行时」页安装前多了一个「下载源」:清华大学 TUNA、南京大学、
华为云、GitHub 加速,以及 Adoptium 官方直连。Adoptium 的包放在 GitHub 发布页上,国内机器
(尤其是各家云主机)直连常年只有几十 KB/s,一个 50 MB 的 JRE 能下半小时甚至超时失败;换成
国内镜像通常是几十秒的事。默认是自动:按清华 → 南大 → 华为云 → GitHub 加速 → 官方的顺序挨个试,哪个通就用哪个。
指定了某个源也一样保底 —— 镜像同步有延迟,刚发布的版本可能还没同步过去,这时会自动落到官方,
界面上的「下载源」会显示实际在用的那个,不会因为镜像没跟上就装不了。换源不改变装的是什么。 版本列表、文件名、大小和 SHA-256 始终来自 Adoptium 官方 API,
镜像只负责传那几十兆的压缩包,下完仍然逐字节校验,对不上直接丢弃、不解压——所以镜像没有
能力塞给你一个别的 JDK。安装失败时的报错也会写清是哪个源传的,方便换一个再试。选择记在
panel.json里(javaSource),下次安装默认还用这次选的;老配置没有这一项,
等同于「自动」。 -
本机终端(默认关闭) —— 「设置 → 终端」里打开开关后,侧栏多一个「终端」页:面板所在这台
机器的一个真 shell,跑在伪终端上,所以top、vim、htop、Ctrl-C、颜色和 shell 自己的
Tab 补全全都正常,中文输入输出也没问题。装插件、翻日志、改配置不用再单独 SSH 上来。跑的就是本机、身份就是面板进程的身份,不是 SSH 到别的服务器 —— 所以面板里不存任何
SSH 密钥或密码,终端也拿不到比面板本身更高的权限。默认关闭,升级面板也不会自动打开。 开启等于把面板密码变成这台机器的 SSH 密码:任何能
登录面板的人都能以运行面板的用户执行任意命令。界面上开启前会要求确认一次,开关的开/关都记进
panel.json并写进日志。关掉开关会立刻挂断所有已经开着的会话,不只是拦住新连接。会话跟着页面走:关掉标签页就挂断,连同它启动的程序一起(先 SIGHUP,3 秒后 SIGKILL)——
和实例控制台正好相反,因为没人看着的 shell 只会把命令留在半路。要让命令活得比标签页久,
用 systemd 或者在里面开 tmux / screen。同时最多 4 个会话。Windows 上不可用(需要 ConPTY),面板会直接说明,开关点不动,其余功能不受影响。
-
快照版与更新通道 —— main 分支每个通过 CI 的提交都会自动出一版快照,发布成 GitHub 上的
prerelease,想提前试新功能不用自己编译。面板更新页多了「更新通道」,在「正式版」和「快照」
之间切;默认是正式版,没人会被动升到快照上。快照版本号是下一个次版本号加后缀(
0.2.0发布后的快照是0.3-snapshot.86,数字是提交数),
按语义化版本正好落在0.2.0之后、0.3.0之前 —— 所以正式版通道永远看不见快照,而快照通道
在0.3.0发布的那一刻会自动更新过去,不会一直卡在快照轨道上。快照通道取的是版本号最新的
那一个,正式版和快照一起比。切回正式版通道时,如果当前跑的快照比最新正式版新,面板会提示把它装回最新正式版 ——
版本号是往回走的,确认弹窗里会明说,并提醒先备份数据目录。除此之外面板不会往回装。快照走的是和正式版完全相同的构建、打包和校验流程(同一个
make package),装的时候一样
校验SHA256SUMS.txt。GitHub 上只保留最近 5 个快照,旧的连同 tag 一起删掉,正式版不受影响。 -
服务端核心库 —— 下载好的服务端 jar 现在存在面板级的
data/cores/里,在
「设置 → 服务端核心」管理。一个核心只下载一次,之后开多少个服都是从库里复制一份过去,
不必每建一个服就再拉一遍同样的 60 MB —— 断网的机器上也照样能开新服。实例拿到的是自己的副本而不是共享路径,所以删掉库里的核心、或者下载一个更新的构建,
都不会改变一个正在跑的服务器是从什么启动的。自己丢进data/cores/的 jar(Fabric、
Forge、整合包服务端)也会被列出来,一样能复制给实例。 -
全局仪表盘 —— 首页从一段说明文字变成了真的仪表盘:实例运行中/总数、已装 Java 数、
核心库存量、面板版本各占一格,点进去就是对应的管理页;崩掉的实例和待更新的版本直接
在顶上提示。实例卡片上带了启动/停止按钮,常见的那两个操作不用再先进控制台。 -
实例目录选择器 —— 「服务器目录」旁边多了「浏览…」,可以直接翻本机的目录树选一个:
外挂硬盘、NAS 挂载点,或者一个你已经有服务端的目录。选了不存在的目录也没关系,创建
实例时会一并建好。目录里已有的 jar 会自动出现在「服务端 jar」的下拉里,跟着你输入的
路径走 —— 接管一个现成的服务器不再需要照着记忆敲文件名。 -
设备令牌 —— 原生客户端(桌面端 / Android)现在可以用
Authorization: Bearer认证,
不必再去模拟浏览器的 Cookie。配对走POST /api/auth/devices,要的是密码而不是一个
已登录的会话:签发一个比会话活得久的凭证,就该出示凭证本身。令牌只在配对那一次返回,
面板只留它的摘要。和浏览器会话是两套东西,互不通用 —— 会话故意存在内存里、重启即失效,这对坐在电脑前的
人是对的,对手机 App 不是:面板每自更新一次就把人登出,体验很差。设备令牌写进
panel.json,重启照常能用,可以单独吊销,在「设置 → 已配对设备」里能看到名字和最后
使用时间。改密码会一并解除所有设备的配对:这个动作通常意味着「旧密码不该再打开任何东西」,
而每个设备令牌都是拿旧密码换来的。
变更
-
面板换了一套配色,并且有了浅色模式 —— 颜色统一从一套 Material 3 配色(源色
#8F4C38,
一种暖陶土色)生成,深浅两套只是同一张表的两组取值,样式表里其余的规则都只认语义名,不认
具体颜色。默认跟随系统,侧栏底部多了一个开关,在「跟随系统 / 浅色 / 深色」之间轮换,选择记在浏览器
本地(所以是一人一设备的偏好,不写进panel.json)。模式在首屏渲染之前就定好了,刷新不会
先闪一下另一套颜色。控制台和终端在两种模式下都保持深色画布 —— Minecraft 的日志用的是 ANSI 颜色,而 ANSI 是按
深色背景配的;浅色模式下这块画布用的是配色自带的反相表面,仍然属于同一套色板。切换模式时
终端就地换色,会话和已经打印出来的内容都不受影响。图表的两条线(CPU 与内存)每种模式各有一组取值,都按各自的卡片底色跑过色觉与对比度校验;
「运行中 / 启动中 / 已崩溃」这些状态色也没有被品牌色吞掉,仍然是各自的绿、黄、红。 -
默认监听地址改成
0.0.0.0:19190—— 原先是127.0.0.1:8080,只有本机能连,想从外网
打开面板还得先开 SSH 隧道或配反代。现在装好直接用服务器 IP 加 19190 就能访问,记得在防火墙
或安全组里放行这个端口。只影响新装的面板。
listen是持久化在panel.json里的,已经跑起来的面板升级后仍然
沿用原来的地址;要跟着改,在配置里改掉或者用-listen/HYPERCRAFT_LISTEN覆盖。面板讲的是明文 HTTP,而且能在这台机器上执行任意控制台命令,所以挂公网请配 TLS 反代;想回到
原来只监听本机的行为,用-listen 127.0.0.1:19190。 -
面板级的东西都收进了「设置」 —— Java 运行时、服务端核心、面板更新现在是「设置」
下的三个分页(/settings/java、/settings/cores、/settings/update,刷新和分享链接
都认;老的/java会跳到对应分页)。这些都是不属于任何一个实例的共享资源,原先散在
总览页和实例的「启动设置」里,装个 Java 或下个核心得先滚半屏。安装/下载状态跟着提到了应用级:装到一半切去看实例,侧栏会一直标着「安装中」或「下载中」,
切回来进度条接着走 —— 这些任务本来就归守护进程管,现在界面也不再假装它只在那一页上存在。 -
实例里的「下载服务端核心」改成了「从核心库复制」 —— 联网下载统一在核心库那一页做,
实例这边只负责挑一个复制过来。原先每个实例各自下载,同一个 Paper 版本在磁盘上会存好几份,
下载任务的状态也是一实例一份;现在下载路径只有一条。
移除
GET /api/instances/{id}/jars和POST /api/instances/{id}/jars/download(及其状态、
取消端点)。前者被GET /api/fs取代(它能列出任意目录,不只是实例自己的),后者被
POST /api/cores+POST /api/instances/{id}/core取代。
安装
下载对应平台的压缩包,解压后直接运行:
tar -xzf hypercraft-0.3.0-linux-amd64.tar.gz
cd hypercraft-0.3.0-linux-amd64
./hypercraft -data ./data前端已经嵌在二进制里,不需要另外部署。开机自启参考包内的
hypercraft.service。
校验
sha256sum -c SHA256SUMS.txt --ignore-missing