Lemon-miaow
6a4c30b3f1
fix(bootstrap): kubeconfig 仅 root 可读、固定 k3s 节点名、开启 NTP 与持久日志,DHCP 地址告警并交给 watchdog 监测
2026-09-26 01:25:48 +08:00
Lemon-miaow
b65c2c00b3
feat(plugins): 插件侧计数器与周期健康日志,Limbo/刷新失败按故障周期升级日志
2026-09-26 00:33:04 +08:00
Lemon-miaow
f1414b5cc8
docs(link): 写明内部面明文 HTTP 的单节点前提与放行范围,修正配置模板里的内部面地址
2026-09-25 23:03:02 +08:00
Lemon-miaow
7bf81a0921
feat(submit): 模组上传改为分片续传并显示进度,经 Cloudflare 边缘也能传满 1GiB
2026-09-25 22:39:43 +08:00
Lemon-miaow
24373823cc
feat(build): 扫描门按可配严重度拦截并可接受已知风险,留存 Trivy 报告与 CycloneDX SBOM,面板构建页展示扫描结果
2026-09-25 21:28:57 +08:00
Lemon-miaow
d76683f5cb
fix(setup): 系统服与副本 Secret 改用带乐观锁的 merge-patch 并冲突重试,安装器在构建变化时把登录与大厅固定到 digest
2026-09-25 20:04:06 +08:00
Lemon-miaow
b384f6281f
feat(crd): 数值字段加上下限校验,rcon.port 用 CEL 限定默认端口,文档写明 v1beta1 演进与多节点前提
2026-09-25 19:49:09 +08:00
Lemon-miaow
925cfcf8f8
fix(operator): StatefulSet 显式保留世界卷,同名旧世界卷仍在时建服回 409 world_volume_exists,文档写明孤儿卷查找与单节点约束
2026-09-25 19:38:13 +08:00
Lemon-miaow
87dee3e5a5
feat(api): 单次上传上限改为 context_max_bytes 可配,Cloudflare 边缘后默认 95Mi,新增 GET /me/submissions/limits 供面板预检
2026-09-25 18:31:10 +08:00
Lemon-miaow
7d82402c18
fix(api): 未配置 SMTP 时发码门统一 503 mail_unavailable 且不再把验证码写日志,非本机中继默认强制 STARTTLS(require_tls)
2026-09-25 17:25:05 +08:00
Lemon-miaow
084ba1ed9e
feat(retention): felis-api 定时清理过期会话、验证码、挑战、绑定码等表,审计按 [audit] retention 保留,新增 felis db audit-export 导出归档
2026-09-25 15:53:34 +08:00
Lemon-miaow
38288e1c60
fix(api): 删除未接通的 Access JWT 委托,外部面只认会话 cookie,admin 主机的 IP 判定只认安装指定的地址,文档与 OpenAPI 同步
2026-09-25 15:35:26 +08:00
Lemon-miaow
a883c1fe07
feat(api): 内部面 token 按调用方拆分为 velocity/limbo/build/ops 并按路由限定调用方,审计来源区分调用方,安装器生成并下发各自 Secret,新增 felis rotate-token 轮换命令
2026-09-25 15:21:41 +08:00
Lemon-miaow
88d3dd7121
fix(store): 数据库连接池限 25 条并设语句与空闲事务超时,迁移锁固定在取锁的连接上释放,API 导出连接池指标
2026-09-25 13:25:45 +08:00
Lemon-miaow
e0fa0268e0
docs(troubleshooting): 新增整机灾难恢复清单、各类数据的恢复点、恢复顺序与重建后核验步骤
2026-09-25 09:24:54 +08:00
Lemon-miaow
2779d8f5cf
fix(offsite): 服务器或白名单按摘要钉住的 felis/ 与 mirror/ 版本也进异地副本,恢复只按摘要推回不动安装器的 tag
2026-09-25 05:00:02 +08:00
Lemon-miaow
8fb3d298ae
feat(offsite): 异地副本加入提交上传的整合包,按内容去重加密,索引按版本保留 14 天,新增 fetch-uploads 恢复
2026-09-25 04:48:34 +08:00
Lemon-miaow
e3ac9cd545
feat(offsite): 异地副本加入 registry 用户镜像,按摘要加密去重,索引按版本保留 14 天,新增 fetch-images 回推恢复
2026-09-25 04:33:23 +08:00
Lemon-miaow
0770a4d676
feat(reaper): 未配置世界目录时渲染只清理备份库存的 CronJob,默认安装也每日删除过期备份,安装器与清单生成器说明回收开关状态
2026-09-25 03:42:55 +08:00
Lemon-miaow
fe15b56074
docs(reaper): 说明回收前停服持锁、归档回读校验与存储清扫、无世界卷时的处理及运行汇总各计数
2026-09-25 03:34:54 +08:00
Lemon-miaow
f8f112b8ca
feat(api): 访问日志与 HTTP/运行时指标、安全响应头与面板 CSP、跨站写拦截、请求体读截止、SSE 定期重鉴权与续传、404/405/413 信封、status 按所有权裁剪、停机并发排空
2026-09-25 02:14:08 +08:00
Lemon-miaow
3ed6603201
feat(store): api/reaper/offsite/migrate 按版本集合校验 schema,库比二进制新时拒绝启动;bootstrap 迁移前失败回滚宿主二进制
2026-09-25 01:46:33 +08:00
Lemon-miaow
b1678f78c8
feat(update): felis update 报告 JRE 与 PostgreSQL(含停更提示),bootstrap 支持 FELIS_UPGRADE_DEPS=1 升级 k3s/cloudflared
2026-09-25 01:35:52 +08:00
Lemon-miaow
3e61fde06d
fix(bootstrap): 关闭 BuildKit 默认 attestation,无改动重跑不再重启 login/lobby;同版本重跑同时重启 registry gate
2026-09-25 00:43:02 +08:00
Lemon-miaow
82545548e7
feat(bootstrap): game stack 按 lock 文件固定构建并校验 sha256,基础镜像按 digest 固定,JRE 固定补丁版本
2026-09-25 00:24:02 +08:00
Lemon-miaow
aace66e8d3
fix(bootstrap): 重跑只重启有变化的 Velocity、系统服与 PostgreSQL,无 firewalld 时用 nftables 收口 5432,PG 大版本不符拒绝启动
2026-09-25 00:06:47 +08:00
Lemon-miaow
a4fa16ae69
feat(bootstrap): 控制面镜像按版本打 tag,升级后 rollout undo 可回到上一版本
2026-09-24 23:52:30 +08:00
Lemon-miaow
07eb682358
docs(upgrade): 列出安装器对下载物的校验与离线导入 registry 镜像的做法
2026-09-24 23:39:39 +08:00
Lemon-miaow
8296153a38
docs(build): 说明构建工具镜像、定时刷新与离线环境做法
2026-09-24 23:25:21 +08:00
Lemon-miaow
80c4ea8966
docs(registry): 说明 manifest 清理、GC 窗口、PVC 容量与上传上限
2026-09-24 23:10:40 +08:00
Lemon-miaow
a27d76ae1d
docs(build): 修正上下文存储与构建镜像拉取的过时描述
2026-09-24 22:26:29 +08:00
Lemon-miaow
e836a73a8a
fix(build): 构建并发上限与排队,构建命名空间加 ResourceQuota,SyncAll 逐个容错
2026-09-24 22:26:21 +08:00
Lemon-miaow
e521cf5976
fix(submit): 审阅绑定上下文 sha256,批准须带摘要,构建只从内部 API 取上下文并校验字节
2026-09-24 22:24:50 +08:00
Lemon-miaow
13b65e19ec
fix(build): 构建 pod 等出口策略生效再运行,加 seccomp、可选 user namespace 与磁盘上限,上下文解包限总字节与条目数
2026-09-24 20:42:14 +08:00
Lemon-miaow
9bda3a52fa
fix(backup): 手动备份按服冷却、每服保留上限与独立保留期,容量驱逐不再删除回收世界的唯一副本
2026-09-24 19:58:59 +08:00
Lemon-miaow
f69cdec9d4
fix(reaper): 有服务器处理失败或过期备份删不掉时以非零码退出,让 Job 失败告警触达运维
2026-09-24 19:34:09 +08:00
Lemon-miaow
22becd6859
fix(reaper): 认领时重置活跃时钟与预警,回收只复用本次认领后的 reaper 归档
2026-09-24 19:31:23 +08:00
Lemon-miaow
47890ca913
feat(offsite): 世界归档与数据库备份加密同步到异地 S3,reaper 确认异地副本后才删除世界
2026-09-24 19:25:16 +08:00
Lemon-miaow
d17524cd67
feat(watchdog): 主机侧巡检定时器按异常邮件通知平台所有者,operator 增加 phase 与 build_info 指标、卡死存活探针与告警规则
2026-09-24 18:06:19 +08:00
Lemon-miaow
215bfd78d7
fix(images): 服务器镜像在创建时固定到仓库 digest,更换镜像需确认备份,安装器重建前先固定旧服并推送不可变版本标签
2026-09-24 16:57:38 +08:00
Lemon-miaow
857b6da886
fix(operator): 删除依赖 rcon-cli 的 preStop 死代码,缩容前由 operator 经 RCON 执行 save-all flush
2026-09-24 16:39:22 +08:00
Lemon-miaow
5521e498a9
fix(platform): minecraft 命名空间强制 PodSecurity baseline,reaper 世界根目录改走静态 hostPath PV
2026-09-24 16:28:12 +08:00
Lemon-miaow
c1796bea17
feat(servers): 新建服务器默认空闲 10 分钟自动停服,面板可调,converge 回填旧服,系统服不休眠
2026-09-24 16:12:53 +08:00
Lemon-miaow
bd909d5858
fix(operator): 读不出玩家数时暂停空闲自动停服,支持 1.12/Bukkit/EssentialsX 与颜色码
2026-09-24 16:06:55 +08:00
Lemon-miaow
857c73a66a
fix(audit): 审计按账号 id 归属并记录来源 IP/UA,登录失败与限速入审计和指标,写入失败计数告警
2026-09-24 16:02:44 +08:00
Lemon-miaow
c4e4953f3d
fix(auth): 公开登录门按来源限速并设全站发信上限,冷却表定期清理
2026-09-24 15:51:42 +08:00
Lemon-miaow
c7db7d4126
feat(db): 控制面 PG 定时备份、迁移前快照与原子恢复
2026-09-24 15:19:42 +08:00
Lemon-miaow
abfe60d62d
fix(api): wake 与回档/备份/改文件按服务器互斥
2026-09-24 14:39:02 +08:00
Lemon-miaow
7819e5de50
feat(netpol): 锁定游戏服出站并为 registry 加入站围栏
2026-09-24 14:25:17 +08:00
Lemon-miaow
b9ebc872ad
docs(troubleshooting): the [INERT] legend points at a field that no longer exists
...
The legend said "§12 lists the one field this still applies to", but the last
inert field (spec.storage.retainOnDelete) was removed rather than implemented
(§13), and §12 has said "every field below is read by a controller" since.
Reworded so a reader whose change looks ignored follows the condition question
instead of hunting for a dead field.
2026-09-24 10:35:35 +08:00