Как разместить и поделиться большими файлами онлайн с помощью PicoShare в Linux

Picoshare — это легкое и доступное веб-приложение для обмена файлами для Linux. Оно предоставляет простой в использовании интерфейс, где вы можете загружать и делиться файлами с вашего собственного сервера. Эта статья покажет вам, как установить Picoshare и делиться файлами онлайн с помощью Docker в Ubuntu Linux.
Содержание
- Почему стоит использовать Picoshare для обмена файлами онлайн
- Установка необходимых компонентов для PicoShare
- Установка и запуск PicoShare
- Защита PicoShare с помощью SSL обратного прокси
- Тестирование PicoShare и загрузка вашего первого файла
Почему стоит использовать Picoshare для обмена файлами онлайн
Одним из главных преимуществ PicoShare является то, что его легко развернуть на любой платформе на базе Linux. С помощью Docker вы можете делиться файлами онлайн с PicoShare, не беспокоясь о зависимостях Linux и совместимости программ.
Еще одним преимуществом PicoShare является то, что он не изменяет файлы, которые вы загружаете на его платформу. Это делает его полезным для обмена фотографиями и видео, так как вы можете быть уверены, что сервер не перекодирует ваши медиафайлы во время загрузки.

Наконец, PicoShare имеет возможность дублировать свое хранилище файлов на внешние решения для объектного хранения. Например, вы можете связать свой совместимый с Amazon S3 бакет с вашим сервером PicoShare и создать резервную копию содержимого вашего сервера в соотношении 1:1. Это упрощает восстановление данных при миграции с одной системы на другую.
Установка необходимых компонентов для PicoShare
Предположение: Этот учебник выполнен на машине с Ubuntu 24.04 с как минимум 2 ГБ ОЗУ и 50 ГБ дискового пространства. Вам потребуется доменное имя, для которого вы сможете создать записи “A”. Наконец, в этой статье будет использоваться DigitalOcean Spaces в качестве бэкенда для объектного хранения, совместимого с S3.
Примечание: Хотя инструкции здесь предназначены для Ubuntu, они также должны работать для большинства дистрибутивов Linux.
Первый шаг в установке PicoShare — это получить как Docker, так и Nginx для вашей хост-системы (для других дистрибутивов Linux, вот как установить Docker на ваши системы Linux). Для начала получите ключ подписи для репозитория проекта Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |sudo gpg --dearmor-o/etc/apt/keyrings/docker.gpg
sudochmod a+r /etc/apt/keyrings/docker.gpgСоздайте новый файл репозитория apt с помощью вашего любимого текстового редактора:
sudonano/etc/apt/sources.list.d/docker.listВставьте следующую строку кода в ваш новый файл репозитория:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stableСохраните ваш файл репозитория, затем обновите как списки репозиториев системы, так и ее текущие пакеты:
sudo apt update &&sudo apt upgradeУстановите Docker, Docker Compose и Nginx с помощью apt в Ubuntu:
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginxСоздание резервной копии облачного хранилища для PicoShare
Перейдите к вашему облачному провайдеру, совместимому с S3, затем создайте новый бакет для хранения. В данном случае я использую DigitalOcean Spaces, поэтому я нажму Создать -> Объектное хранилище Spaces на экране своей панели управления.

Выберите расположение дата-центра для вашего совместимого с S3 хранилища, затем отметьте флажок Включить CDN.

Укажите имя для вашего нового бакета Spaces, затем нажмите Создать бакет Spaces, чтобы инициализировать его.

Нажмите на Копировать иконку в текстовом поле Origin Endpoint и вставьте это в отдельный текстовый файл.

Прокрутите левую боковую панель вашей панели управления DigitalOcean, затем нажмите на категорию API.
Нажмите на вкладку Ключи Spaces, затем выберите Создать новый ключ.
Укажите имя для вашего нового ключа, затем нажмите Создать ключ доступа.
Скопируйте как “Ключ доступа”, так и “Секретный ключ” со страницы и вставьте их в ваш текстовый файл.

Установка и запуск PicoShare
Создайте новую папку для PicoShare внутри домашнего каталога вашего пользователя, затем перейдите в нее:
mkdir ~/picoshare &&cd ~/picoshareИспользуйте ваш любимый текстовый редактор, чтобы создать файл Compose для PicoShare:
nano ./docker-compose.ymlВставьте следующий блок кода в ваш новый .yml файл:
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Замените значение переменной “PS_SHARED_SECRET” на достаточно длинный и случайный пароль. Это будет паролем для веб-интерфейса PicoShare.

Примечание: вы можете сгенерировать свой собственный случайный пароль, выполнив: cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1 в отдельной сессии терминала.
Измените значение переменной “LITESTREAM_BUCKET” на имя вашего бакета Spaces.

