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

Фотография человека перед ноутбуком с телефоном в руке.

Picoshare — это легкое и доступное веб-приложение для обмена файлами для Linux. Оно предоставляет простой в использовании интерфейс, где вы можете загружать и делиться файлами с вашего собственного сервера. Эта статья покажет вам, как установить Picoshare и делиться файлами онлайн с помощью Docker в Ubuntu Linux.

Содержание

  • Почему стоит использовать Picoshare для обмена файлами онлайн
  • Установка необходимых компонентов для PicoShare
  • Установка и запуск PicoShare
  • Защита PicoShare с помощью SSL обратного прокси
  • Тестирование PicoShare и загрузка вашего первого файла

Почему стоит использовать Picoshare для обмена файлами онлайн

Одним из главных преимуществ PicoShare является то, что его легко развернуть на любой платформе на базе Linux. С помощью Docker вы можете делиться файлами онлайн с PicoShare, не беспокоясь о зависимостях Linux и совместимости программ.

Еще одним преимуществом PicoShare является то, что он не изменяет файлы, которые вы загружаете на его платформу. Это делает его полезным для обмена фотографиями и видео, так как вы можете быть уверены, что сервер не перекодирует ваши медиафайлы во время загрузки.

Скриншот работы 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 и того, будет ли бакет использовать CDN DigitalOcean.

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

Скриншот, показывающий текстовое поле для имени Spaces и расположение кнопки

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

Скриншот, подчеркивающий расположение иконки Копировать на панели управления Spaces.

Прокрутите левую боковую панель вашей панели управления DigitalOcean, затем нажмите на категорию API.

Нажмите на вкладку Ключи Spaces, затем выберите Создать новый ключ.

Укажите имя для вашего нового ключа, затем нажмите Создать ключ доступа.

Скопируйте как “Ключ доступа”, так и “Секретный ключ” со страницы и вставьте их в ваш текстовый файл.

Скриншот, показывающий расположение Ключа доступа и Секретного ключа для бакета 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.

Терминал, показывающий случайно сгенерированный общий пароль для экземпляра PicoShare.

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

Измените значение переменной “LITESTREAM_BUCKET” на имя вашего бакета Spaces.

Терминал, показывающий соответствующее значение для бакета, совместимого с S3.

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

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

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

Скриншот, показывающий Ключ доступа и Секретный ключ Spaces для экземпляра PicoShare.

Сохраните ваш файл 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

Терминал, показывающий проверку конфигурации и команду systemctl для запуска веб-сервера Nginx.

Зарегистрируйте ваш сервер 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.

Скриншот, показывающий страницу приветствия PicoShare, работающего на VPS.

Нажмите кнопку Войти в правом верхнем углу страницы.

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

Скриншот, показывающий запрос на вход в PicoShare.

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

Скриншот, подчеркивающий расположение кнопки Загрузить в внутренней панели управления.

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

Скриншот, подчеркивающий расположение первой делимой ссылки в экземпляре PicoShare.

Включение временных загрузок для гостей на PicoShare

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

Начните с нажатия на категорию Гостевые ссылки на главной странице PicoShare.

Скриншот, показывающий расположение категории

Нажмите кнопку Создать новый прямо над пустой таблицей обзора ссылок.

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

Скриншот, показывающий заполненную форму Гостевой ссылки.

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

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

Скриншот, показывающий расположение иконки Копировать на экране Гостевых ссылок.

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

Кредит изображения: Alejandro Escamilla через Unsplash и PicoShare Github. Все изменения и скриншоты сделаны Рамсесом Редом.