Initial commit
This commit is contained in:
45
README.md
Normal file
45
README.md
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
# arcline-migrate
|
||||||
|
|
||||||
|
CLI tool for migrating sites from cPanel/Plesk servers to Arcline. Connects via SSH, exports files, database dumps, and DNS zone into a structured tarball ready to import.
|
||||||
|
|
||||||
|
Reduces migration friction for new customers coming from GoDaddy, Bluehost, SiteGround, and similar hosts.
|
||||||
|
|
||||||
|
## Status
|
||||||
|
|
||||||
|
Planned. Not yet started.
|
||||||
|
|
||||||
|
## Stack
|
||||||
|
|
||||||
|
- Go — single static binary, no runtime dependencies on the client side
|
||||||
|
- Requires SSH access to the source server and `mysqldump` available remotely
|
||||||
|
|
||||||
|
## Supported sources
|
||||||
|
|
||||||
|
- cPanel (primary target)
|
||||||
|
- Plesk (stretch goal)
|
||||||
|
- Generic LAMP/LEMP via SSH (fallback — manual DB credentials)
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```sh
|
||||||
|
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/
|
||||||
|
arcline-migrate import --bundle ./arcline-export-*.tar.gz # future
|
||||||
|
```
|
||||||
|
|
||||||
|
## Export bundle layout
|
||||||
|
|
||||||
|
```
|
||||||
|
arcline-export-example.com-20260303/
|
||||||
|
├── files/ # public_html contents
|
||||||
|
├── databases/
|
||||||
|
│ └── db_name.sql # mysqldump output
|
||||||
|
├── dns/
|
||||||
|
│ └── example.com.zone
|
||||||
|
├── config/
|
||||||
|
│ └── php.ini
|
||||||
|
└── manifest.json # domain, PHP version, MySQL version, export date
|
||||||
|
```
|
||||||
|
|
||||||
|
See [todo.md](todo.md) for the full task list.
|
||||||
50
todo.md
Normal file
50
todo.md
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# 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
|
||||||
Reference in New Issue
Block a user