Оценочный лимит пути записи против 1 GbE с практическим потолком 112 MB/s. Берётся самая медленная измеренная локальная стадия: SHA-256, сжатие Zstd, шифрование AES-GCM или файловый ввод-вывод.
Своё. Зашифровано. Быстро. Работает.
Залейте 100 ГБ. Уходите. Возвращайтесь к готовому. Никакой няньки, сломанных загрузок и зависаний на «финализации».
- Влепить звезду на GitHub
- 17kзагрузок Docker
- Бесплатно, open-source (MIT)
- Своё, без регистрации
- Docker + Postgres, работает на NAS
Не только вкладка в браузере.
У Cotton есть настоящие клиенты: приложение для Android и десктопный агент Cotton Sync для Windows и Linux. Поставьте один раз — файлы всегда синхронизированы.
Восемь вещей, на которые большинство облаков забивает.
Детали, на которые обычно забивают при разработке. Каждая из них — реальная часть продукта, а не слайд из презентации.




Выберите свою сеть. И увидите, что реально получите.
Выберите канал, на котором работаете дома или в офисе. Cotton сравнит его с самой медленной измеренной стадией локальной записи, чтобы было видно реальную ёмкость сервера, а не красивую цифру из синтетического бенчмарка.
Сравните железо Cotton со своей сетью.
Выберите сеть, на которой реально живёте. Сравнение берёт самую медленную измеренную стадию локальной записи, потому что отдельная скорость шифрования ничего не значит, если хеширование, сжатие или файловый ввод-вывод медленнее.
Эти строки — настоящие прогоны на стандартном железе из бенчмарк-комплекта Cotton, а не нарисованные парадные цифры. Публичные эталонные JSON лежат на GitHub, а сайт перепроверяет их каждые пять минут.
Обычная база для домашнего NAS и маленького офиса. Сжатию, шифрованию и диску достаточно низких сотен МБ/с, чтобы не тормозить канал.
Оценочный лимит пути записи против 1 GbE с практическим потолком 112 MB/s. Берётся самая медленная измеренная локальная стадия: SHA-256, сжатие Zstd, шифрование AES-GCM или файловый ввод-вывод.
Оценочный лимит пути записи против 1 GbE с практическим потолком 112 MB/s. Берётся самая медленная измеренная локальная стадия: SHA-256, сжатие Zstd, шифрование AES-GCM или файловый ввод-вывод.
Оценочный лимит пути записи против 1 GbE с практическим потолком 112 MB/s. Берётся самая медленная измеренная локальная стадия: SHA-256, сжатие Zstd, шифрование AES-GCM или файловый ввод-вывод.
Оценочный лимит пути записи против 1 GbE с практическим потолком 112 MB/s. Берётся самая медленная измеренная локальная стадия: SHA-256, сжатие Zstd, шифрование AES-GCM или файловый ввод-вывод.
Оценочный лимит пути записи против 1 GbE с практическим потолком 112 MB/s. Берётся самая медленная измеренная локальная стадия: SHA-256, сжатие Zstd, шифрование AES-GCM или файловый ввод-вывод.
Десять человек грузят один файл. На диске — одна копия.
Cotton разделяет, кто владеет файлом и где лежат байты. Один и тот же файл от десяти пользователей не требует десяти физических копий. У каждого свой видимый файл, версии, доступы и права; чанки хранятся один раз.
Три загрузки. Три копии. Диск съеден три раза.
Так делают многие файловые облака. Легко представить, дорого растить, и за каждый дубль платишь, как будто диск резиновый. Он не резиновый.
Три запечатанных blob. Зашифровано — и всё равно три копии.
Некоторые облака на своём сервере накручивают шифрование поверх наивного хранения. Безопасность растёт, дедупликация падает в ноль, счёт за диск остаётся тем же — просто теперь красиво зашифрован.
Три видимых файла. Один набор чанков на диске.
У каждого пользователя остаётся свой файл, версии, шары и права. Байты лежат один раз. Хеш-идентичность, сжатие, шифрование и манифесты работают вместе по дизайну.
Один движок: из браузера на диск и обратно. Без аварийного костыля.
Загрузка, шифрование, хранение, превью, перемотка, общий доступ, проверка и очистка — всё через один конвейер, те же чанки, та же модель. Заметка в 10 КБ и папка на 100 ГБ идут по одному коду.
Хешируем. Режем. Догружаем только пропавшее.
Сжать. Зашифровать. Остаться в горячем пути.
Превью, перемотка, шары, проверка, уборка.
Сделан потому, что больше ничего не работало.
Семь вещей, которые этот продукт считает базой. Большинство облаков относят их к планам, плагинам или «не нашей проблеме».
Не выглядит как 2007-й. И не выглядит заброшенным.
Next.js на фронте, .NET на бэке, Postgres в базе. Новые релизы выходят каждые пару недель. Продукт ощущается быстрым, потому что стек не тащит его назад — а git-лог открыт, если хочешь видеть работу вживую.
По умолчанию. А не «файлы в папке, которую откроет кто угодно».
Потоковый AES-GCM с тегами аутентификации на каждый чанк. Обёрнутые ключи на каждый файл. Выбранные папки можно увести в клиентское E2E с ключом-хранилищем, который сервер не видит. Чтобы получить безопасность, не нужно ничего передёргивать.
Один файл от десяти человек = один слот на диске.
Контентно-адресуемые чанки (SHA-256). У каждого пользователя всё равно свой файл, версии, доступы, права — но за хранение платишь один раз. Дедупликация — это движок, а не плагин, который ставишь.
Если диск теряет чанк, Cotton поднимает шум.
Фоновые задачи выборочно перехешируют хранимые чанки и сверяют их с манифестом. Тихую порчу диска ловят раньше, чем заметят пользователи. Большинство облаков узнают об умирающем диске из баг-репорта — этот узнаёт первым.
Подписанные строки. Ключ только в памяти. Чек-ап админки с оценкой 0-10.
Мастер-ключу не обязательно жить в env-переменных — разблокируй через браузер, ключ остаётся только в памяти процесса. После рестарта украденный сервер без ключа превращается в тыкву: контейнер есть, диски есть, а открыть нечего. Чувствительные строки БД подписаны материалом, выведенным из этого ключа, так что подменённые пользователи, токены или манифесты ловятся при чтении. Admin Security Checkup читает 15+ сигналов харденинга контейнера (.NET diagnostics, seccomp, ptrace, dumpability, AppArmor) и даёт оценку, а не «skill issue».
Один контейнер. Postgres рядом. Всё.
Никакого Redis, который надо держать живым, никакого маркетплейса плагинов для няньканья, никакой отдельной армии воркеров. Один Docker-образ крутит веб-интерфейс, API, фоновые задачи, превью и конвейер хранения. Запусти за своим обычным TLS, делай бэкапы — и пусть архитектура приложения остаётся скучной.
Написано тем, кому пришлось пользоваться этим каждый день.
Каждая деталь, на которую наткнёшься — UX восстановления, жизненный цикл ссылок, PDF на мобильном, аудио-волна, 3D-превью, подписи целостности — существует потому, что автор однажды разозлился и починил. А не потому, что продакт-менеджер занёс её в бэклог.
Мелочи, которые замечаешь, только когда их нет.
Детали, которые обычно превращаются в тикеты, плагины или скрытую возню админа. Cotton держит их прямо в работе с файлами.
- Passkeys + WebAuthn + TOTPСовременная авторизация, а не просто поле пароля.
- Версии файловДиалог версий, откат на прошлую, политика хранения.
- Ссылки с истечением срокаОдноразовые токены, автоуборка, страницы шар с превью.
- Синхронизация в реальном времениИзменения в одной вкладке сразу видны в другой. Без F5, как в молодости.
- Тексты и обложки в аудиоLRC рядом с файлом, встроенная обложка, волна как запасной вариант.
- HEIC, SVG, подсветка кодаОткрывается в браузере. Без скачивания, без плагина.
- ZIP-скачивания (ZIP64, UTF-8)Настоящий архив с content-length, а не потоковая гадалка.
- UI на EN / RUОдин словарь и те же компоненты, без отдельного русского форка.
Выбирай по задаче. Не по логотипу.
Три места, где Cotton бьёт сильнее всего. Двенадцать честных сравнений в полной таблице.
30 секунд до работающего инстанса.
Сгенерируйте пароль. Вставьте один раз. Примонтируйте том. Всё.
services:
postgres:
image: postgres:18
environment:
POSTGRES_DB: cotton
POSTGRES_USER: cotton
POSTGRES_PASSWORD: "замените выводом: openssl rand -base64 32"
cotton:
image: bvdcode/cotton:latest
security_opt:
- no-new-privileges:true
ports:
- "8080:8080"
volumes:
- /data/cotton:/app/files
environment:
COTTON_PG_HOST: postgres
COTTON_PG_DATABASE: cotton
COTTON_PG_USERNAME: cotton
COTTON_PG_PASSWORD: "то же значение, что POSTGRES_PASSWORD"
# Опционально для рестартов без ручного unlock; иначе разблокируйте в браузере:
# COTTON_MASTER_KEY: "замените выводом: openssl rand -base64 24"Короткие ответы до того, как нырнуть в документацию.
Короткие прямые ответы. Подробности — в документации и на страницах с разбором.
Cotton — это сквозное шифрование (E2E)?
Два слоя. Чанки хранилища по умолчанию шифруются AES-GCM — это стандарт. Выбранные папки могут ещё использовать клиентское шифрование с ключом-хранилищем, который не покидает браузер. Мы не называем всё это «E2E», потому что это была бы маркетинговая выдумка — E2E только у клиентских папок.
Какое файловое облако выбрать — Cotton или то, что уже использую?
Это разные продукты. Большинство «персональных облаков» — комбайны «всё в одном»: календарь, контакты, чат, офис, федерация, 200+ приложений. Cotton — файловое облако, сфокусированное на хранении, превью, общем доступе и восстановлении файлов в масштабе. Живёшь внутри комбайна — оставайся там. Если файлы — главная задача, переходи.
Можно попробовать без регистрации?
Да. Откройте живое демо — оно генерирует креды под браузер и наполняет свежий аккаунт контентом по умолчанию. Это настоящий Cotton. Каждый клик попадает в реальный инстанс. Сломать не получится — а получится, так мы только спасибо скажем.
Какие у Cotton сейчас ограничения?
Называем сразу: клиентское E2E сегодня ограничено 512 MB на файл (браузерный Blob-конвейер), а бенчмарки — машинные базовые замеры, а не математика живой загрузки. Шифрование хранилища — AES-GCM «по учебнику», пока без стороннего аудита.
Поднимите демо. Кликайте куда угодно. Оно настоящее.
Или запустите сами: docker compose up -d. Полный исходник на GitHub, лицензия MIT. Без регистрации, без допродаж, без «оставьте имейл, чтобы посмотреть демо».





