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
- Đã có máy tính chạy hệ điều hành Linux (Ubuntu)
- Đã cài đặt Docker và Docker Compose
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ủ
Ở 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
Nhấn biểu tượng “Add” để thêm tài khoản người dùng
Nhập tên và mật khẩu người dùng.
- 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
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
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
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
Sau đó chọn “Two-Factor Auth”
Chọn “Default” ở mục “Configuration” sau đó nhấn “Generate new secret”
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
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 vào tài khoản người dùng, chọn “WebClient” tại trang đăng nhập của SFTPGo
Nhập tài khoản người dùng đã tạo ở bước trên rồi nhấn nút “Login”
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!