Lemon-miaow
82ffa55a8f
fix(watchdog): 外部心跳、巡检失败兜底告警、状态文件损坏自动移开
2026-09-27 08:40:32 +08:00
Lemon-miaow
149ab0be66
fix(offsite): 桶内记录写入主机,演练机只读不写也不给生产 owner 发告警,take-over 显式接管
2026-09-27 07:55:40 +08:00
Lemon-miaow
c9e5e2fe3e
fix(offsite): 桶内记录密钥指纹,密钥不符时 sync 拒绝写入和清理,安装时大声提示
2026-09-27 07:21:25 +08:00
Lemon-miaow
7e6272997d
fix(bootstrap): 开着 ufw 的主机按 k3s 要求放行 pod 与 service 网段、面板和游戏端口,卸载时按 felis- 注释收回
2026-09-27 01:30:01 +08:00
Lemon-miaow
aad72ddb2b
feat(bootstrap): FELIS_RELEASE 按指定 release 的附件安装,回滚文档不再把人带回最新版
2026-09-27 01:03:38 +08:00
Lemon-miaow
5c58104e09
fix(offsite): DB 包先同步,每个对象按大小单独限时,大归档传不完不再拖住整轮同步
2026-09-27 00:55:44 +08:00
Lemon-miaow
2d82e8cca7
fix(setup): SMTP 密码和上传桶密钥同时存进 /etc/felis,安装器每次从这里重建 Secret,看门狗和 breakGlass 在 k3s 宕机时也能读到
2026-09-27 00:22:22 +08:00
Lemon-miaow
8ef7112dab
feat(backup): 玩过的世界每天在停服后自动打一个定时恢复点,按服按 owner 保留 7 个、90 天过期
2026-09-27 00:02:49 +08:00
Lemon-miaow
6f9f0c56ba
fix(bootstrap): preflight 探测下载源重试三次并以 TLS 握手为准,一次网络抖动不再拒绝安装
2026-09-26 20:04:05 +08:00
Lemon-miaow
760966660e
fix(bootstrap): 全新主机没有 PostgreSQL 集群时不再因 pipefail 中止安装
2026-09-26 19:17:49 +08:00
Lemon-miaow
56344f313b
test(bootstrap): 重复写入 [auth] 键的检查改用 $nl,dash 下不再恒过
2026-09-26 15:23:53 +08:00
Lemon-miaow
54942f30f3
feat(bootstrap): 从发布产物安装二进制、镜像与插件,Docker 按需安装
2026-09-26 15:23:53 +08:00
Lemon-miaow
40d6e4d0ca
feat(bootstrap): 在 k3s 内部署 felis-postgres 并从宿主 PostgreSQL 迁移
2026-09-26 13:17:05 +08:00
Lemon-miaow
1f2a6130ac
feat(bootstrap): 装机前一次性预检平台/内存/磁盘/端口/网段/外网,问题全列出后再停
2026-09-26 11:30:31 +08:00
Lemon-miaow
54a533103a
fix(bootstrap): felis-link.properties 内容不变就不重写,domain check 不再误报代理落后
2026-09-26 10:24:14 +08:00
Lemon-miaow
eaef592014
fix(bootstrap): offsite_enabled 改为先取变量再匹配,重跑不再因 SIGPIPE 竞态误删 off-site timer
2026-09-26 10:24:14 +08:00
Lemon-miaow
23b7c14b00
fix(bootstrap): 重跑安装器保留 [auth],换域改为拒绝并指向 felis domain set
2026-09-26 10:24:04 +08:00
Lemon-miaow
6a4c30b3f1
fix(bootstrap): kubeconfig 仅 root 可读、固定 k3s 节点名、开启 NTP 与持久日志,DHCP 地址告警并交给 watchdog 监测
2026-09-26 01:25:48 +08:00
Lemon-miaow
7f160e2feb
feat(update): 主机每日记录组件版本比对,面板更新页展示可用更新与应用命令
2026-09-25 21:50:49 +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
7d82402c18
fix(api): 未配置 SMTP 时发码门统一 503 mail_unavailable 且不再把验证码写日志,非本机中继默认强制 STARTTLS(require_tls)
2026-09-25 17:25:05 +08:00
Lemon-miaow
f156e385f0
fix(panel): 服务器地址改为一键复制并带上非默认游戏端口,玩家列表去掉无意义的连接地址列,管理员列改称内部地址
2026-09-25 12:51:16 +08:00
Lemon-miaow
367ef2678a
fix(deploy): 安装脚本的 apt 调用抑制 needrestart 以免重跑时重启代理,服务单元与镜像列表先读完再匹配避免 pipefail 下的 SIGPIPE 误判
2026-09-25 11:49:39 +08:00
Lemon-miaow
074bd1783c
fix(install): 重跑安装时撤销旧版本为世界根目录授予 uid 1000 的 ACL 与 o+x 遍历权限
2026-09-25 03:46:53 +08:00
Lemon-miaow
0770a4d676
feat(reaper): 未配置世界目录时渲染只清理备份库存的 CronJob,默认安装也每日删除过期备份,安装器与清单生成器说明回收开关状态
2026-09-25 03:42:55 +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
989be55b4a
feat(bootstrap): Velocity 堆可由 FELIS_VELOCITY_XMX 配置,全新安装预建 k3s 存储根目录消除 reaper 警告
2026-09-25 01:20:52 +08:00
Lemon-miaow
3e61fde06d
fix(bootstrap): 关闭 BuildKit 默认 attestation,无改动重跑不再重启 login/lobby;同版本重跑同时重启 registry gate
2026-09-25 00:43:02 +08:00
Lemon-miaow
1141ebcd49
ci: 加 -race、staticcheck、govulncheck、shellcheck 与真 PostgreSQL 集成测试门禁,release 复用 ci 门禁
2026-09-25 00:35:09 +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
26dc1722f4
feat(bootstrap): 先校验 SHA256SUMS 再运行下载的 felis,固定 k3s、cloudflared 与 registry 镜像版本
2026-09-24 23:39:38 +08:00
Lemon-miaow
c49336ba21
fix(bootstrap): 元数据下载在 TLS 握手中断时整体重试
2026-09-24 22:26:30 +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
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
5521e498a9
fix(platform): minecraft 命名空间强制 PodSecurity baseline,reaper 世界根目录改走静态 hostPath PV
2026-09-24 16:28:12 +08:00
Lemon-miaow
c7db7d4126
feat(db): 控制面 PG 定时备份、迁移前快照与原子恢复
2026-09-24 15:19:42 +08:00
Lemon-miaow
7819e5de50
feat(netpol): 锁定游戏服出站并为 registry 加入站围栏
2026-09-24 14:25:17 +08:00
Lemon-miaow
2961beb8fe
test(bootstrap): keep the worlds-root warning case hermetic on hosts that already run k3s ( #73 )
2026-09-24 03:11:10 +08:00
Lemon-miaow
b14bacbfc6
fix(build): mirror the Trivy Java DB — jar-bearing builds failed closed at the scan gate ( #72 )
2026-09-24 03:11:01 +08:00
Lemon-miaow
328e570309
fix(setup,install): refresh the workload namespace's felis-config mirror ( #51 )
2026-09-23 20:07:20 +08:00
Lemon-miaow
4d3c85fd06
fix(bootstrap): [smtp] carry stops hoarding the auth_source comment block ( #50 )
2026-09-23 19:45:26 +08:00
Lemon-miaow
c7e585e21d
fix(bootstrap): mirror the image batch under ONE docker start/stop
...
Live re-run: the per-image systemctl start/stop docker cycles tripped systemd's
start rate limit after three fast pushes — "Start request repeated too
quickly / start-limit-hit" — and the fourth image (the paper base) silently
never reached the registry while the installer aborted. docker.service is
socket-triggered, so every cycle counts against the burst limit twice.
push_images_to_registry now starts docker once for the whole batch and stops it
once at the end; push_image_to_registry itself no longer touches systemd.
bootstrap_test.sh pins the wrap (exactly one start, one stop, four pushes).
2026-09-23 19:23:44 +08:00
Lemon-miaow
b8e554dac7
fix(bootstrap): carry the operator's [archive] keys across re-runs too
...
Same class as 765a892 , same table-level amnesia: [archive] retention /
warn_before / max_local_bytes are the reaper's runtime knobs (read from the
config Secret at job time; built-ins 90d / 3d,1d / no cap), and write_felis_toml
rewrote the whole table as store+local_path on every re-run. An operator who
narrowed the retention window silently got the 90d built-in back.
persisted_archive_block carries the three keys forward; store and local_path
stay installer-owned (FELIS_ARCHIVE_LOCAL_PATH must equal the mount the render
passes). Extends the bootstrap_test carry case with the archive keys and the
installer-owned exclusion.
2026-09-23 19:09:57 +08:00