zhuchunshu / sforum
SForum
Package info
Language:Go
Type:project
pkg:composer/zhuchunshu/sforum
Requires
- php: >=8.0
- ext-iconv: *
- ext-json: *
- alchemy/zippy: ^1.0
- doctrine/dbal: ^3.0
- gai871013/ip-location: ^1.1
- hassankhan/config: ^3.0
- hyperf/async-queue: 3.0.*
- hyperf/cache: 3.0.*
- hyperf/command: 3.0.*
- hyperf/config: 3.0.*
- hyperf/config-center: 3.0.*
- hyperf/crontab: 3.0.*
- hyperf/database: 3.0.*
- hyperf/db: 3.0.*
- hyperf/db-connection: 3.0.*
- hyperf/filesystem: 3.0.*
- hyperf/framework: 3.0.*
- hyperf/guzzle: 3.0.*
- hyperf/http-server: 3.0.*
- hyperf/logger: 3.0.*
- hyperf/memory: 3.0.*
- hyperf/model-cache: 3.0.*
- hyperf/paginator: 3.0.*
- hyperf/process: 3.0.*
- hyperf/rate-limit: 3.0.*
- hyperf/redis: 3.0.*
- hyperf/session: 3.0.*
- hyperf/socketio-server: 3.0.*
- hyperf/translation: 3.0.*
- hyperf/validation: 3.0.*
- hyperf/view: 3.0.*
- hyperf/view-engine: 3.0.*
- hyperf/websocket-server: 3.0.*
- jetbrains/phpstorm-stubs: ^2021.1
- laravel/serializable-closure: ^1.3
- overtrue/http: ^1.2
- rakibtg/sleekdb: ^2.15
- simplesoftwareio/simple-qrcode: ^4.2
- wikimedia/composer-merge-plugin: ^2.0
- yansongda/pay: ~3.2.0
- zhuchunshu/hyperf-auth: 3.0.*
- zhuchunshu/hyperf-hashing: 3.0.*
- zhuchunshu/whichbrowser-parser: 1.*
Requires (Dev)
- filp/whoops: ^2.13
- friendsofphp/php-cs-fixer: 3.0
- hyperf/devtool: 3.0.*
- hyperf/ide-helper: 3.0.*
- hyperf/testing: 3.0.*
- hyperf/watcher: 3.0.*
- mockery/mockery: ^1.0
- phpstan/phpstan: ^0.12
- roave/security-advisories: dev-latest
- swoole/ide-helper: ^4.5
Suggests
- ext-json: Required to use JSON.
- ext-openssl: Required to use HTTPS.
- ext-pdo: Required to use MySQL Client.
- ext-pdo_mysql: Required to use MySQL Client.
- ext-redis: Required to use Redis Client.
This package is auto-updated.
Last update: 2026-07-22 07:09:45 UTC
README
Maintainable, plugin-first open-source forum framework.
Core is the host (identity, forum primitives, permissions, extension runtime, contracts). Deployment-specific behavior—mail transport, optional search engines, storage vendors, and similar—lives in extensions.
Documentation
| Language | Start here |
|---|---|
| 简体中文 | docs/zh-CN/README.md |
| English | docs/en-US/README.md |
| Hub | docs/README.md |
Quick paths:
- 快速开始 / Getting started
- 使用说明 / Usage
- 开发指南 / Development
- 生产部署 / Deployment
- Extension technical reference:
docs/extensions/
Repository map
| Path | Role |
|---|---|
apps/web |
Nuxt 4 frontend |
apps/api |
Go Fiber API, worker, CLI |
contracts/ |
OpenAPI + Protobuf |
extensions/ |
Built-in / optional / dev packages |
docs/ |
Bilingual handbooks + extension reference |
knowledge/ |
Decisions, module notes, session handoffs |
scripts/ |
Dev and test helpers |
deploy.sh + compose*.yaml |
Production and dependency orchestration |
Local development
./scripts/dev.sh # PostgreSQL, Redis, Mailpit + migrations ./scripts/api-dev.sh # API (embeds worker in dev) cd apps/web && bun run dev # Nuxt on :3000
Background jobs: development defaults to EMBED_WORKER_IN_API=true, so the API process consumes the River queue. For production split process development (EMBED_WORKER_IN_API=false), run a standalone worker:
./scripts/worker-dev.sh # optional; only when the API does not embed the worker
Useful URLs:
- Web: http://127.0.0.1:3000
- API health: http://127.0.0.1:3000/api/v1/health
- API ready: http://127.0.0.1:3000/api/v1/ready
- Mailpit: http://127.0.0.1:18025
Meilisearch is optional (docker compose --profile search up -d meilisearch). Default search is built-in site PostgreSQL FTS.
Full steps: docs/zh-CN/getting-started.md or docs/en-US/getting-started.md.
Production
cp .env.production.example .env.production
# edit secrets and APP_URL
./deploy.sh
Details: docs/zh-CN/deployment.md / docs/en-US/deployment.md.
Contributing / agents
- Read
AGENTS.md - Read
docs/for usage and development - Read
knowledge/index.mdfor current project memory - Keep OpenAPI, tests, and knowledge notes updated with code changes