-
Notifications
You must be signed in to change notification settings - Fork 0
Upgrading from FluxBB
eveBB's database schema is fully compatible with FluxBB 1.5.x, so moving a FluxBB board to eveBB is an in-place switch, not a migration. Older FluxBB 1.4 and 1.2 boards are upgraded automatically by the bundled db_update.php. This page also covers eveBB's own built-in updater for staying current afterwards.
Take a database backup first, as you would for any upgrade.
- Back up your database and files.
- Set up a fresh eveBB file tree (upload a release, or clone the repository).
- Copy your existing
config.phpinto the eveBB tree. Keep yourimg/avatars/directory and any custom styles fromstyle/. - Open the forum in your browser.
That's it. On the first page load, eveBB notices the database is behind and redirects you to db_update.php, which walks you through the update. FluxBB 1.5 boards need only light schema touch-ups (new columns and settings); posts, users, and permissions are untouched.
One thing to check in config.php: eveBB requires a $password_hash_cost setting (used for bcrypt hashing). If your FluxBB config.php doesn't have it, add:
$password_hash_cost = 10;db_update.php will stop with a "password cost missing" error until it's present.
-
FluxBB 1.5.x — supported directly (same schema family;
db_update.phpapplies eveBB's additions). -
FluxBB 1.4.x — supported; carries the
o_database_revisionmarker thatdb_update.phpuses to know what to apply. -
FluxBB / PunBB 1.2 — supported, including an optional charset conversion to UTF-8 (1.2 boards predate enforced UTF-8). You'll be asked whether to convert and from which charset (default ISO-8859-1; override the assumed connection charset with
define('FORUM_DEFAULT_CHARSET', 'latin1');inconfig.phpif needed). -
Anything older (pre-1.2 databases without
o_database_revision) — not supported;db_update.phprejects them with a version mismatch error. Upgrade to FluxBB 1.5 first using FluxBB's own tools, then switch to eveBB.
include/common.php compares three revision numbers stored in the database (o_database_revision, o_searchindex_revision, o_parser_revision) against the constants shipped in the code (FORUM_DB_REVISION, FORUM_SI_REVISION, FORUM_PARSER_REVISION). If any stored revision is missing or older, every page load redirects to db_update.php until the update completes.
If only the version label (o_cur_version) is old but the schema revisions are current — the normal state right after a file-only update — no redirect happens: the label is bumped silently in the background and the board carries on.
The guided update runs in stages, batching long operations (300 rows per cycle) to avoid timeouts:
-
Schema changes — widens email fields to 80 chars and IP fields to 39 chars (IPv6), converts
posts.messagetoMEDIUMTEXT, adds newer columns (users.dst,users.country,users.birthday,online.last_post,online.last_search, ...), drops obsolete ones (use_avatar,save_pass,aim, ...), creates thelogin_attemptstable, and inserts any missing settings — including eveBB's own. Note that the login throttle, registration CAPTCHA, and visual editor are switched on for upgraded boards (matching fresh-install defaults), while "require profile details" is inserted as off so existing registration flows aren't disturbed. All of these can be changed afterwards in Administration → Options. - Post/signature re-preparse — regenerates the cached BBCode parse of every post and signature when the parser revision changed.
- Charset conversion (1.2 boards only, optional) — converts every table to UTF-8, batch by batch. If case-insensitive UTF-8 comparison creates duplicate usernames, you're prompted to rename the collisions.
-
Password hardening — widens
users.passwordto 255 chars and rehashes legacy password hashes (MD5 from 1.2, salted SHA-1 from 1.3, SHA-1 from 1.4) into tagged wrappers. Users log in with their existing passwords, which are then transparently re-hashed to bcrypt on their next successful login. The oldsaltcolumn is dropped. - Search index rebuild — truncates and rebuilds the full-text index when the index format changed.
-
Finish — stamps the new version and revisions, falls back to
English/Carbonif the board's default language or style is missing from the new tree, re-syncs all forum counters, and clears the cache.
While the update runs, a lock file (cache/db_update.lock) prevents a second browser from starting a conflicting run; visitors see a maintenance message. The lock is removed when the update finishes.
- Passwords keep working — hashes are migrated transparently; nobody needs a reset.
-
Styles: eveBB ships only the Carbon style. Users whose selected FluxBB style (Air, Earth, Fire, ...) is missing from the new tree fall back to the board default. You can copy FluxBB 1.5 styles into
style/and they will work — see the Styling Guide. - New security defaults: the login throttle is enabled after upgrade (5 attempts, 15-minute lockout per IP).
- Messaging contacts (from 1.23.0): the legacy Jabber, ICQ, MSN, and Yahoo profile fields are removed — including any data users had entered in them — and replaced with Discord, Telegram, Signal, X (Twitter), Mastodon, and Bluesky.
Once on eveBB, you rarely need to touch files by hand again. In Administration → Maintenance:
-
Check for updates queries the GitHub releases API (
https://api.github.com/repos/evebb/EveBB/releases) and reports whether a newer release exists. The admin index also shows a non-blocking alert when one is available (the check is cached for 12 hours and never delays page loads). -
Update to X downloads the release package over HTTPS (certificate verification enforced), verifies its published SHA-256 checksum (a mismatch aborts the update), and unpacks it over the forum root — while preserving
config.php,.htaccess,img/avatars/,cache/,.git/, and skippinginstall.php. It then clears the generated caches and removes any leftoverinstall.php.
If the new release changed the database schema, the next page load hands off to db_update.php automatically, exactly as described above.
Requirements for the one-click updater: the ZipArchive extension, outbound HTTPS access, and a forum root writable by the web server. If those aren't available, update manually: unpack the release over your tree (preserving the same files listed above) and load any page.
For private mirrors or testing, point the updater elsewhere with define('FORUM_UPDATE_API', 'https://...'); in config.php.
- Back up the database and the forum directory.
- Put the board in maintenance mode (Administration → Options → Maintenance) if it's busy.
- Replace the forum files with the new eveBB tree, keeping
config.php,img/avatars/, and custom entries instyle/. - Ensure
$password_hash_cost = 10;exists inconfig.php(FluxBB configs lack it). - Load any forum page; follow
db_update.phpif it appears. - Take the board out of maintenance mode and spot-check: log in, view a topic, run a search.