
一个极简 PHP 论坛。仅由一个100多KB的PHP文件构建。纯原生、无框架、无依赖,支持 SQLite、MySQL 和 PostgreSQL。适合社区站点、低成本部署和 AI 二次开发。
一个极简 PHP 论坛。由一个仅100多KB大小的PHP文件构建。纯原生、无框架、无依赖,支持 SQLite、MySQL 和 PostgreSQL。适合社区站点、低成本部署和 AI 二次开发。
Built from a single 180.8 KB PHP file. Pure native code, no framework, no Composer dependencies. Supports SQLite, MySQL and PostgreSQL. Ideal for community sites, low-cost hosting and AI-assisted development.
源码部署最低要求:
| 软件 | 版本要求 | 说明 |
|---|---|---|
| PHP | 8.1 及以上 | PHP 8.5 与当前 Docker 镜像一致 |
| PDO | 随 PHP 安装 | 至少启用下方所选数据库对应的扩展 |
| SQLite | SQLite 3 | 通过 pdo_sqlite 使用 |
| MySQL | 8.0 及以上 | 通过 pdo_mysql 使用 |
| PostgreSQL | 13 及以上 | 通过 pdo_pgsql 使用 |
| Web 服务 | Nginx 或 Apache | Apache 需启用 PHP-FPM/模块及 URL 重写 |
使用 Docker 部署还需要 Docker Engine 24 及以上、Docker Compose v2 和 unzip。Docker Compose 当前配置使用 PHP 8.5-fpm、MySQL 8.4、PostgreSQL 18 和 Nginx Alpine 镜像;源码运行时仍以 PHP 8.1+ 为最低要求。
内核和跟着的几个目录各自独立成仓库,各自推各自的远程:
| 目录 | 仓库 |
|---|---|
仓库根(index.php、app/optional/、PLUGIN.md …) |
https://github.com/bbs1git/bbs1org |
app/plugins/ |
https://github.com/bbs1git/bbs1org_plugins |
app-client/ |
https://github.com/bbs1git/bbs1org_app-client |
docker/ |
https://github.com/bbs1git/bbs1org_docker |
后三个都被主仓库的 .gitignore 排除,在主仓库里 git status 看不到它们的改动 ——
改完要进到那个目录里单独 git commit / git push。
反过来也别把 app-client/ 之类 git add 回主仓库:它带着自己的 .git,
收进来只会变成一个没有 .gitmodules 的子模块条目,指向某次提交,推上去在 GitHub 上是坏的。
服务器需先安装 Docker Engine 24+、Docker Compose v2 和 unzip。Docker 可使用以下命令安装:
curl -fsSL https://get.docker.com -o install-docker.sh
sudo sh install-docker.sh
从 源码下载 获取程序包和 Docker 部署包,解压后的 bbs1org、bbs1org_docker 目录应放在同一目录下。
curl -fL 'https://bbs1.org/plugin_market_source?path=bbs1org.zip&download=1' -o bbs1org.zip
curl -fL 'https://bbs1.org/plugin_market_source?path=bbs1org_docker.zip&download=1' -o bbs1org_docker.zip
unzip -q bbs1org.zip
unzip -q bbs1org_docker.zip
cd bbs1org_docker
cp .env.example .env
# 如需修改端口或数据库模式,请先编辑 .env
docker compose up -d
容器启动后访问默认8080端口:
http://服务器地址:8080
首次访问会进入网页安装程序,请在页面中设置站点、默认版块和管理员账号。
默认使用 SQLite。如需修改 8080 端口,或者启用 MySQL、PostgreSQL,请在启动前修改 .env。数据库容器会按 .env 中的 DB_NAME、DB_USER、DB_PASSWORD 初始化;网页安装时填写同样的数据库名、用户名和密码。
| 数据库 | COMPOSE_PROFILES |
数据库地址 | 端口 |
|---|---|---|---|
| SQLite | sqlite |
无需填写 | 无需填写 |
| MySQL | mysql |
mysql |
3306 |
| PostgreSQL | pgsql |
postgres |
5432 |
常用操作(均在 bbs1org_docker 目录执行):
docker compose ps # 查看状态
docker compose logs -f # 查看日志
docker compose restart # 重启
docker compose down # 停止并保留数据卷
环境要求:
pdo_sqlite,MySQL 需 pdo_mysql,PostgreSQL 需 pdo_pgsqlapp/data/ 有写入权限;使用 SQLite 时数据库文件也保存在该目录app/data/,该目录包含数据库、配置和运行缓存;部署完成后请确认访问 https://你的域名/app/data/ 返回 403 或 404Nginx 站点配置应包含:
location ~ ^/app/(?:data|cache|plugins|optional)(?:/|$) {
deny all;
}
Apache 可在网站根目录的 .htaccess 中加入:
RewriteEngine On
RewriteRule ^app/(data|cache|plugins|optional)(/|$) - [F,L]
启用伪静态(Rewrite)时,Nginx 在站点配置中使用:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
Apache 在启用 mod_rewrite 且允许 .htaccess(AllowOverride FileInfo 或 All)后,在网站根目录 .htaccess 中追加:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L,QSA]
bbs1org.zip。index.php 位于网站根目录。GET 方式访问:https://你的域名/index.php?a=cron宝塔和 1Panel 可在面板终端执行“Docker 源码部署”中的下载、解压和启动命令。
在后台设置底部点击“升级”。检测更新时只读取源码下载入口的 bbs1org.json,确认升级后才下载所选文件。升级前请先备份数据库、附件、头像和插件目录。
先在新数据库完成安装并登录管理员账号,再从升级页进入“数据迁入”,或访问 index.php?a=migrate。选择旧数据库类型并填写连接信息,程序会迁入旧库的全部普通数据表;当前库没有的表会自动复制字段、主键和索引后再导入数据,同名表则清空后替换,并保留原 ID。
插件数据表会一并迁入。附件、头像和插件程序文件不在数据库中,需要另外复制 app/upload/、app/avatars/ 和 app/plugins/。迁移前请备份新旧数据库。
SQLite数据目录 app/data/ 、附件目录 app/upload/、插件目录 app/plugins/ 需要定期备份。
推荐使用 AI 为本项目开发插件。插件开发规范、最小示例、资源、计划任务、数据库与 Hook 说明请阅读 开发者文档。
该文件是 bbs1 唯一的插件开发规范,开发或修改插件前应完整阅读并遵守。