Copyright© Mat Bao Company. All Reserved.
Sử dụng nội dung ở trang này và dịch vụ tại Mắt Bão có nghĩa là bạn đồng ý với Thỏa thuận sử dụng và Chính sách bảo mật của chúng tôi.
Công ty cổ phần Mắt Bão - Giấy phép kinh doanh số: 0302712571 cấp ngày 04/09/2002 bởi Sở Kế Hoạch và Đầu Tư Tp. Hồ Chí Minh.
Giấy phép cung cấp dịch vụ Viễn thông số 247/GP-CVT cấp ngày 08 tháng 05 năm 2018.
Công cụ giúp giải nén WPress Extractor (định dạng của plugin All-in-One WP Migration)
Công cụ web giải nén, kiểm tra và khôi phục nhanh backup .wpress (định dạng của plugin All-in-One WP Migration) — không cần cài lại plugin vào một site WordPress trung gian.
Repo: MBC-TS-H-wpress-extractor | Stack: Node.js / Express 5 | Nội bộ Mắt Bão, Team TS
1. Giới thiệu & mục đích

Giao diện WPress Extractor — công cụ giải nén & khôi phục backup .wpress
Vấn đề: Khi khách hàng gửi 1 file backup .wpress, trước đây support không có cách nào lấy lại nhanh 1–2 file cụ thể hoặc khôi phục cả site mà không phải cài All-in-One WP Migration vào một WordPress trung gian rồi restore thủ công — tốn thời gian, dễ sai sót (quên đổi prefix bảng, sửa domain sai làm hỏng dữ liệu PHP-serialize, quên khôi phục plugin/theme đang active…).
Giải pháp: Một web tool duy nhất — upload .wpress, tool tự động giải nén, đổi prefix bảng, (tuỳ chọn) tải kèm WordPress core, import thẳng database vào MySQL/MariaDB đích, đổi domain an toàn ngay trên DB thật, và giao kết quả qua FTP hoặc file .zip.
Đối tượng dùng: Quản trị viên website, agency, đội hỗ trợ kỹ thuật WordPress — bất kỳ ai cần xử lý backup .wpress. Hỗ trợ đăng nhập đa người dùng, phù hợp dùng theo team.
Toàn bộ giao diện bằng tiếng Việt — phù hợp thói quen và bối cảnh sử dụng của đội hỗ trợ Mắt Bão.
2. Các chức năng chính
Luôn thực hiện (mọi lượt xử lý)
- Upload chunk: Kéo-thả file .wpress qua trình duyệt, chịu được file lớn (trăm MB – vài GB) mà không bị reverse proxy cắt kết nối.
- Giải nén đúng định dạng: Đọc từng header nhị phân 4377 byte theo đúng chuẩn .wpress.
- Tự đổi prefix bảng: Đổi placeholder SERVMASK_PREFIX_ thành prefix bảng thật trong database.sql.
- Ghi .htaccess mặc định: Sau khi giải nén, site có sẵn .htaccess chuẩn.
- Đăng nhập đa người dùng: Mỗi thành viên team 1 tài khoản riêng, thống kê job tách theo người dùng.
- Theo dõi tiến trình real-time: Checklist từng bước, % hoàn thành, tốc độ/ETA khi đang giao kết quả.
- Tự dọn dữ liệu khách hàng: Xoá toàn bộ file khách ngay sau khi giao kết quả xong — không lưu trữ dữ liệu khách hàng.
Tuỳ chọn (bật/tắt qua form khi upload)
- Tải kèm WordPress core: Ghép WP core mới nhất vào kết quả mà không đụng wp-content (mặc định bật).
- Import database trực tiếp: Import database.sql vào MySQL/MariaDB đích qua mysql CLI (điền Host/Name/User/Password).
- Tự sinh wp-config.php: Khi có import DB: sinh DB creds + prefix + salt ngẫu nhiên, khôi phục lại active_plugins/theme đang active.
- Đổi domain an toàn: Đổi domain trực tiếp trên DB thật, tôn trọng định dạng PHP-serialize — không hỏng dữ liệu, kể cả chuỗi tiếng Việt.
- Giao kết quả linh hoạt: Upload thẳng lên FTP đích, hoặc nén .zip để tải xuống (mặc định nếu không điền FTP).
Quản trị & bảo mật
- Quản lý tài khoản qua CLI (
bin/manage-users.js): thêm/xoá user, đổi mật khẩu, gán email, cấp/thu quyền admin — không có trang tự đăng ký. - Trang “Quên mật khẩu” gửi link đặt lại qua email SMTP, token dùng 1 lần, hết hạn 30 phút, giới hạn 3 lần/tài khoản/giờ.
- Admin panel: tạo/quản lý user, gửi email test SMTP.
- Chặn SSRF: mọi FTP host và DB host đều bị resolve + kiểm tra chặn IP nội bộ trước khi kết nối.
- Escape kỹ khi sinh wp-config.php để chống PHP injection; giới hạn tốc độ request cho login và thao tác admin.
3. Hướng dẫn sử dụng
- Đăng nhập: Vào trang
/loginbằng tài khoản được cấp (admin tạo qua CLI hoặc admin panel). Quên mật khẩu → dùng link “Quên mật khẩu” gửi qua email SMTP. - Kéo-thả file .wpress: Ở trang chính “Giải nén file .wpress”, kéo-thả (hoặc chọn) file backup cần xử lý. File lớn được upload theo chunk, không lo mất kết nối giữa chừng.
- Điền các tuỳ chọn cần dùng (không bắt buộc): Table prefix cho database.sql, Host/Port/Username/Password FTP, Thư mục đích trên server, DB Host/Port/Name/User/Password, DB_HOST ghi trong wp-config.php, Tên miền mới. Chỉ điền phần nào cần — bỏ trống nghĩa là không dùng tính năng đó (ví dụ không điền FTP → tool trả về file .zip để tải).
- Theo dõi “Nhật ký xử lý”: Job chạy nền, sidebar hiển thị checklist từng bước, % hoàn thành, tốc độ/ETA (đặc biệt khi đang tải WP core hoặc upload FTP).
- Nhận kết quả: Tải file .zip xuống, hoặc kiểm tra thư mục đích trên FTP đã điền. Sau khi giao xong, toàn bộ dữ liệu khách hàng trên server bị xoá — không cần dọn tay.
Dùng như CLI (không cần chạy web server)
npm link # cài lệnh wpress-extract global
wpress-extract backup.wpress # giải nén vào ./<tên-archive>/
wpress-extract backup.wpress ./restored-site # giải nén vào thư mục chỉ định
wpress-extract backup.wpress --list # chỉ liệt kê nội dung
Quản lý tài khoản (admin)
node bin/manage-users.js add <username> '<password>' <email> [--admin]
node bin/manage-users.js passwd <username> '<mật-khẩu-mới>'
node bin/manage-users.js admin <username> <true|false>
node bin/manage-users.js list
4. Mô tả kỹ thuật
| Ngôn ngữ | JavaScript (Node.js ≥ 18, khuyến nghị 22) |
|---|---|
| Backend | Express 5 |
| Frontend | HTML tĩnh + vanilla JS (không dùng framework FE) |
| Database | Không cần DB riêng cho bản thân app (user lưu trong data/users.json); kết nối MySQL/MariaDB đích khi import database.sql từ backup |
| Dịch vụ phụ thuộc | FTP đích (deploy kết quả), SMTP (Gmail App Password — email quên mật khẩu) |
| Thư viện chính | archiver, basic-ftp, mysql2 + php-serialize, extract-zip, express-rate-limit, nodemailer |
| Đóng gói | Docker (node:22-alpine) + docker-compose, deploy qua Coolify/Traefik |
| Xác thực | Đăng nhập multi-user, session cookie tự ký (HMAC); tài khoản đầu tiên tạo qua biến môi trường ADMIN_*; không có trang tự đăng ký |
5. Hình ảnh minh hoạ & Video
Các bước dưới đây minh hoạ trực quan luồng sử dụng thực tế — từ đăng nhập, chọn file cần xử lý, theo dõi tiến trình, đến khi nhận kết quả.

Màn hình đăng nhập — trang /login

Trang chính “Giải nén file .wpress” — vùng kéo-thả, các tuỳ chọn, sidebar Nhật ký xử lý + Thống kê

Modal “Đang xử lý…” — checklist từng bước cập nhật theo thời gian thực

Modal “Hoàn tất!” — stat tile, checklist 100%, file .zip đã tải về máy
Video toàn bộ luồng thật — đăng nhập → chọn file → bấm “Giải nén” → theo dõi tiến trình → nhận kết quả
6. Nguồn gốc & ghi chú kỹ thuật
Công cụ tự triển khai lại định dạng nhị phân .wpress bằng JavaScript (tham khảo cấu trúc từ 2 dự án mã nguồn mở fifthsegment/Wpress-Extractor và yani-/wpress), không phụ thuộc plugin All-in-One WP Migration hay bất kỳ site WordPress trung gian nào. Toàn bộ luồng xử lý job (giải nén → đổi prefix → import DB → đổi domain → dựng lại wp-config → giao FTP/zip) và các lớp bảo mật (chặn SSRF, escape khi sinh wp-config.php, rate limit) do công cụ tự đảm nhiệm.















