π₯ Importer β migrate your whole forum into Flarum 2, right from the admin panel
Moving to Flarum shouldn't mean losing ten years of community history. Importer brings your existing forum β members, categories, topics, and posts β into Flarum 2 from phpBB, vBulletin (3/4/5/6), XenForo, MyBB, SMF, Vanilla, NodeBB, Invision Community, Discourse, or Convoro. No SSH, no queue worker, no command line required: pick your platform, connect, test, and watch it run.
Members keep their passwords where possible β bcrypt hashes are copied straight across, so on supported platforms your users just log in like nothing happened. Post bodies are converted to Flarum's native rich-text format, so BBCode, HTML, and Markdown all come across as real formatting: bold, italics, links, quotes, lists, and code.
π§ A wizard, not a script
The whole tool lives on the extension's settings page. Pick a source platform, then either connect directly to its database or upload a dump (.sql, .sql.gz, or a SQLite file) for hosts that only hand you a backup file. Nothing is written until you start.

π Test before you touch anything
Test connection validates your credentials, confirms it really is the platform you picked, and reports exactly what it found β users, categories, topics, and posts β before a single row is written. Start import only lights up once the test passes.

π Watch it run live
The import runs in small batches with a live progress bar showing the current phase and running totals β categories, members, topics, and posts β updating as it goes.

When it finishes, you get a summary of everything imported β and you can start another.

π Built for shared hosting
This is the part I'm proudest of. The import runs as a loop of small "step" requests straight from your browser β each one processes a bounded batch and returns, so it can never hit a web timeout, even on a huge forum. Progress and the sourceβFlarum id-maps are persisted in the database, so if the tab closes or your connection drops, reopen the page and it resumes exactly where it left off.
Got a queue worker (e.g. fof/redis)? The import is handed off and runs fully in the background instead. Either way, it's safe.
ποΈ Supported sources
| Platform | Notes |
| phpBB 3.x | BBCode posts; bcrypt passwords copied across |
| vBulletin 3 / 4 Β· vBulletin 5 / 6 | one option covers both β vB5's node schema is auto-detected |
| XenForo 1.x / 2.x | BBCode posts; XF2 bcrypt passwords copied |
| MyBB 1.8 Β· SMF 2.0 / 2.1 | BBCode posts |
| Vanilla Β· NodeBB | Markdown / mixed formats; NodeBB reads its Redis store (needs the redis PHP extension) |
| Invision Community (IP.Board) | HTML posts, quotes & mentions cleaned up |
| Discourse | PostgreSQL source (needs pdo_pgsql) |
| Convoro | Convoro β Flarum; bcrypt passwords copied, so members keep their logins |
Categories are imported as tags (requires flarum/tags); if tags aren't installed, discussions and posts still import, just untagged.
βοΈ How it works under the hood
- Timeout-proof β a resumable state machine; each request processes one small batch and returns, so memory stays flat and nothing runs long enough to time out.
- Resumable β progress, cursors, and id-maps live in the database; a run survives a closed tab, a reload, or a dropped connection.
- Faithful content β post bodies go source β HTML/Markdown β Flarum's formatter, landing in Flarum's native stored format so they render as proper rich text.
- Relations preserved β members, tags, discussions, first/last-post pointers, comment counts, and participant counts are all rebuilt.
π» CLI for the big jobs
For very large migrations or scripting, there's a CLI too:
php flarum importer:run --source=phpbb \
--host=127.0.0.1 --database=my_old_forum --username=root --password=secret --prefix=phpbb_
# add --test to only check the connection and show counts
π¦ Installation
composer require ernestdefoe/importer
π Updating
composer update ernestdefoe/importer
php flarum cache:clear
Tip: import into a fresh Flarum install for the cleanest result.
π GitHub: ernestdefoe/importer
π¦ Packagist: https://packagist.org/packages/ernestdefoe/importer
π¬ Support forum: https://ernestdefoe.online
π License: MIT
Found a bug or want another source platform supported? Open an issue on GitHub or stop by the support forum β I'd love to hear how your migration goes.