Короткий маршрут: от сервера до работающего облака
Чтобы поднять файловое облако на своём сервере, сначала определите, где будут жить база данных и содержимое файлов, а уже потом запускайте контейнеры. Рабочая схема Cotton состоит из приложения, PostgreSQL, постоянного хранилища чанков и HTTPS-входа.
- Подготовьте сервер или NAS с постоянным диском, Docker и Docker Compose.
- Выберите адрес облака и настройте для него HTTPS-сертификат.
- Запустите Cotton и PostgreSQL с постоянными томами, а не во временной файловой системе контейнера.
- Подключите локальную папку или S3-совместимое хранилище для чанков.
- Пройдите мастер настройки, создайте первого пользователя и включите подходящий режим разблокировки ключей.
- Проверьте загрузку, превью, скачивание, публичную ссылку, WebDAV и восстановление из бэкапа до переноса основной библиотеки.
Что подготовить до установки
Для домашнего сервера, mini PC, NAS или VPS требования одинаковы по смыслу: приложению нужна стабильная база, постоянное хранилище и безопасный вход. Размер диска выбирается по вашей библиотеке, а производительность лучше сверять с опубликованными бенчмарками и скоростью собственной сети.
- Отдельное постоянное место для PostgreSQL и отдельное место для чанков Cotton.
- Резервная площадка вне основного сервера для дампов базы и копии хранилища.
- Домен и TLS-сертификат для доступа из интернета; для локальной сети - доверенный HTTPS-вход.
- Понимание потолка сети: для дома это часто 1 GbE или 2.5 GbE, а не скорость диска из рекламы.
Почему Cotton - не просто UI поверх NAS
NAS дает место для хранения. Cotton добавляет поверх него модель файлового облака: контентно-адресуемые чанки, манифесты, метаданные дерева, превью, шары, версии и очистку, которые понимают одни и те же объекты.
- Видимые файлы могут ссылаться на переиспользуемые чанки вместо слепого дублирования байтов.
- Снимки и восстановление работают по ссылкам, а не через копирование всего дерева заново.
- Превью, WebDAV, шары и браузерная загрузка используют одну модель хранения.
Почему это не groupware-комбайн
Некоторые облака на своём сервере пытаются быть календарем, офисом, чатом, контактами, маркетплейсом приложений и хранилищем файлов одновременно. Cotton уже по дизайну: файлы - главный продукт, поэтому больше внимания уходит в движок хранения, браузерный UX, превью, шары и восстановление.
- Выбирайте Cotton, когда задача - именно файловое облако.
- Берите более широкий комбайн, если главная ценность в календарях, контактах, онлайн-офисе или федерации.
- Это осознанная фокусировка, а не попытка заменить весь корпоративный портал.
Приватность и шифрование по умолчанию
Cotton хранит чанки через потоковый AES-GCM с тегами аутентификации на каждый чанк. Отдельные папки можно увести дальше - в клиентское шифрование, где браузер шифрует до загрузки, а сервер видит непрозрачные имена и ciphertext.
- AES-GCM по чанкам остается частью обычного пути хранения.
- Клиентски зашифрованные папки есть для данных, которые сервер не должен читать.
- Passkeys, TOTP, отзыв сессий, подписи метаданных БД и Admin Security Checkup встроены в продуктовую поверхность.
Большие файлы и медиатеки
Серьезное приватное облако должно спокойно жить с большими файлами. Cotton построен вокруг чанковой загрузки, хеширования в worker, потокового сжатия, потокового шифрования, range-чтений и превью для смешанных библиотек, которые люди реально хранят.
- Большие загрузки повторяют недостающие чанки, а не стартуют заново целиком.
- PDF, изображения, аудио, видео, HEIC, SVG, Markdown и отдельные 3D-файлы можно нормально смотреть в браузере.
- Range-чтения сохраняют перемотку медиа без пересборки всего файла заранее.
Синхронизация и совместимость
Свое файловое облако все равно должно жить с обычными устройствами. В Cotton есть WebDAV для совместимых клиентов и нативные клиенты: Android-приложение через Google Play testing или APK, плюс Cotton Sync для Windows и Linux.
- WebDAV дает стандартный путь для rclone, автосинхронизации телефона и существующих sync-инструментов.
- Android-приложение и десктопные клиенты делают Cotton не просто вкладкой в браузере.
- Нативные и WebDAV-записи идут в ту же модель хранения файлового облака.
Базовая схема развёртывания
Базовое развёртывание Cotton намеренно состоит из знакомых частей: один образ приложения, PostgreSQL, постоянное хранилище чанков и reverse proxy с HTTPS. Файловая система и S3-совместимое хранилище работают в одной логической модели, поэтому способ хранения можно выбирать под свою инфраструктуру.
- Контейнер приложения обслуживает веб-интерфейс, API, WebDAV и фоновые операции.
- PostgreSQL хранит дерево файлов, пользователей, шары, версии и служебные метаданные.
- Filesystem или S3-compatible backend хранит зашифрованные чанки содержимого.
- Reverse proxy публикует домен по HTTPS и передаёт запросы приложению.
Что проверить после первого запуска
Открытая главная страница ещё не означает, что облако готово к данным. До загрузки основной библиотеки проверьте полный путь файла и сценарий восстановления: так ошибки в домене, томах, правах или бэкапах обнаружатся на тестовых данных.
- HTTPS открывается без предупреждений, а внешний адрес совпадает с настройками развёртывания.
- После перезапуска контейнеров пользователи, дерево файлов и загруженные данные остаются на месте.
- Большой тестовый файл загружается, скачивается, а видео перематывается без полного скачивания.
- Публичная ссылка открывается без аккаунта, а WebDAV и нужный нативный клиент подключаются отдельно.
- Бэкап базы и хранилища создаётся вне сервера, а процедура восстановления проверена на тестовом инстансе.
Не только слова на посадочной странице
Cotton доказывает self-hosted cloud storage не заголовком, а связанной поверхностью: чанковые загрузки, контентно-адресуемое хранилище, AES-GCM, клиентски зашифрованные папки, превью, шары, снимки, WebDAV, нативные клиенты, бенчмарки, setup и админская диагностика.
Кому подходит такая схема
Cotton подходит, когда нужно файловое облако на собственном сервере без зависимости от SaaS-провайдера: с открытым исходным кодом, шифрованием, полезными превью, восстановлением и компактным развёртыванием на обычной инфраструктуре.
Когда Cotton не нужен
Не выбирайте Cotton только потому, что нужен один логин для всего groupware. Выбирайте его, когда важнее сами файлы, поведение хранилища, превью, шары, восстановление и понятная форма разворачивания.