Скопируйте регион и часть доменного имени вашего конечного пункта, затем вставьте это в качестве значения переменной “LITESTREAM_ENDPOINT”.

Замените значения переменных “LITESTREAM_ACCESS_KEY_ID” и “LITESTREAM_SECRET_ACCESS_KEY_ID” на Ключ доступа и Секретный ключ бакета DigitalOcean Spaces.

Сохраните ваш файл docker-compose.yml, затем выполните следующую команду, чтобы построить и запустить экземпляр PicoShare:
sudodocker compose up -dКстати: вы также можете использовать Docker и Docker Compose для быстрого размещения сервера Minecraft на вашем Linux-машине.
Защита PicoShare с помощью SSL обратного прокси
На данный момент у вас уже работает PicoShare на порту 4001 на вашем локальном компьютере. Чтобы получить к нему безопасный доступ в интернете, вам нужно убедиться, что все соединения с ним зашифрованы через SSL.
Начните с создания новой записи “A” для вашего доменного имени, указывающей на IPv4-адрес вашего сервера PicoShare. В моем случае я создам запись “A” со значением “picoshare.”
Установите пакет snap “core” на вашей системе Ubuntu:
sudo snap install coreПолучите пакет snap certbot от Electronic Frontier Foundation (EFF):
sudo snap install certbot --classicСоздайте новый файл конфигурации сайта Nginx с помощью вашего любимого текстового редактора:
sudonano/etc/nginx/sites-available/picoshareВставьте следующий блок кода в ваш файл конфигурации сайта:
server{
server_name SUBDOMAIN.YOUR-ROOT.DOMAIN;
location / {
proxy_passhttp://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;
}
}Сохраните ваш файл конфигурации сайта, затем создайте символическую ссылку из вашего каталога “/etc/nginx/sites-available/“ в вашу папку “/etc/nginx/sites-enabled/“:
sudoln-s/etc/nginx/sites-available/picoshare /etc/nginx/sites-enabled/Дважды проверьте ваш файл конфигурации Nginx на наличие ошибок, затем запустите демон веб-сервера Nginx с помощью systemctl:
ginx -t
sudo systemctl enable--now nginx.service
Зарегистрируйте ваш сервер PicoShare с помощью утилиты certbot от EFF:
sudo certbot register --agree-tos-m [email protected]Сгенерируйте новый SSL-сертификат, указывающий на доменное имя вашего сервера:
sudo certbot --nginx-d SUBDOMAIN.YOUR-ROOT.DOMAINПолезно знать: узнайте, как HTTPS защищает ваши данные в интернете, сгенерировав свой собственный SSL-сертификат с помощью OpenSSL.
Тестирование PicoShare и загрузка вашего первого файла
Откройте веб-браузер, затем перейдите на ваш поддомен, чтобы загрузить страницу приветствия PicoShare.

Нажмите кнопку Войти в правом верхнем углу страницы.
Укажите значение переменной “PS_SHARED_SECRET” в текстовом поле Пароль, затем нажмите Аутентифицироваться, чтобы войти.

Проверьте, можете ли вы сохранить данные на вашем сервере PicoShare, нажав кнопку Загрузить, затем выберите образец файла через меню выбора.

Скопируйте первую ссылку, которую сервер возвращает пользователю, с которым вы хотите поделиться своим файлом.

Включение временных загрузок для гостей на PicoShare
Помимо загрузок, отправленных пользователями, вы также можете создать временные ссылки, которые позволяют анонимным пользователям загружать отдельные файлы на ваш сервер. Это может быть полезно, если у вас есть кто-то, кто должен поделиться файлами с вами, но не может загрузить файлы в обычный облачный сервис.
Начните с нажатия на категорию Гостевые ссылки на главной странице PicoShare.

Нажмите кнопку Создать новый прямо над пустой таблицей обзора ссылок.
Укажите основные детали для вашей ссылки на загрузку для гостей. В моем случае я назову ее “MakeTechEasier” и установлю срок действия на “Никогда” с ограничением размера файла в 100 МБ и общим лимитом в 10 загрузок.

Нажмите Создать, чтобы сгенерировать временную ссылку для гостей для вашего экземпляра PicoShare.
Нажмите на Копировать иконку с правой стороны гостевой ссылки, затем отправьте содержимое вашего буфера обмена предполагаемому получателю.

Размещение и защита PicoShare для обмена файлами онлайн с использованием Linux — это только первый шаг к восстановлению вашей цифровой конфиденциальности в интернете. Узнайте, как вы можете дополнительно защитить себя, разместив свой собственный сервер псевдонимов электронной почты с помощью SimpleLogin.
Кредит изображения: Alejandro Escamilla через Unsplash и PicoShare Github. Все изменения и скриншоты сделаны Рамсесом Редом.