Skip to content

Upgrading from FluxBB

Alan Paynter edited this page Jul 19, 2026 · 2 revisions

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.

The short version (FluxBB 1.5.x)

  1. Back up your database and files.
  2. Set up a fresh eveBB file tree (upload a release, or clone the repository).
  3. Copy your existing config.php into the eveBB tree. Keep your img/avatars/ directory and any custom styles from style/.
  4. 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.

Which versions can upgrade

  • FluxBB 1.5.x — supported directly (same schema family; db_update.php applies eveBB's additions).
  • FluxBB 1.4.x — supported; carries the o_database_revision marker that db_update.php uses 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'); in config.php if needed).
  • Anything older (pre-1.2 databases without o_database_revision) — not supported; db_update.php rejects them with a version mismatch error. Upgrade to FluxBB 1.5 first using FluxBB's own tools, then switch to eveBB.

How the automatic redirect works

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.

What db_update.php does

The guided update runs in stages, batching long operations (300 rows per cycle) to avoid timeouts:

  1. Schema changes — widens email fields to 80 chars and IP fields to 39 chars (IPv6), converts posts.message to MEDIUMTEXT, adds newer columns (users.dst, users.country, users.birthday, online.last_post, online.last_search, ...), drops obsolete ones (use_avatar, save_pass, aim, ...), creates the login_attempts table, 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.
  2. Post/signature re-preparse — regenerates the cached BBCode parse of every post and signature when the parser revision changed.
  3. 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.
  4. Password hardening — widens users.password to 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 old salt column is dropped.
  5. Search index rebuild — truncates and rebuilds the full-text index when the index format changed.
  6. Finish — stamps the new version and revisions, falls back to English/Carbon if 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.

Things that change for your users

  • 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.

Staying up to date: the one-click updater

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 skipping install.php. It then clears the generated caches and removes any leftover install.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.

Manual upgrade checklist (any version)

  1. Back up the database and the forum directory.
  2. Put the board in maintenance mode (Administration → Options → Maintenance) if it's busy.
  3. Replace the forum files with the new eveBB tree, keeping config.php, img/avatars/, and custom entries in style/.
  4. Ensure $password_hash_cost = 10; exists in config.php (FluxBB configs lack it).
  5. Load any forum page; follow db_update.php if it appears.
  6. Take the board out of maintenance mode and spot-check: log in, view a topic, run a search.