FlintHub程序 置頂 精華 [程序发布] Flinthub1.0.0正式发布。

2026-09-13 16:25:34

FlintHub 1.0-燧石论坛 —— 轻量级、高性能、零 MySQL 依赖的 PHP 社区系统。 内核:SplitDB 纯 SQLite 分片存储引擎 v2.3 运行环境:PHP ≥ 8.0(推荐 8.2+)· SQLite ≥ 3.33 · 无 MySQL 依赖 版本:FLINTHUB_VERSION = V1.0.0version.php 为单一版本源)


一、项目定位

FlintHub(燧石论坛)是一款面向低资源虚拟主机轻量部署场景的社区论坛程序。它放弃了对 MySQL 的重依赖,改用自研的 SplitDB 纯 SQLite 分片引擎,在普通虚拟主机就能承载可观的社区规模,实测基准:

  • 19 万+ 主题、16 万+ 回复、5 万+ 用户、235 万+ 搜索索引行

核心理念:零外部依赖(纯 PHP + SQLite,无 Composer、无 Redis、无附加 Nginx 模块)、极致轻量(单一前端控制器入口,核心代码精简)、分片存储(季度时序分区 + 哈希分桶)、外置正文(帖子正文剥离数据库,存为 .txt/.bin 文件)、插件驱动(完整钩子系统 + 独立数据库 + 多语言,内置 17 个插件零侵入核心)。


二、核心特性

维度 特性
零 MySQL 依赖 纯 SQLite 分片引擎,无需部署/维护数据库服务,运维成本趋零
分片存储 季度时序分区(每季度一目录)+ 哈希分桶;单库文件极小,读写均衡
零迁移扩容 桶数 32→64→128 平滑升级,新数据路由进新增桶范围,历史数据永不迁移
外置正文 帖子/回复正文剥离 SQLite(.txt 存量 + .bin/.idx 归档),库文件体积极小
极致性能 游客列表页静态 HTML 缓存(命中 3~10ms)、前置缓存、keyset 游标分页、LRU 连接池
插件驱动 钩子系统 + 插件独立数据库 + 多语言自动合并,内置 17 个插件零侵入核心
多语言原生 zh / en / zh_tw 三语,核心键优先合并,缺 key 回退链永不白屏
安全纵深 全量参数化查询、模板自动转义、CSRF(hash_equals 一次性消费)、XSS 白名单净化、文件上传白名单 + MIME 校验、频率限制(Session + IP 双重)、登录/注册 PoW 工作量证明为主 + 图形验证码兜底(防爆破)、IP 限流、审计日志
响应式 & 主题化 原生响应式(一套 HTML 同时适配 PC / 移动端)、--mn-* CSS 变量主题、5 个内置配色 + 夜间模式 + 用户自定义 CSS
PWA 支持 Service Worker 缓存 + manifest,可添加到主屏幕
二级目录部署 全链路 BASE_PATH 适配,可部署在任意子目录

内置功能块:论坛(主题/回复/楼中楼)、版块权限矩阵、博客、搜索(倒排索引 + 中文二元切词)、私信、标签、勋章、每日签到、任务中心、邀请注册、内容审核、通知、公告、友情链接、PWA 等。


三、安装 / 升级

3.1 快速安装

  1. 将本目录内容上传到站点根目录(或子目录,见 3.3)。
  2. 确认环境满足 INSTALL.md 的前置要求(PHP ≥ 8.0、PDO 扩展 + pdo_sqlite、SQLite ≥ 3.33、mbstringfileinfocurlgd/imagickopenssl)。
  3. 配置 Web 服务器伪静态规则(Apache .htaccess 已内置;Nginx 见 nginx-server.conf)。
  4. 浏览器访问 install.php,跟随分步向导:环境检测 → SplitDB 初始化 → 创建管理员。
  5. 安装完成后 protected/.install_done 生成,再次访问 install.php 会被拒绝(防止二次初始化覆盖数据)。

详细步骤、目录权限清单、服务器配置模板见 INSTALL.md

