Picoshare là một ứng dụng web chia sẻ file nhẹ và có khả năng truy cập cao dành cho Linux. Nó cung cấp một giao diện dễ sử dụng, nơi bạn có thể upload và chia sẻ file từ máy chủ của riêng mình. Bài viết này sẽ hướng dẫn bạn cách cài đặt Picoshare và chia sẻ file trực tuyến bằng Docker trong Ubuntu Linux.
Cài đặt các điều kiện tiên quyết cho PicoShare
Giả định: Hướng dẫn này được thực hiện trên máy Ubuntu 24.04 có ít nhất 2GB RAM và 50GB dung lượng ổ đĩa. Bạn sẽ cần phải có một tên miền để có thể tạo bản ghi “A” cho domain đó. Cuối cùng, bài viết này sẽ sử dụng DigitalOcean Spaces cho backend lưu trữ đối tượng tương thích với S3.
Lưu ý: Mặc dù các hướng dẫn ở đây dành cho Ubuntu nhưng chúng cũng áp dụng được cho hầu hết các bản phân phối Linux.
Bước đầu tiên trong việc cài đặt PicoShare là chuẩn bị cả Docker và Nginx cho hệ thống máy chủ (đối với các bản phân phối Linux khác, đây là cách cài đặt Docker trên hệ thống Linux). Để bắt đầu, hãy lấy signing key cho kho lưu trữ của dự án Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Tạo file kho lưu trữ apt mới bằng trình soạn thảo văn bản yêu thích:
sudo nano /etc/apt/sources.list.d/docker.list
Dán dòng code sau vào file kho lưu trữ mới:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stable
Lưu file kho lưu trữ, sau đó cập nhật cả danh sách kho lưu trữ của hệ thống và các gói hiện tại của nó:
sudo apt update && sudo apt upgrade
Cài đặt Docker, Docker Compose và Nginx bằng apt trong Ubuntu:
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx
Tạo bản sao lưu lưu trữ đám mây cho PicoShare
Đi tới nhà cung cấp bộ nhớ đám mây tương thích với S3, sau đó tạo bucket bộ nhớ mới. Trường hợp này đang sử dụng DigitalOcean Spaces nên hãy nhấp vào Create -> Spaces Object Storage trên màn hình bảng điều khiển.
Chọn vị trí Datacenter cho bộ lưu trữ tương thích với S3, sau đó đánh dấu vào hộp kiểm Enable CDN.
Đặt tên cho Spaces Bucket mới, sau đó nhấp vào Create a Spaces Bucket để khởi tạo nhóm đó.
Nhấp vào Copy Icon trên hộp văn bản Origin Endpoint và dán nó vào một file văn bản riêng.
Cuộn qua thanh bên trái của bảng điều khiển DigitalOcean, sau đó nhấp vào danh mục API.
Nhấp vào tab Spaces Keys, sau đó chọn Generate New Key.
Cung cấp tên cho key mới, sau đó nhấp vào Create Access Key.
Sao chép cả “Access Key” và “Secret Key” từ trang và dán vào file văn bản.
Cài đặt và chạy PicoShare
Tạo một thư mục mới cho PicoShare bên trong thư mục chính của người dùng, sau đó vào bên trong thư mục đó:
mkdir ~/picoshare && cd ~/picoshare
Sử dụng trình soạn thảo văn bản yêu thích để tạo file Compose cho PicoShare:
nano ./docker-compose.yml
Dán block code sau vào file .yml mới:
version: "3.2"
services:
picoshare:
image: mtlynch/picoshare
environment:
- PORT=4001
- PS_SHARED_SECRET=RANDOM PASSWORD HERE
- LITESTREAM_BUCKET="YOUR BUCKET NAME"
- LITESTREAM_ENDPOINT="YOUR ORIGIN ENDPOINT HERE"
- LITESTREAM_ACCESS_KEY_ID="YOUR BUCKET ACCESS ID HERE"
- LITESTREAM_SECRET_ACCESS_KEY="YOUR BUCKET SECRET HERE"
ports:
- 4001:4001
command: -db /data/store.db
volumes:
- ./data:/data
Thay thế giá trị của biến “PS_SHARED_SECRET” bằng mật khẩu ngẫu nhiên và đủ dài. Đây sẽ dùng làm mật khẩu cho giao diện web của PicoShare.
Lưu ý: Bạn có thể tạo mật khẩu ngẫu nhiên của riêng mình bằng cách chạy: cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1 trên một phiên cuối riêng biệt.
Thay đổi giá trị của biến “LITESTREAM_BUCKET” bằng tên của Spaces Bucket.
Sao chép phần vùng và tên miền của endpoint, sau đó dán phần đó làm giá trị của biến “LITESTREAM_ENDPOINT”.
Thay thế giá trị của cả hai biến “LITESTREAM_ACCESS_KEY_ID” và “LITESTREAM_SECRET_ACCESS_KEY_ID” bằng Access Key và Secret Key của DigitalOcean Spaces bucket.
Lưu file docker-compose.yml, sau đó chạy lệnh sau để build và chạy phiên bản PicoShare:
sudo docker compose up -d
Một lưu ý phụ: Bạn cũng có thể sử dụng Docker và Docker Compose để nhanh chóng host máy chủ Minecraft trên Linux.
Bảo mật PicoShare bằng SSL Reverse Proxy
Tại thời điểm này, bạn đã có PicoShare chạy ở cổng 4001 trên máy cục bộ. Để truy cập nó một cách an toàn trên Internet, bạn cần đảm bảo rằng tất cả các kết nối với nó đều được mã hóa qua SSL.
Bắt đầu bằng cách tạo bản ghi “A” mới cho tên miền trỏ đến địa chỉ IPv4 của máy chủ PicoShare. Trường hợp này sẽ tạo bản ghi “A” với giá trị “picoshare”.
Cài đặt gói snap “core” trên hệ thống Ubuntu:
sudo snap install core
Lấy gói snap certbot từ Electronic Frontier Foundation (EFF):
sudo snap install certbot --classic
Tạo file cấu hình trang Nginx mới bằng trình soạn thảo văn bản yêu thích:
sudo nano /etc/nginx/sites-available/picoshare
Dán block code sau vào file cấu hình trang web:
server {
server_name SUBDOMAIN.YOUR-ROOT.DOMAIN;
location / {
proxy_pass http://127.0.0.1:4001;
proxy_http_version 1.1;
proxy_redirect off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
client_max_body_size 0m;
}
}
Lưu file cấu hình trang web, sau đó tạo một symbol link từ thư mục “/etc/nginx/sites-available/” tới thư mục “/etc/nginx/sites-enabled/”:
sudo ln -s /etc/nginx/sites-available/picoshare /etc/nginx/sites-enabled/
Kiểm tra kỹ file cấu hình Nginx xem có lỗi nào không, sau đó khởi động daemon webserver Nginx bằng systemctl:
nginx -t
sudo systemctl enable --now nginx.service
Đăng ký máy chủ PicoShare bằng tiện ích certbot của EFF:
sudo certbot register --agree-tos -m YOUR-EMAIL@ADDRESS.HERE
Tạo chứng chỉ SSL mới trỏ đến tên miền máy chủ:
sudo certbot --nginx -d SUBDOMAIN.YOUR-ROOT.DOMAIN
Kiểm tra PicoShare và upload lên file đầu tiên
Mở trình duyệt web, sau đó điều hướng đến subdomain để load trang đích PicoShare.
Nhấp vào nút Log In ở góc trên bên phải của trang.
Cung cấp giá trị “PS_SHARED_SECRET” trên hộp văn bản Passphrase, sau đó nhấp vào Authenticate để đăng nhập.
Kiểm tra xem bạn có thể lưu dữ liệu trên máy chủ PicoShare của mình hay không bằng cách nhấp vào nút Upload, sau đó chọn file mẫu qua menu chọn.
Sao chép liên kết đầu tiên mà máy chủ trả về cho người dùng mà bạn muốn chia sẻ file của mình.
Cho phép người dùng ẩn danh upload file trên PicoShare
Ngoài các nội dung upload lên do người dùng gửi, bạn cũng có thể tạo các liên kết tạm thời cho phép người dùng ẩn danh upload các file riêng lẻ trên máy chủ. Điều này có thể hữu ích nếu có ai đó cần chia sẻ file với bạn nhưng không thể upload file lên dịch vụ đám mây thông thường.
Bắt đầu bằng cách nhấp vào danh mục Guest Links trên trang chủ của PicoShare.
Nhấp vào nút Create New ngay phía trên bảng tổng quan liên kết trống.
Cung cấp các chi tiết cơ bản cho liên kết upload dành cho khách. Trường hợp ví dụ sẽ gắn nhãn nó là “MakeTechEasier” và đặt thời hạn sử dụng là Never với giới hạn kích thước file là 100MB và giới hạn tổng thể là 10 lần upload.
Nhấp vào Create để tạo liên kết khách tạm thời cho phiên bản PicoShare của bạn.
Nhấp vào biểu tượng copy ở phía bên phải của liên kết dành cho khách, sau đó gửi nội dung trong clipboard đến người nhận dự định.
Triển khai và bảo mật PicoShare để chia sẻ file trực tuyến bằng Linux chỉ là bước đầu tiên để lấy lại quyền riêng tư kỹ thuật số trực tuyến của bạn. Tìm hiểu cách bạn có thể tự bảo vệ mình hơn nữa bằng cách host email alias server của riêng bạn bằng SimpleLogin.