1.9 KiB
1.9 KiB
arcline-migrate — Shared Hosting Migration Tool
Connects to a cPanel/Plesk server via SSH, exports files + DB dump + DNS zone into a structured tarball ready to import on Arcline. Lowers migration friction.
Stack
- Language: Go
- Distribution: single static binary
- Requires: SSH access to source server, mysqldump on remote
Supported Sources
- cPanel (primary target)
- Plesk (stretch goal)
- Generic LAMP/LEMP via SSH (fallback mode)
Export bundle structure
arcline-export-example.com-20260303/
├── files/ # public_html contents (rsync over SSH)
├── databases/
│ └── db_name.sql # mysqldump output
├── dns/
│ └── example.com.zone # BIND zone file (from cPanel API or manual)
├── config/
│ └── php.ini # detected PHP version + key settings
└── manifest.json # metadata: domain, PHP version, MySQL version, export date
CLI interface
arcline-migrate export --host example.com --user myuser --domain example.com
arcline-migrate export --host example.com --user myuser --domain example.com --out ./export
arcline-migrate verify ./arcline-export-example.com-20260303/ # validate bundle
arcline-migrate import --bundle ./arcline-export-*.tar.gz # future: direct import
Tasks
- Project scaffold
- SSH connection handler (password + key auth)
- File export: rsync-style copy over SSH (public_html)
- Database export: run mysqldump remotely, stream result
- cPanel API integration: fetch DB list, DNS zone, PHP version
- Generic mode: prompt user for DB name/user/pass if no cPanel API
- DNS zone export (cPanel API → BIND format)
- manifest.json writer
- Bundle: tar.gz output
- verify subcommand: check bundle integrity + manifest
- Progress display (files copied, DB size, elapsed)
- README with step-by-step migration walkthrough
- Cross-compile Makefile