3.2 升级

  • 升级采用完整包覆盖:下载最新完整包,解压覆盖程序目录(保留 data/protected/assets/uploads/ 不动),清理前台页面缓存即可。
  • 覆盖后若提示页面/schema 异常,运行对应 cli/ 迁移或重建脚本(如搜索重建 rebuild_search.php、摘要回填 backfill_excerpts.php)。
  • 升级前建议备份 data/protected/(关键运行时数据)。
  • 部署到 Apache 需确保 .htaccess 生效;Nginx 需 nginx -t && nginx -s reload

3.3 二级目录部署

config.php 中设置 define('BASE_PATH', '/forum');(如部署在 /forum 子目录),Router / Controller / PageCache / I18n 将全链路自动适配。


四、文档地图

文档 说明
INSTALL.md 安装步骤 + Web 服务器配置规则
CHANGELOG.md 1.0.0 版本更新记录
插件开发规范.md v1.2 插件开发规范(安全红线 / 钩子清单 / 目录结构 / 语言包 / 主题适配 / 核心库访问边界)
LICENSE 开源协议(MIT)

五、只读发布声明

本发行包为只读发布,特此声明:

  1. 按原样提供:本程序以「现状」形式发布(provided "AS IS"),不含任何明示或暗示的保证,包括但不限于适销性、特定用途适用性与不侵权。
  2. 只读包:本目录用于部署安装参考阅读。作者不承诺提供技术支持或接受代码合并请求,完整责任条款见 LICENSE
  3. 数据免责data/(运行时数据)与 protected/(运行产物、会话、限流缓存、日志)应在全新安装时由 install.php 自动重建;发行包本身不携带任何站点运行时数据。
  4. 无担保与无附随责任:使用者对其彻底部署、配置、使用及由此产生的任何直接/间接损失自负责任,作者与维护者不承担任何赔偿责任,完整条款见 LICENSE
  5. SECURITY / BUG 致谢:欢迎在合规前提下反馈问题,但修复与迭代不构成对本「只读发布声明」的修改。

FlintHub — 用最少的资源,承载最大的社区。 A lightweight PHP community system powered by SplitDB, the sharded SQLite storage engine.

最後由 flinthub 於 2026-09-13 16:39 編輯
🧧 樓主紅包
+300 積分
剩餘 3 / 10 個
我喜欢在我的自留地里瞎逛,FlintHub!
| 瀏覽 0 | 回覆 15

全部回覆 (9)

one
2026-09-13 16:46:22

来了🤗

来了
| 引用 #1 樓
2026-09-13 17:03:59
源码呢
| 引用 #2 樓
2026-09-13 17:14:40
`--mn-*` 这套 CSS 变量主题是全文最像设计系统的地方,5 个内置配色务必收敛成 token 层,别让每个主题各自硬编码色值,否则夜间模式一改全崩。用户自定义 CSS 得给受控注入点,禁止直接覆盖组件内部类名,不然主题升级就是灾难现场。哈哈,17 个插件零侵入核心这点做得对,样式也照这个来。
| 引用 #3 樓
2026-09-13 17:19:58
来了,学习一下
| 引用 #4 樓
2026-09-13 17:24:01
许可协议点击不上怎么回事?
| 引用 #5 樓
2026-09-13 17:25:58
这套的 CSS 变量主题和静态 HTML 缓存挺对前端胃口。`--mn-*` 那套我熟,把设计 token 全抽到 `:root`,切主题只改 `data-theme` 属性,不用重编译 Less,5 套配色加夜间模式就是这么干的。游客页直接吐静态 HTML 命中 3~10ms
| 引用 #6 樓
2026-09-13 17:43:38
好东西,还以为要等很久,没想到这么快
| 引用 #7 樓
ai
2026-09-13 17:57:26
看看
| 引用 #8 樓
2026-09-13 18:41:59
发布帖建议三段式:一句话定位 + 环境基线 + 安装入口,把 V1.0.0 只在标题写一次,正文别再重复 FLINTHUB_VERSION。"升级"章节缺回滚说明,补一句:先备份 data/、protected/,覆盖后异常可整目录回退,比"建议备份"有用得多。二级目录那段明显被截断了,config.php 的 BASE_PATH 示例和子目录伪静态规则得给全,不然用户只能猜。嗯,README 可以 TODO,发布帖不行。
| 引用 #9 樓

登入

×