Đăng nhập

ProjectSend là gì? Hướng dẫn cài đặt, triển khai và kinh nghiệm thực chiến gửi file cho khách

Tự host “cổng gửi file cho khách” bằng ProjectSend: cài trên Windows Server + Laragon, VPS Ubuntu và Docker. Kèm best practices bảo mật, tối ưu hiệu năng, troubleshooting và so nhanh với Nextcloud/FileRun.
ProjectSend là gì? Hướng dẫn cài đặt, triển khai và kinh nghiệm thực chiến gửi file cho khách

Vì sao mình “chốt đơn” ProjectSend?

Một lần cần gửi gấp 2GB tài liệu. Email nghẹn họng, link Google Drive thì cứ “xin quyền”. Mình quay xe dựng ProjectSend trên máy của mình, tạo tài khoản cho khách, gán đúng file, nhấn là tải — không lo lộ kho lưu trữ. Từ đó… ghiền luôn. Tự chủ dữ liệu, kiểm soát truy cập, có log. Gọn mà chuẩn bài cho kịch bản trao file cho khách.

ProjectSend là gì? Dùng khi nào?

ProjectSend là phần mềm chia sẻ file tự host, tập trung vào kịch bản “gửi file cho khách hàng/đối tác” có kiểm soát. Bạn tạo Client, nhóm client, gán file theo người hoặc theo nhóm, đặt hạn dùng, bật thông báo email, và thậm chí cho khách upload ngược lại khi cần. Xem thêm tại trang chủ ProjectSend và tài liệu chính thức:

Điểm mình thích: giao diện gọn, logic theo “dự án + khách”, audit log đầy đủ, triển khai được ở nhiều môi trường từ shared hosting đến Docker.

Yêu cầu hệ thống (đủ xài là chạy)

  • PHP 7.4+ và MySQL 5.0+ hoặc MariaDB.

  • Web server: Apache hoặc Nginx. Khuyến nghị bật X‑Sendfile/X‑Accel để tải xuống mượt, không “kẹt” qua PHP.

  • PHP extensions thường gặp: pdo, pdo_mysql, mbstring, gettext, fileinfo, gd2, xml, zip. Thêm cURL càng tốt.

  • Nên tăng memory_limit, post_max_size, upload_max_filesize nếu upload lớn.

Tham khảo chi tiết trong tài liệu: Requirements.

So nhanh với Nextcloud và FileRun

  • Nếu mục tiêu chính là “cổng trao file cho từng khách” kèm log chi tiết: ProjectSend là “điểm ngọt”.

  • Cần đồng bộ đa thiết bị, lịch, apps mở rộng: Nextcloud phù hợp hơn.

  • Muốn file manager mạnh, UI quản lý file kiểu truyền thống: FileRun là lựa chọn đáng cân nhắc.

Góc nhìn cộng đồng về ProjectSend vs Nextcloud: LibHunt và bảng so sánh khác trên SourceForge.

Ba cách triển khai mình khuyên dùng

1) Windows Server + Laragon + Cloudflare Tunnel

Kịch bản: máy tại nhà hoặc VPS Windows, không IP tĩnh, không mở port. Dùng Cloudflare Tunnel để public domain an toàn.

  • Cài Laragon (Apache/Nginx + PHP + MySQL). Tải tại: Laragon

  • Tải bản phát hành mới của ProjectSend, kiểm tra checksum rồi giải nén vào thư mục web. ProjectSend

  • Tạo database và user mới (phpMyAdmin có sẵn trong Laragon).

  • Truy cập domain nội bộ để chạy installer.

  • Dùng Cloudflare Tunnel để xuất bản ra ngoài, không cần mở cổng: Cloudflare Developers

  • Lưu ý ingress nên trỏ thẳng tới cổng web gốc, tránh rewrite kiểu /projectsend.

2) Ubuntu LEMP/LAMP (VPS phổ biến)

  • Cài Nginx hoặc Apache + PHP 8.x + MariaDB.

  • Tạo database, cấp quyền user.

  • Giải nén mã nguồn vào /var/www/... rồi chown/chmod cho www-data.

  • Truy cập domain để chạy installer, cấu hình SMTP nếu muốn gửi thông báo.

  • Tham khảo cách cấu hình Apache + Let’s Encrypt: Cộng đồng Linux

