Skip to content

Migration

Warning

Please note that this site is currently work in progress.

Migrating from Kolab 16

Migrating from Kolab 16 implies migrating the data, and converting from the Kolab 3 storage format to the Kolab 4 storage format.

While it is technically possible to migrate in-place, the recommended way to migrate is to import the data, and convert it during the import, using the Kolab 4 migration tooling.

This migration will copy a user account over IMAP/CalDAV/CarDAV from the source-server to the internal target server.

Prerequisites:

  • The target user must already exist
    kubectl exec -i --tty=false deployment/horizon -- env APP_DEBUG=0 php -dmemory_limit=512M ./artisan data:migrate --force --sync "kolab3://$SOURCEUSER:$SOURCEPASSWORD@$SOURCE_KOLAB_SERVER?dav_protocol=dav&dav_host=roundcube&dav_path=/dav" "kolab://$TARGETUSER:$TARGETPASSWORD@imap?dav_protocol=dav&dav_path=/dav"

The above migration will execute the following steps:

  • Email will be migrated via IMAP
  • Calendars and Tasks will be migrated via CalDAV
  • Contacts will be migrated via CardDAV
  • Notes will not be migrated
  • Tags will be extracted from Kolab Configuration Objects, and applied as IMAP Tags

The migration can be re-run to import new data and flag changes, but it will not remove deleted messages/folders.

IMAP migration

This migration will copy all folder from a source account to a target account. It is assumed that the source server is an external location, and the target server is the internal imap instance.

Prerequisites:

  • The target user must already exist

With cyrus proxy authorization on the source server:

    kubectl exec -i --tty=false deployment/horizon -- env APP_DEBUG=0 php -dmemory_limit=512M ./artisan data:migrate --force --sync "imaps://cyrus-admin:$ADMIN_PASSWORD@$SOURCE_IMAP_SERVER:993?user=$SOURCEUSER" "imap://cyrus-admin:$TARGET_ADMIN_PASSWORD@imap?user=$TARGETUSER"

Without cyrus proxy authorization on the source server:

    kubectl exec -i --tty=false deployment/horizon -- env APP_DEBUG=0 php -dmemory_limit=512M ./artisan data:migrate --force --sync "imaps://$SOURCEUSER:$SOURCEPASSWORD@$SOURCE_IMAP_SERVER:993" "imap://cyrus-admin:$TARGET_ADMIN_PASSWORD@imap?user=$TARGETUSER"