Skip to content

Migration Guide

LLStack provides migration paths from the most common server panels and web servers. Each migration follows the same general pattern: export data from the source, prepare LLStack, and import.

BT Panel stores site data in /www/wwwroot/ and databases in standard MariaDB/MySQL locations.

  1. Export site files from BT Panel

    On the source server, create a tar archive of each site:

    Terminal window
    cd /www/wwwroot
    tar czf /tmp/example.com.tar.gz example.com/
  2. Export databases

    Use BT Panel’s database backup feature or mysqldump directly:

    Terminal window
    mysqldump -u root -p dbname > /tmp/dbname.sql
  3. Install LLStack on the target server

    Terminal window
    curl -fsSL https://raw.githubusercontent.com/web-casa/LLStack/main/scripts/install.sh | sudo bash
  4. Create the site in LLStack

    Use the LLStack panel UI to create a new site with the same domain name. Configure the PHP version to match the source.

  5. Import site files

    Transfer and extract the archive to the new document root:

    Terminal window
    scp /tmp/example.com.tar.gz target-server:/tmp/
    # On target server:
    tar xzf /tmp/example.com.tar.gz -C /home/llstack/example.com/html/
    chown -R llstack:llstack /home/llstack/example.com/
  6. Import the database

    Create the database in LLStack panel, then import:

    Terminal window
    mysql -u dbuser -p dbname < /tmp/dbname.sql
  7. Update wp-config.php or application config

    Update database credentials, paths, and any hardcoded URLs to match the new server.

  8. Configure SSL

    Issue a new Let’s Encrypt certificate through the LLStack panel.

  9. Update DNS

    Point your domain’s DNS records to the new server IP. Once propagated, verify the site works correctly.

CyberPanel uses OpenLiteSpeed and stores sites under /home/<domain>/. The migration is similar to BT Panel.

  1. Export site files

    Terminal window
    cd /home
    tar czf /tmp/example.com.tar.gz example.com/public_html/
  2. Export databases

    Terminal window
    mysqldump -u root -p dbname > /tmp/dbname.sql
  3. Export email accounts (if applicable)

    CyberPanel uses MailServer (Postfix + Dovecot). Export mailbox data from /home/vmail/ if you need to preserve emails.

  4. Install LLStack and create site

    Install LLStack on the target server, create the site, and select the matching PHP version.

  5. Import files and database

    Transfer files to the new document root and import the database as shown in the BT Panel section above.

  6. Migrate .htaccess rules

    CyberPanel often has minimal .htaccess usage since it runs OLS natively. If you have custom rewrite rules in the OLS vhost config, LiteHttpd’s .htaccess support means you can place them directly in .htaccess files instead.

  7. Issue SSL and update DNS

    Configure SSL through LLStack panel and update your DNS records.

cPanel provides built-in backup tools that package sites, databases, and email together.

  1. Generate a cPanel backup

    In cPanel, go to Backup and create a full account backup, or use the CLI:

    Terminal window
    /scripts/pkgacct username

    This creates a cpmove-username.tar.gz archive.

  2. Extract the backup

    Terminal window
    tar xzf cpmove-username.tar.gz
    cd cpmove-username

    Key directories inside:

    • homedir/public_html/ — site files
    • mysql/ — database dumps
    • ssl/ — SSL certificates (optional to migrate)
  3. Install LLStack and create sites

    Create each domain/subdomain as a separate site in LLStack.

  4. Import site files

    Copy public_html/ contents to the corresponding LLStack document root:

    Terminal window
    cp -a cpmove-username/homedir/public_html/* /home/llstack/example.com/html/
    chown -R llstack:llstack /home/llstack/example.com/
  5. Import databases

    Create databases in LLStack, then import each SQL dump:

    Terminal window
    mysql -u dbuser -p dbname < cpmove-username/mysql/dbname.sql
  6. Migrate cron jobs

    Review cron jobs from cpmove-username/cron/ and recreate them in LLStack’s cron manager.

  7. Configure PHP and .htaccess

    LiteHttpd supports the same .htaccess directives, so most rules work as-is. Verify PHP version compatibility and adjust php.ini settings through the panel.

  8. Issue SSL and update DNS

If you are running a standalone Apache server (without a panel), LiteHttpd’s built-in config converter handles most of the migration automatically.

  1. Analyze the existing Apache configuration

    Run the compatibility checker on the source server:

    Terminal window
    litehttpd-readapacheconf /etc/httpd/conf/httpd.conf

    Review the output for any unsupported directives.

  2. Convert the configuration

    Terminal window
    litehttpd-confconv \
    --input /etc/httpd/conf/httpd.conf \
    --include-dir /etc/httpd/conf.d/ \
    --output /tmp/litehttpd-conf/

    This generates equivalent LiteHttpd virtual host configurations.

  3. Install LLStack

    Install LLStack on the target server (or the same server after stopping Apache).

  4. Copy site files

    Transfer document roots to the LLStack directory structure:

    Terminal window
    cp -a /var/www/html/example.com/* /home/llstack/example.com/html/
    chown -R llstack:llstack /home/llstack/example.com/
  5. Apply the converted configuration

    Review the generated configs in /tmp/litehttpd-conf/ and copy them to the LiteHttpd vhost directory. Alternatively, create sites through the panel and let it generate configs automatically.

  6. Verify .htaccess files

    Existing .htaccess files should work without changes. LiteHttpd supports 80+ Apache directives including mod_rewrite, mod_headers, mod_expires, and mod_auth_basic.

  7. Switch from php-fpm to LSAPI

    LLStack uses PHP-LiteSpeed SAPI instead of php-fpm. Install the matching PHP version through the panel and update any php-fpm-specific configurations.

  8. Test and cutover

    Test all sites, then stop Apache and start LiteHttpd:

    Terminal window
    systemctl stop httpd
    systemctl enable --now litehttpd

After any migration, verify the following:

  • All sites load correctly over HTTPS
  • WordPress admin dashboard is accessible
  • Database connections work (check wp-config.php or equivalent)
  • File permissions are correct (llstack:llstack ownership)
  • Cron jobs are recreated in LLStack
  • Email delivery works (if applicable)
  • SSL certificates are valid and auto-renewal is configured
  • DNS TTL is lowered before migration, restored after verification
  • Old server backups are retained for at least 30 days