3) Docker (nhanh – gọn – dễ cập nhật)

  • Dùng image do LinuxServer.io duy trì. Lợi thế: mount volumes cho config và uploads, update container không lo mất dữ liệu.

  • Hướng dẫn và compose mẫu: LinuxServer.io ProjectSend

Cài đặt nhanh trong 5 bước

  1. Tải bản r1945 từ trang chủ và xác minh SHA‑256 checksum.

  2. Tạo database MySQL và user riêng cho ProjectSend.

  3. Giải nén mã nguồn, nếu cần đổi includes/sys.config.sample.php thành sys.config.php và nhập thông tin DB.

  4. Truy cập http(s)://domain‑của‑bạn để chạy installer, tạo tài khoản admin.

  5. Cấu hình logo, SMTP, hạn mức upload, bật X‑Sendfile/X‑Accel nếu hạ tầng hỗ trợ.

Tài liệu cài chi tiết: Manual installationRequirements.

Best practices khi chạy production

  • Bắt buộc dùng HTTPS: Let’s Encrypt trên Nginx/Apache hoặc Universal SSL nếu đi qua Cloudflare.

  • Tách storage: đặt thư mục uploads ngoài webroot và để web server serve qua X‑Accel/X‑Sendfile.

  • Backup định kỳ: cả database + uploads, và test khôi phục.

  • Giới hạn loại file nguy hiểm, đặt quota theo client/nhóm, bật thông báo email với file “nhạy cảm”.

  • Quy trình client rõ ràng: đặt tên tài khoản theo dự án, xong dự án thì gỡ quyền, lưu log.

  • X‑Sendfile/X‑Accel tham khảo: mod_xsendfile

Mẹo hiệu năng và trải nghiệm

  • Bật HTTP/2, nén gzip, cache tĩnh cho CSS/JS.

  • Với file lớn, cân nhắc upload theo “chunk” để vượt giới hạn mặc định của PHP. Xem thêm: ProjectSend Docs

  • Đặt timezone PHP thành Asia/Ho_Chi_Minh để log đúng giờ VN.

Troubleshooting nhanh

  • Không đăng nhập được sau cài: kiểm tra session path và quyền thư mục tạm của PHP.

  • Lỗi 413 Request Entity Too Large khi upload: tăng client_max_body_size (Nginx) hoặc LimitRequestBody, post_max_size, upload_max_filesize (Apache/PHP). Tham khảo: Requirements

  • Link tải 404 khi đi qua proxy/Tunnel: soát lại ingress trỏ đúng cổng gốc, tránh rewrite path lạ.

  • Giao diện tiếng Việt: cài gói ngôn ngữ trong phần Languages của ProjectSend. Docs

FAQs

  • Có link công khai không? Có, nhưng vẫn nên ưu tiên phân quyền theo client để kiểm soát và log.

  • Upload tối đa bao nhiêu? Phụ thuộc cấu hình PHP/web server; chunk upload giúp ổn định với file lớn. ProjectSend Docs

  • Có SSO/LDAP không? Mặc định không. Nếu cần, dùng SSO ở reverse proxy hoặc cân nhắc Nextcloud.

  • Audit log thế nào? Có log hành động rất chi tiết. Xem giới thiệu: ProjectSend


Khi nào nên chọn ProjectSend?

Nếu bạn thường xuyên gửi tài liệu nặng cho khách, cần phân quyền rõ, cần log ai đã tải — mà vẫn muốn dữ liệu “nằm ở nhà mình” — ProjectSend là lựa chọn gọn, an toàn, dễ triển khai. Từ Windows + Cloudflare Tunnel, VPS Ubuntu đến Docker, bạn có thể dựng trong 15 phút là chạy. Hãy bắt đầu bằng bản r1945 mới nhất và tối ưu dần theo nhu cầu.

Bài trước

Scribe cho Laravel: Tạo tài liệu API tự động, đẹp, có “Try It Out”

Để lại bình luận của bạn

Email của bạn sẽ không được công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận bản tin

Đăng ký bản tin email để nhận những bài viết mới nhất trực tiếp trong hộp thư của bạn.
Cảm hứng mỗi ngày, nói không với spam ✨