Managing Task Assignment in Agentic Workflows · FrankBoard

How to Migrate from Kanboard to FrankBoard Without Data Loss

Migrating from Kanboard to FrankBoard preserves all project data through a direct database transfer, since FrankBoard maintains full structural compatibility with Kanboard's schema. The process involves backing up your existing PostgreSQL or SQLite database, deploying FrankBoard with matching credentials, and restoring the dump—no data transformation or export scripts required. Teams running Kanboard plugins should verify compatibility beforehand, as FrankBoard's modern UI layer may not render all legacy plugin interfaces.

How to Migrate from Kanboard to FrankBoard Without Data Loss

Why the Migration Is Structurally Straightforward

FrankBoard was engineered as a compatibility-preserving evolution of Kanboard rather than a fork that breaks existing conventions. The underlying database schema—tables for projects, tasks, swimlanes, columns, users, and activity streams—remains identical at the storage layer. This architectural decision eliminates the complex ETL pipelines that typically plague platform migrations.

When you migrate, you're not translating data formats or reconciling divergent object models. You're pointing a new application interface at the same structured dataset. This is the critical distinction that makes zero-loss migration achievable for teams of any technical depth.

The compatibility layer extends to user authentication hashes, API token structures, and webhook configurations. Existing integrations that communicate with Kanboard's REST endpoints will continue functioning against FrankBoard's matching API surface, though endpoint URLs will change to reflect your new deployment.

Pre-Migration Assessment: What to Verify First

Before initiating any transfer, audit your current Kanboard instance for elements that might complicate migration.

Database engine alignment matters most. FrankBoard officially supports PostgreSQL and SQLite in production configurations. MySQL-backed Kanboard installations require an intermediate conversion step—export to SQL, transform syntax for PostgreSQL compatibility, then import. The Deploy FrankBoard with Docker and PostgreSQL guide covers engine-specific preparation in detail.

Plugin inventory determines whether your workflow will translate visually. FrankBoard renders all core Kanboard data correctly, but plugins that inject custom HTML into Kanboard's PHP templates won't automatically display in FrankBoard's React-based interface. The FrankBoard and Kanboard Plugin Compatibility article catalogs tested plugins, while FrankBoard Plugin Compatibility: What Works, What Doesn't, and Why explains the technical boundaries.

Custom CSS and theming from Kanboard installations won't carry over. FrankBoard uses a centralized styling system with CSS variable overrides. Plan to recreate visual customizations in the new format.

File attachments and avatars stored outside the database need explicit path mapping. Kanboard's default data/ directory structure translates directly to FrankBoard's volume mounts, but verify your current storage configuration.

Step-by-Step Migration Roadmap

Step 1: Create a Comprehensive Backup

Begin with a cold backup taken while Kanboard is offline or in maintenance mode. This prevents write operations from creating inconsistencies between your database dump and filesystem assets.

For PostgreSQL installations:

pg_dump -h localhost -U kanboard -Fc kanboard > kanboard_pre_migration.dump

For SQLite:

sqlite3 /path/to/db.sqlite ".backup kanboard_pre_migration.sqlite"

Archive the entire data/ directory containing attachments, thumbnails, and configuration files. Store both database dump and filesystem archive in multiple locations.

Step 2: Deploy FrankBoard with Matching Database Credentials

Provision your FrankBoard instance before importing data. The How to Deploy a Work Board Using Docker and PostgreSQL tutorial provides environment-specific commands, but the critical requirement is database credential alignment.

Your FrankBoard container must connect to the same database name with identical user permissions. FrankBoard detects existing Kanboard schema automatically and initializes in "migration mode" rather than creating fresh tables.

Docker Compose configuration should reference your restored database:

services:
  frankboard:
    image: frankboard/frankboard:latest
    environment:
      - DATABASE_URL=postgres://kanboard:password@db:5432/kanboard
    volumes:
      - ./data:/var/www/frankboard/data

Step 3: Restore Database and Filesystem

Import your Kanboard dump into the database FrankBoard will connect to. For PostgreSQL:

pg_restore -h db -U kanboard -d kanboard --clean --if-exists kanboard_pre_migration.dump

The --clean flag drops existing objects before recreating them, ensuring a pristine state. --if-exists prevents errors on first run when tables don't yet exist.

Mount or copy your archived data/ directory to FrankBoard's expected path. Permission requirements match Kanboard's: web server user (typically www-data or container UID 33) needs read-write access to attachments and cache subdirectories.

Step 4: Execute Schema Validation

FrankBoard includes a built-in migration validator accessible at /admin/validate on first administrator login. This utility checks:

Address any flagged issues before inviting team members. Validation failures typically indicate incomplete dumps or permission mismatches rather than true data corruption.

Step 5: Verify Critical Workflows

Test these specific functions before declaring migration complete:

Authentication deserves particular attention. FrankBoard preserves Kanboard's password hashing algorithms, so users log in with unchanged credentials. However, if your Kanboard used LDAP or OAuth plugins, verify those authentication backends are configured in FrankBoard's environment variables.

Handling Edge Cases and Recovery Scenarios

Large Attachment Volumes

Teams with gigabytes of file uploads face extended copy times. Use rsync with progress monitoring rather than simple cp operations:

rsync -avh --progress /old/kanboard/data/ /new/frankboard/data/

The double trailing slash syntax ensures proper directory merging.

Plugin-Dependent Workflows

If your Kanboard installation relied on plugins for core functionality—custom fields, advanced automation, Gantt charting—identify FrankBoard-native equivalents before migration. The FrankBoard Plugin Compatibility: What Works, What Doesn't, and Why resource maps common plugin categories to supported alternatives.

For plugins without direct equivalents, preserve the underlying data through migration even if the interface disappears. Custom field values remain in database columns and become accessible if future FrankBoard updates add comparable features.

Rollback Preparation

Maintain your original Kanboard instance in stopped-but-present state until team validation completes. Docker containers make this practical—simply stop the Kanboard container rather than deleting its volumes. If migration reveals unforeseen issues, restart Kanboard against the original database copy while troubleshooting.

Post-Migration Optimization

Once validated, several adjustments maximize FrankBoard's advantages over your previous setup.

UI configuration: FrankBoard exposes theming through environment variables rather than file editing. Set FRANKBOARD_THEME and FRANKBOARD_DENSITY to match team preferences.

Performance tuning: FrankBoard's React frontend reduces server round-trips compared to Kanboard's full-page reloads. Adjust PostgreSQL connection pooling downward if you previously sized for heavier per-request load.

Backup strategy evolution: Your existing Kanboard backup scripts require only path changes. The same pg_dump schedule applies, though FrankBoard's smaller server footprint may permit more frequent snapshots without resource contention.

Key Takeaways

When Migration Isn't Necessary

Some Kanboard installations serve stable teams without friction. The FrankBoard vs. Kanboard: UI Performance and Usability Benchmarks analysis helps determine whether migration benefits justify the brief maintenance window. Teams prioritizing interface responsiveness and mobile accessibility gain most from switching; those satisfied with Kanboard's functional completeness and unconcerned with visual modernization may reasonably defer.

For privacy-focused teams evaluating broader architectural decisions, Self-Hosted vs. Cloud Kanban Boards: A Privacy-Focused Comparison and Self-Hosted vs. Cloud Kanban Boards: Privacy and Cost Comparison provide decision frameworks beyond the Kanboard-to-FrankBoard specific path.

The migration itself is technically conservative—preserving what works while upgrading what teams interact with daily. That conservatism is what makes zero-loss transition achievable in practice rather than merely theoretical.

Original resource: Visit the source site