# 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