The documented one-liner fetches bootstrap.sh from raw.githubusercontent.com unauthenticated, which 404s for as long as this repository stays private -- so the single command the README exists to provide did not work for anyone. The authenticated form goes through the contents API with the raw media type, matching what github_api already does, and hands the token to curl over stdin via --config rather than -H. argv is world-readable through /proc, and a token on the command line would leak to any local user during the install; bootstrap avoids that in its own fetches for the same reason and the README should not teach the opposite. sudo -E, because the installer needs that same token to resolve and download the release. Without it sudo drops the variable and the run fails later, at the release lookup, for a reason the operator has no way to connect to this command. The public one-liner stays first: it is what this becomes once the repository is public, and the note is scoped to the current state. Also records that re-running the installer is how felis-api moves to a newer release, that it now keeps the installed root domain, and that it does not keep the channel.
3.8 KiB
3.8 KiB
Felis
一款 Kubernetes 驱动的 Minecraft 服务器托管平台,一行命令部署,自动管理生命周期与安全。
A Kubernetes-driven Minecraft server hosting platform — one command to deploy, automatic lifecycle, backup, and security.
目录
特性
- 即开即玩:玩家尝试连接时自动唤醒服务器,空闲后自动休眠,像游戏主机一样省资源。
- Web 控制面板:浏览器中查看服务器状态、在线玩家与资源用量,管理备份与恢复。
- 自动备份与恢复:定时将世界打包存档,支持从任意备份点一键回滚。
- 智慧回收:超过 15 天无人游玩的世界自动备份后删除,释放磁盘空间。
- 多核心支持:兼容 Paper、Fabric、Forge、NeoForge,经由 Velocity 代理统一入口。
- 模组自助提交:玩家自行上传模组包,服主审批通过后自动构建并部署。
- Passkey 登录:支持指纹、面容、硬件密钥等无密码认证方式。
- 零信任安全:面板流量由 Cloudflare Access 保护,集群内 API 不暴露到公网。
使用方式
在准备好的 Linux 主机上执行:
curl -fsSL https://raw.githubusercontent.com/MliroLirrorsIngenuity/Felis/main/deploy/bootstrap.sh | sudo bash
脚本将自动安装 K3s、部署控制平面并启动设置向导。完成后浏览器访问已配置的域名进入控制面板即可使用。
本仓库当前为私有,上面这条会返回 404。请改用带凭据的形式;安装器自身也需要同一个 token 去解析并下载 release,所以用
sudo -E把它带进去:export FELIS_GITHUB_TOKEN=<对本仓库有读权限的 token> printf 'header = "Authorization: Bearer %s"\n' "$FELIS_GITHUB_TOKEN" \ | curl -fsSL --config - -H "Accept: application/vnd.github.raw" \ https://api.github.com/repos/MliroLirrorsIngenuity/Felis/contents/deploy/bootstrap.sh \ | sudo -E bashtoken 经 stdin 交给
curl --config -,不放在命令行上:argv 在/proc下对本机任意用户可读, 而这正是安装器内部github_api采用同一写法的原因。
重跑这条命令也是把 felis-api 升到新版本的方式(felis setup 做不到,它用的是本机已有的二进制)。
重跑会沿用已安装的根域名,但不会沿用通道:若本机跟随 main,需一并 export FELIS_VERSION_BOOTSTRAP=dev。
从源码构建
本项目基于 Go 和 Node.js 开发:
# 后端(Go 1.26+)
go build -o felis ./cmd/felis
# 前端(Node.js 22+)
cd panel
npm ci
npm run build
# Docker 镜像
docker build -t felis:custom .
开源协议
本项目代码部分遵循 MIT License 开源协议。
协议注意事项
- 保留版权声明:在您分发本项目的副本或基于本项目衍生的软件中,必须包含原作者的版权声明和许可声明。
- 免责声明:本项目按"原样"提供,作者不承担任何因使用本项目而产生的法律责任。
致谢
- Kubernetes:底层容器编排引擎
- K3s:轻量级 Kubernetes 发行版
- Cloudflare Zero Trust:零信任安全基础设施
- PostgreSQL:数据持久化
- React:前端用户界面框架
- Vite:前端构建工具
- TailwindCSS:CSS 框架
- Bubble Tea:TUI 框架
- Minecraft:让这一切值得做