Set up disposable local phpBB boards, 3.3.x or 4.0 (master), with SQLite, test fixtures, extension checkouts and optional styles. Configuration is stored in YAML.
Only use this tooling with disposable boards. --reset deletes the
board's configuration, SQLite database and cached state before reinstalling.
The installer and fixture users have public test credentials. Keep boards
local, not internet-facing.
- Download phpBB when the board directory is missing or empty: the 3.3.x release with SHA-256 verification, or phpBB 4.0 from the
masterbranch through git (board.phpbb_branch: master). - Bind-mount local extensions and enable or disable them through phpBB's CLI.
- Seed standard forum fixtures and optional Knowledgebase fixtures.
- Copy and install local styles, with an optional default style.
- Create or update an optional nginx site, with validation and rollback.
- Run mount, unmount, seed, style and cache operations without resetting the database.
- Validate configuration and preview operations with
--dry-run.
- Linux with Bash, bind-mount support and
mountpoint(util-linux). - Python 3.9 or newer with PyYAML.
- PHP CLI compatible with the board, including SQLite support (PHP 8.2 or newer for phpBB 4.0).
jqandsqlite3for reset operations, pluscurl,unzipandsha256sumfor 3.3 boards orgitandtarfor 4.0 boards.sudoaccess for mounts and permission repairs; the web group iswww-data.- nginx and PHP-FPM only when using automatic nginx site setup.
Other Linux setups may need changes to the permission or web-server settings. This is local development tooling, not a production deployment tool.
git clone https://github.com/phpbbmodders/seed-forum.git
cd seed-forumInstall the requirements using your system's package manager. For example,
Debian and Ubuntu provide PyYAML as python3-yaml.
Create config/local.yml with a minimal core-only board configuration:
board:
root: /tmp/seed-forum-board
server_name: localhost
server_port: '8093'
seeds: []
extensions: {}
styles: {}Choose a board directory reserved for disposable testing. Validate the configuration and inspect the plan before resetting:
bin/reset-board.sh --validate
bin/reset-board.sh --reset --dry-runTo carry out the destructive installation:
bin/reset-board.sh --resetThis example installs no extensions or fixtures and does not configure a
web server. To add standard fixtures, set board.seeds to
[bin/seed-standard-fixtures.php]. The configured port determines board URLs;
it does not start a server unless nginx site setup is configured.
config/local.yml is ignored by Git. For an extension-enabled configuration,
start with config/local.yml.example and replace its
machine-specific paths. Running the command without an operation prints help.
The usage guide covers configuration, extension selection, styles, nginx, fixtures, seed protection, mount records and all command options.
For local regression tests:
python3 -m unittest discover -s tests -vContributions are welcome!
- Bug reports: Open an issue.
- Everything else (questions, feature requests, ideas, general discussion): Use Discussions.
- Pull requests are welcome for bug fixes or discussed features.
- Code, testing and documentation assisted by Claude and Codex.
- Built around phpBB's CLI installer and forum APIs.
This project is licensed under the GNU General Public License v2.0.
See LICENSE for more information.