Lưu trữ và chia sẻ dữ liệu với SFTPGo

Sau khi lấy chiếc netbook cùi bắp cài đặt CUPS làm print server đồng thời cài đặt thêm Apache Guacamole để có thể truy cập vào các máy tính ở nhà khi đi ra ngoài thì mình cũng muốn biến nó thành một cloud server để lưu trữ và chia sẻ dữ liệu cho các thành viên trong gia đình. Hiện tại thì Nextcloud là phần mềm lưu trữ dữ liệu phổ biến nhất nên mình đã có thử cài đặt lên chiếc netbook này. Tuy nhiên, do cấu hình của nó quá cùi bắp nên khi chạy Nextcloud cho tốc độ cực kỳ chậm. Do đó mình quyết định tìm một phần mềm khác “thân thiện” với cấu hình máy hơn.

Sau khi tìm kiếm thì mình đã phát hiện ra SFTPGo rất phù hợp với yêu cầu nên mình đã cài đặt và trải nghiệm thử. Sau một thời gian sử dụng thì mình cảm thấy khá hài lòng nên quyết định chia sẻ lên đây.

SFTPGo là một phần mềm máy chủ SFTP mã nguồn mở cho phép lưu trữ, chia sẻ và quản lý tập tin tập trung, hỗ trợ rất nhiều giao thức như HTTP/S, FTP/S, WebDAV… SFTPGo cho phép tạo nhiều tài khoản người dùng và phân bổ dung lượng lưu trữ trên ổ đĩa lưu trữ của máy chủ cho từng tài khoản. Ngoai ra, SFTPGo còn cho phép người dùng kết nối đến các dịch vụ lưu trữ đám mây khác như Amazon S3, Google Cloud, Azure Blob… để quản lý tập trung trên tài khoản của SFTPGo.

Cái mình thích nhất về SFTPGo là nó rất nhẹ và sử dụng rất ít tài nguyên hệ thống nên có thể chạy mượt mà trên netbook cấu hình cùi bắp của mình. Bù lại thì giao diện của nó rất đơn giản và không có nhiều tính năng như Nextcloud.

1. Điều kiện tiên quyết

2. Cài đặt SFTPGo bằng Docker

SFTPGo có thể được cài đặt trực tiếp từ trang GitHub chính thức tại địa chỉ https://github.com/drakkan/sftpgo. Ngoài ra SFTPGo cũng có trang hướng dẫn cài đặt bằng Docker tại https://github.com/drakkan/sftpgo/blob/main/docker. Tuy nhiên do mình thấy cách cài đặt hơi phức tạp nên mình đã tạo sẵn file docker-compose.yml cùng với một file script để khởi tạo các folder sử dụng cho SFTPGo Docker.

Đầu tiên thực hiện lệnh sau để tải về:

$ git clone https://github.com/workleast/sftpgo-docker-compose.git

Chạy file script khởi tạo folder

$ cd sftpgo-docker-compose
$ chmod +x setup.sh
$ ./setup.sh

Khởi chạy SFTPGo bằng lệnh

$ docker compose up -d

3. Cấu hình SFTPGo

Mở trình duyệt và nhập địa chỉ IP của máy chủ chạy SFTPGo như sau:

http://SERVER_IP:8080
# Thay thế SERVER_IP bằng IP của máy chủ
Trang tạo tài khoản quản trị viên của SFTPGo

Ở lần đầu truy cập, SFTPGo sẽ yêu cầu tạo tài khoản quản trị viên. Nhập tên đăng nhập và mật khẩu rồi nhấn nút “Create admin” để tạo.

Tài khoản quản trị viên chỉ có chức năng quản lý người dùng, thư mục, kết nối… hoặc các thiết lập khác chứ không dùng để lưu trữ dữ liệu. Để lưu trữ dữ liệu cần phải tạo tài khoản người dùng mới thì mới sử dụng được.

Lưu ý

Tạo tài khoản người dùng

Chọn “Users” từ menu ở bên trái

Tạo tài khoản người dùng của SFTPGo – 1

Nhấn biểu tượng “Add” để thêm tài khoản người dùng

Tạo tài khoản người dùng của SFTPGo – 2

Nhập tên và mật khẩu người dùng.

Tạo tài khoản người dùng của SFTPGo – 3
  • Storage: chọn “Local” để sử dụng bộ nhớ lưu trữ nội bộ của máy chủ. Nếu muốn sử dụng các dịch vụ lưu trữ khác như Google Cloud, AWS,, Azure… cũng có thể chọn ở đây.
  • Home Dir: để trống để sử dụng đường dẫn mặc định của SFTPGo
Tạo tài khoản người dùng của SFTPGo – 4

Phần “Profile” có thể để mặc định không cần khai báo nếu không có yêu cầu đặc biệt

Tạo tài khoản người dùng của SFTPGo – 5

Phần “ACL” dùng để giới hạn hoặc phân quyền cho người dùng này, nếu không cần thì cứ để mặc định

Trang tạo tài khoản người dùng của SFTPGo – 6

Phần “Disk quota and bandwidth limits” cho phép giới hạn dung lượng lưu trữ và tốc độ truy cập. Mặc định thì người dùng có thể sử dụng toàn bộ dung lượng còn trống trên ổ đĩa

Cuối cùng nhấn nút “Submit” để tạo người dùng.

Bật tính năng bảo mật 2 lớp

Để tăng cường bảo mật cho tài khoản quản trị, mình có thể cấu hình thêm tính năng bảo mật 2 lớp cho tài khoản bằng cách nhấn vào tên đăng nhập ở góc phải

Bật tính năng bảo mật 2 lớp của SFTPGo – 1

Sau đó chọn “Two-Factor Auth”

Bật tính năng bảo mật 2 lớp của SFTPGo – 2

Chọn “Default” ở mục “Configuration” sau đó nhấn “Generate new secret”

Bật tính năng bảo mật 2 lớp của SFTPGo – 3

SFTPGo yêu cầu mình quét mã QR để xác nhận. Mình sử dụng ứng ụng Authenticator của Google trên điện thoại để quét mã này sau đó nhập mã xác nhận vào phần “Authentication code” rồi nhấn “Verify and save” để lưu lại.

Cuối cùng nhấn vào tên người dùng ở góc phải

Bật tính năng bảo mật 2 lớp của SFTPGo – 4

Sau đó chọn “Logout” để đăng xuất khỏi tải khoản quản trị

4. Sử dụng tài khoản người dùng để lưu trữ dữ liệu

Đăng nhập tài khoản người dùng trong SFTPGo – 1

Để đăng nhập vào tài khoản người dùng, chọn “WebClient” tại trang đăng nhập của SFTPGo

Đăng nhập tài khoản người dùng trong SFTPGo – 2

Nhập tài khoản người dùng đã tạo ở bước trên rồi nhấn nút “Login”

Đăng nhập tài khoản người dùng trong SFTPGo – 3

Sau khi đăng nhập là có thể bắt đầu tải dữ liệu lên bằng cách kéo / thả tập tin từ Windows / Mac vào cửa sổ người dùng hoặc sử dụng các nút “Upload files”, “Add directory”…

Chúc bạn thành công!

Để lại một bình luận

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