Docker·Linux·Server · BIGGRATZ

Copyparty + Cloudflare Tunnel: свой файловый сервер в интернете за 5 минут

12 сентября 2026· 5 мин чтения· biggratz_ru

Введение: зачем ещё один файлообменник?

Nextcloud тяжеловат для слабого VPS или SBC. FileRun требует PHP и MySQL. Простой python -m http.server не умеет ни авторизацию, ни resumable-загрузки, ни безопасный доступ из интернета.

Copyparty — это single-file Python-сервер, который делает всё и сразу: HTTP/WebDAV/SFTP/FTP, drag-and-drop загрузки с возобновлением, миниатюры, поиск по тегам, дедупликация. И всё это без базы данных, без зависимостей и без боли.

А в связке с Cloudflare Quick Tunnel он получает публичный HTTPS-URL без открытия портов, без домена и без настройки DNS. Идеально для быстрого шаринга файлов с VPS, домашнего сервера или даже Repka Pi.

В этой статье мы поднимем рабочую конфигурацию за 5 минут, разберём грабли, на которые я наступил при тестировании, и настроим всё строго по официальной документации.

Что нам понадобится

  • VPS или домашний сервер с Docker (Ubuntu/Debian)
  • ~5 минут времени
  • Базовое понимание терминала

Для владельцев SBC: Copyparty отлично работает на Repka Pi / Orange Pi. Если Docker не стоит, можно использовать SFX-версию (о ней в конце статьи).

Шаг 1: Подготовка директории

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

mkdir -p ~/copyparty-data
chown 1000:1000 ~/copyparty-data

Шаг 2: Запуск Copyparty

Используем официальный Docker-образ copyparty/ac (рекомендуемый, с поддержкой миниатюр и транскодинга).

docker run -d \
  --name copyparty \
  --restart unless-stopped \
  --network host \
  -v ~/copyparty-data:/w \
  copyparty/ac:latest \
  -a admin:YourStrongPassword123 \
  -v /w::rw \
  --xff-hdr cf-connecting-ip \
  --rproxy 1

Разбор флагов

ФлагЗачем нужен
--network hostКритически важно для работы с Cloudflare Tunnel в том же хосте
-a admin:YourStrongPassword123Создаёт аккаунт. Без этого сервер открыт для всех!
-v /w::rwПрава на том: r = чтение, w = запись
--xff-hdr cf-connecting-ipГоворит Copyparty читать реальный IP клиента из заголовка Cloudflare
--rproxy 1Доверяет заголовку cf-connecting-ip полностью (в нём ровно один IP)

Обязательно смените пароль YourStrongPassword123 на свой сложный пароль перед запуском!

Проверяем, что контейнер работает:

docker ps | grep copyparty

Статус должен быть Up, а не Restarting.

Шаг 3: Публикация в интернет через Cloudflare Quick Tunnel

Docker-образ Copyparty не поддерживает встроенный флаг --cfq (он есть только в SFX/pip-версии). Поэтому туннель запускаем отдельным контейнером.

docker run -d \
  --name cloudflared \
  --restart unless-stopped \
  --network host \
  cloudflare/cloudflared:latest \
  tunnel --url http://127.0.0.1:3923

Получаем публичный URL:

docker logs cloudflared 2>&1 | grep 'url='

В выводе будет строка вида:

INF |  https://calvin-hired-rejected-sullivan.trycloudflare.com  |

Шаг 4: Проверка и первые грабли

Открываем полученный URL в браузере. Обязательно по HTTPS — Cloudflare Quick Tunnel не работает по HTTP.

#1: rejected by cors-check

Если вы видите эту ошибку или страница показывает только поле пароля без логина — проблема в настройке real-ip. Именно для этого мы добавили --xff-hdr cf-connecting-ip --rproxy 1 в шаг 2. Без этих флагов Copyparty видит IP туннеля вместо вашего реального IP и блокирует запросы.

#2: Контейнер в статусе Restarting

Если Copyparty постоянно перезапускается, проверьте логи:

docker logs copyparty --tail 50

Частая причина — конфликт флагов или неправильные права на директорию. Убедитесь, что ~/copyparty-data принадлежит UID 1000.

#3: --cfq не работает в Docker

Ошибка unrecognized arguments: --cfq означает, что вы пытаетесь использовать флаг SFX-версии в Docker-образе. В Docker туннель всегда запускается отдельным контейнером cloudflared.

Шаг 5: Безопасность (обязательно!)

Обновление до последней версии

В марте 2026 была обнаружена XSS-уязвимость (CVE-2026-32109). Регулярно обновляйте образ:

docker pull copyparty/ac:latest
docker stop copyparty && docker rm copyparty
# Перезапустите команду из шага 2

Анонимная загрузка

Если планируете давать ссылку другим для загрузки без пароля, обязательно добавьте volflag nohtml для защиты от XSS:

-v /w::rw:c,nohtml

Лимит размера файла

Cloudflare ограничивает запросы 100 МБ. Copyparty умеет бить файлы на чанки, но если будут ошибки загрузки больших файлов, добавьте флаг:

--u2sz 32

Реальные примеры использования

СценарийКак сделать
Загрузка с телефонаОткрыть URL в мобильном браузере → Drag&Drop или кнопка Upload
Загрузка через CLIcurl -u admin:Password -T file.txt https://your-tunnel.trycloudflare.com/
WebDAV монтированиеПодключить как сетевой диск в Windows/Linux/macOS через контрол-панель
Шаринг ссылки на файлПКМ по файлу → Copy Link (ссылка требует авторизации)
Медиа-стримингКлик по видео/аудио файлу — воспроизведение прямо в браузере

Альтернатива без Docker (SFX-версия)

Если Docker не доступен или вы хотите максимально быстрый старт, Copyparty можно запустить одной командой через SFX (self-extractor):

curl -L https://copyparty.eu/py > copyparty-sfx.py
chmod +x copyparty-sfx.py
./copyparty-sfx.py -a admin:YourStrongPassword123 -v ~/copyparty-data:/w::rw --cfq --xff-hdr cf-connecting-ip --rproxy 1

Здесь флаг --cfq работает из коробки, и туннель поднимается автоматически. Идеально для Repka Pi, Orange Pi или любого устройства с Python.

Сравнение с аналогами

ФункцияCopypartyNextcloudFileRunpython http.server
Установка1 командаDocker Compose + DBPHP + MySQL1 команда
Потребление RAM~50 МБ512+ МБ256+ МБ~20 МБ
Resumable uploadsДаДаДаНет
WebDAV/SFTP/FTPДаДа (WebDAV)НетНет
МиниатюрыДаДаДаНет
Поиск по тегамДаДаНетНет
ДедупликацияДаНетНетНет
Cloudflare TunnelДаДаДаДа

Итоги

Copyparty — это тот редкий случай, когда «ещё один self-hosted проект» действительно решает боль. Он лёгкий, быстрый, функциональный и не требует подготовки инфраструктуры. В связке с Cloudflare Quick Tunnel вы получаете безопасный публичный доступ к файлам за 5 минут без открытия портов и настройки доменов.

Для домашнего сервера, VPS или SBC вроде Repka Pi / Orange Pi — отличный выбор, особенно если вам нужен просто надёжный файлообменник без оверхеда полноценного облака.

Полезные ссылки

Похожие материалы