Lift Teleport
Export and import full WordPress websites in one click using the .lift format.
★ 0stars
0forks
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/pedroriddex/lift-teleport/archive/refs/heads/main.zipLift Teleport is a WordPress plugin for one-click website export and import using the .lift format.
Operational Architecture
- Job orchestration and persistence:
/src/Jobs/* - Archive and package infrastructure:
/src/Archive/* - Import engine and continuity safeguards:
/src/Import/* - API surface:
/src/Api/Routes.php(progressive decomposition in progress) - Support services (paths, preflight, launcher, environment, schema):
/src/Support/*
Architecture and contracts:
docs/architecture/current-state.mddocs/contracts/rest.mddocs/contracts/job-payload.mddocs/deprecations.md
MVP Features
- Single-site migrations (
WP 6.6+,PHP 8.1+) - Full-site payload: database + complete
wp-content(with safe exclusions) - Re-runnable background jobs with persisted state in DB
- Heartbeat + cooperative cancellation for long-running jobs
- Chunked import upload (
8 MiBchunks) .liftpackage format (tar + zstd, fallbackgzip)- Strict archive extraction policy (blocks path traversal and link entries)
- Full payload checksum verification before destructive import
- Optional encryption with password (
libsodium, Argon2id + XChaCha20-Poly1305) - Rollback snapshot before destructive import + read-only lock guard
- REST API + WP-CLI commands
- React admin UI aligned with Figma node
88:2
REST API
Base namespace: /wp-json/lift/v1
POST /jobs/exportPOST /jobs/importPOST /jobs/{id}/upload-chunkPOST /jobs/{id}/upload-completePOST /jobs/{id}/startPOST /jobs/{id}/cancelGET /jobs/{id}GET /jobs/{id}/eventsGET /jobs/{id}/download?token=...&expires=...GET /diagnostics
WP-CLI
wp lift export [--output=<path>] [--password=<password>] [--format=text|json]wp lift import <file> [--password=<password>] [--yes] [--format=text|json]wp lift jobs list [--limit=<n>] [--format=table|json]wp lift jobs run <job-id> [--until-terminal] [--timeout=<seconds>] [--format=text|json]wp lift jobs cancel <job-id>wp lift diagnostics [--format=table|json]
Build Admin Assets
npm install
npm run build
Validation and Tests
find src -name '*.php' -print0 | xargs -0 -n1 php -l
npm run lint:js
npm run build
composer install
vendor/bin/phpunit -c phpunit.xml.dist
Environment Drift Check
./scripts/check_drift.sh
Defaults:
- Canonical path:
/Users/pedroreyes/Studio/bracar/wp-content/plugins/lift-teleport - Runtime path:
/Users/pedroreyes/Local Sites/bracar/app/public/wp-content/plugins/lift-teleport
Package Structure (.lift)
manifest.jsondb/dump.sqlcontent/wp-content/plugins/*content/wp-content/themes/*content/wp-content/uploads/*content/wp-content/mu-plugins/*checksums/sha256.txt
Extensibility Filters
lift_teleport_export_excluded_pathslift_teleport_export_precheck_required_free_byteslift_teleport_export_precheck_strictlift_teleport_import_precheck_required_free_byteslift_teleport_max_upload_byteslift_teleport_max_chunk_byteslift_teleport_readonly_allowed_requestlift_teleport_readonly_allowed_rest_routelift_teleport_replace_table_allowlistlift_teleport_replace_table_denylistlift_teleport_operator_session_continuity_enabledlift_teleport_operator_session_restore_strictlift_teleport_disable_wp_auth_check_on_admin_screenlift_teleport_capability_preflight_ttl_secondslift_teleport_wp_cli_candidateslift_teleport_enable_cli_workerlift_teleport_cli_worker_timeout_secondslift_teleport_capability_blocking_policylift_teleport_export_download_allowed_rootslift_teleport_deprecated_step_alias_used