What's new
Panelica Community Forum

Welcome to the official Panelica Community Forum — the central hub for server administrators, developers, and hosting professionals. Register a free account today to access technical discussions, product announcements, feature requests, and direct support from the Panelica team. Be part of the growing community shaping the future of server management.

Migrating from Panelica — Server-to-Server Transfer

Status
Not open for further replies.

admin

Administrator
Staff member
Migrating from Panelica — Server-to-Server Transfer​

Panelica-to-Panelica migration is the most mature and fully automated migration path. It uses the External API (Port 3002) with HMAC authentication to securely transfer all data between two Panelica servers — no direct database access required.

What Gets Migrated​

  • User accounts — System users with home directories, UID/GID, cgroup slices
  • Domains — Full 9-step provisioning on target (Nginx, PHP-FPM, DNS, SSL, logs, cgroup)
  • Files — Entire home directories via rsync with real-time progress (overall %, speed, ETA)
  • MySQL databases — Databases with user hash preservation (CMS configs like wp-config.php and .env remain unchanged — passwords just work)
  • Email accounts — Maildir synchronization
  • SSL certificates — Let's Encrypt re-issue or self-signed generation
  • Cloudflare credentials — Encrypted API keys decrypted via API and re-encrypted on target
  • DNS records — Zone file recreation

How It Works​

The migration uses Panelica's External API — all metadata is retrieved via secure HMAC-SHA256 authenticated API calls. No direct SSH database commands are executed on the source server.

11-Step Automated Pipeline:

  1. Connect & Detect — SSH into source server, auto-detect Panelica installation and version
  2. Health Check — Verify disk space, MySQL availability, database status
  3. Site Discovery — Query External API: GET /v1/migration/sites/export (all domains, databases, email accounts)
  4. Credential Discovery — Query External API: GET /v1/migration/mysql-credentials (MySQL root password from panelica.conf)
  5. User Creation — Create matching Linux users on the target server with proper UID, home directory, and cgroup slice
  6. Domain Creation — Run 9-step domain provisioning for each discovered site
  7. File Transfer — rsync entire /home/username/domain/ directories with cumulative progress tracking
  8. Database Import — SHOW CREATE USER + mysqldump on source, replay on target (password hashes preserved)
  9. Email Import — Maildir synchronization via rsync
  10. SSL Setup — Let's Encrypt certificate provisioning or self-signed fallback
  11. Verification — Health check on all migrated sites with automatic rollback on failure

Real-Time Progress Tracking​

  • real-time live log — Stream the entire migration process to your browser in real-time
  • Phase tracking — Current step displayed with percentage completion
  • rsync progress — Overall cumulative progress (not per-file) showing real percentage, transfer speed, and ETA
  • Checkpoint system — If migration fails, resume from the last successful step instead of starting over
  • Error reporting — Immediate error display with context and suggested fixes

Key Advantages​

  • API-first — No direct psql/mysql commands on source server. All data retrieved via authenticated API
  • Password preservation — MySQL user hashes transferred directly. CMS config files (wp-config.php, .env, database.php) remain unchanged
  • Zero downtime migration — Source server continues running during transfer
  • Cloudflare transfer — API keys securely migrated (decrypted on source, re-encrypted on target)
  • Full directory transfer — Not just public_html, but logs, tmp, config files — everything under /home/user/domain/

Prerequisites​

  • Both servers must be running Panelica
  • SSH access from target to source server
  • External API must be enabled on the source server (Port 3002)
  • Sufficient disk space on the target server
  • HMAC API key configured on the source server

Post-Migration​

After migration completes:

  • Update DNS records to point to the new server IP (manual or via Cloudflare sync)
  • SSL certificates are automatically provisioned for all migrated domains
  • All services are configured and running on the target server
  • Users can log in immediately with their existing credentials

Access Control​

Migration is a ROOT-only operation — only the server administrator can initiate and manage migrations.

If you encounter any issues with this feature, please open a report in the Bug Reports forum.

Related Topics​


---
For issues with this feature, please report in the Bug Reports forum.
 
Last edited:
Status
Not open for further replies.
Back
Top