CottonУстановка Cotton Cloud
Установка Cotton Cloud

Как подойти к установке Cotton Cloud, если вы не живёте в Docker каждый день.

Если вы ищете «установка cotton cloud», вам, скорее всего, нужен не ритуал из команд, а понятная схема: где будет жить облако, куда будут складываться файлы, зачем нужен Postgres, что делает Docker, как открыть сайт по HTTPS и что проверить после первого запуска.

Установка Cotton CloudФайловое облако на сервереDocker простыми словамиVPSДомашний серверPostgreSQL

Что вы ставите на самом деле

Cotton Cloud — это приложение, которое открывается в браузере и превращает ваш сервер в файловое облако. Postgres хранит структуру: пользователей, папки, записи о файлах, шары, настройки и служебные данные. Сами байты файлов лежат отдельно — в хранилище чанков Cotton.

  • Приложение Cotton даёт веб-интерфейс, API, превью, шары и работу с файлами.
  • PostgreSQL хранит метаданные и должен попадать в бэкапы.
  • Хранилище чанков держит зашифрованное содержимое файлов и должно быть постоянным.

Минимальный набор перед установкой

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

  • Сервер, mini PC, NAS-подобная машина или VPS, которые не выключаются каждый вечер.
  • Docker и Docker Compose, чтобы запустить Cotton и PostgreSQL как контейнеры.
  • Постоянная папка на диске или S3-совместимое хранилище для файловых чанков.
  • Домен и HTTPS, если облако будет доступно из интернета.

Docker простыми словами

Docker в этой истории — это упаковка и запуск приложения. Вы не собираете Cotton вручную на сервере, а запускаете готовый образ. Compose — это рецепт: какие контейнеры нужны, какие переменные передать и какие папки не должны исчезнуть после перезапуска.

  • Не нужно быть разработчиком, чтобы запустить Docker Compose.
  • Нужно понимать, какие папки и volumes хранят настоящие данные.
  • Если удалить не тот volume базы или хранилища, это уже потеря данных, а не «перезапуск».

Где лучше запускать Cotton

Для пробы можно поднять Cotton локально. Для настоящего использования нужен хост, который постоянно работает и который можно бэкапить. Ноутбук, который засыпает, — плохой сервер. Mini PC, домашний сервер, NAS-подобная машина или VPS обычно подходят лучше.

  • Домашний сервер удобен, если данные должны жить у вас дома и основной доступ идёт из локальной сети.
  • VPS проще открыть в интернет: домен, DNS и HTTPS обычно настраиваются прямее.
  • NAS-подобный хост хорош, когда важнее объём дисков, чем публичный доступ.

Куда будут складываться файлы

Cotton может хранить чанки на файловой системе сервера или в S3-совместимом хранилище. Файловая система проще для первого запуска: есть диск, есть папка, туда пишутся чанки. S3 имеет смысл, если вы отдельно управляете ёмкостью, отказоустойчивостью или облачным/object storage.

Домен и HTTPS

Если Cotton доступен только дома, можно начать с локального адреса. Если вы открываете его наружу, нужен домен, reverse proxy и HTTPS. Домен приводит пользователя на сервер, reverse proxy принимает веб-трафик, а HTTPS шифрует соединение между браузером и сервером.

  • Для публичного инстанса HTTPS лучше включать сразу, а не «потом».
  • Reverse proxy обычно держит порты 80 и 443 и прокидывает запросы в Cotton.
  • Один стабильный HTTPS-адрес нужен браузеру, мобильному приложению и sync-клиентам.

Первый запуск и мастер настройки

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

Что сделать сразу после установки

Логин-страница открылась — это ещё не конец установки. Нужно включить нормальную защиту администратора, проверить диагностику безопасности, убедиться, что бэкапы реально существуют, и понять, как вы будете обновлять контейнеры без потери базы и хранилища.

  • Включите passkey или TOTP для администратора.
  • Проверьте, что база и файловые чанки бэкапятся не только на тот же самый диск.
  • Запустите проверку безопасности администратора перед тем, как широко открывать инстанс.

Нормальный результат установки

После правильной установки у вас есть понятный HTTPS-адрес, известная база PostgreSQL, известное постоянное хранилище чанков, защищённый администратор, рабочая схема бэкапов и понятный порядок обновления.

Устанавливайте систему, а не просто контейнер

Практическая цель не в том, чтобы Docker один раз написал success. Цель — файловое облако, к которому можно зайти, которое можно обновить, забэкапить, защитить и спокойно объяснить себе через месяц, когда что-то придётся переносить или восстанавливать.

Что не надо пропускать

Не пропускайте бэкапы, хранение ключей, HTTPS и постоянное хранилище только потому, что контейнер один раз запустился. Это не «продвинутые настройки», а граница между демкой и файловым облаком, которому можно доверять.

По шагам

От пустого сервера до работающего Cotton Cloud.

Выше — про устройство. Здесь — реальный порядок действий: подготовить хост, поднять два контейнера, закончить настройку в браузере и закрыть всё после установки. Примерно пятнадцать минут на сервере, который у вас уже есть.

Что нужно

Минимум перед первой командой.

Четыре вещи, без которых дальше идти бессмысленно.

Сервер, который не выключается

Домашний сервер, mini PC, NAS-подобная коробка или VPS с запасом диска под ваши файлы.

Docker и Compose

Docker Engine с плагином Compose. Всё ниже — это два контейнера.

Постоянный путь

Каталог вроде /data/cotton, который переживает рестарты. Там лежат чанки и зашифрованный sentinel ключа.

Домен и TLS (для публичного)

Для доступа из интернета — домен и reverse proxy с HTTPS. Локальную установку можно начать без этого.

Установка

Шесть шагов по порядку.

Каждый шаг короткий. Не меняйте порядок: данные, контейнеры, браузер, потом защита.

1. Подготовьте хост

Поставьте Docker и плагин Compose, затем создайте каталог хранилища: mkdir -p /data/cotton. Туда Cotton кладёт чанки файлов.

2. Сгенерируйте пароль БД

Создайте один сильный секрет и используйте его для Postgres и Cotton. Не оставляйте дефолтный пароль на открытом инстансе.

3. Напишите docker-compose.yml

Вставьте compose ниже, замените плейсхолдеры пароля и сохраните рядом с путём хранилища.

4. Поднимите стек

Запустите docker compose up -d и смотрите логи, пока Cotton не скажет, что слушает порт 8080.

5. Закончите в браузере

Откройте инстанс и пройдите мастер настройки: администратор, хранилище, email, часовой пояс, телеметрия и режим ключа.

6. Закройте HTTPS и доступ

Для публичного доступа заверните домен в reverse proxy на 80/443, потом пройдите чек-лист после установки.

docker-compose.yml

Два контейнера: Postgres и Cotton.

Это тот же compose, что и на странице развёртывания. Замените оба плейсхолдера пароля на сгенерированный секрет, держите /data/cotton долговечным, а TLS вынесите на reverse proxy.

docker-compose.yml
services:
  postgres:
    image: postgres:18
    restart: always
    environment:
      POSTGRES_DB: cotton
      POSTGRES_USER: cotton
      POSTGRES_PASSWORD: "замените выводом: openssl rand -base64 32"

  cotton:
    image: bvdcode/cotton:latest
    restart: always
    depends_on:
      - postgres
    ports:
      - "8080:8080"
    volumes:
      - /data/cotton:/app/files
    environment:
      COTTON_PG_HOST: postgres
      COTTON_PG_PORT: "5432"
      COTTON_PG_DATABASE: cotton
      COTTON_PG_USERNAME: cotton
      COTTON_PG_PASSWORD: "то же значение, что POSTGRES_PASSWORD"
      COTTON_RESTORE_DATABASE_IF_EMPTY: "true"
      # Опционально для рестартов без ручного unlock; иначе разблокируйте в браузере:
      # COTTON_MASTER_KEY: "замените выводом: openssl rand -base64 24"
    security_opt:
      - no-new-privileges:true
Запуск

Четыре команды от начала до конца.

От пустого каталога до логов первого запуска. Выполняйте на хосте, где будет жить Cotton.

терминал
# 1. создать каталог хранилища
mkdir -p /data/cotton

# 2. сгенерировать один сильный пароль БД
openssl rand -base64 32

# 3. поднять Postgres и Cotton
docker compose up -d

# 4. смотреть логи первого запуска
docker compose logs -f cotton
Первый запуск

Что спрашивает мастер настройки.

Продуктовые решения вынесены в UI, а не спрятаны в env-файл.

Аккаунт администратора

Создайте первого администратора. Этот аккаунт владеет инстансом, так что защитите его сразу после установки.

Выбор хранилища

Путь на файловой системе или S3-совместимый backend для чанков. Файловая система — самый простой первый запуск.

Режим email

Cloud Cotton Mail, свой SMTP или email выключен. Публичному инстансу обычно нужен рабочий email.

Часовой пояс

Задайте часовой пояс инстанса, чтобы метки времени, расписания и логи читались правильно.

Телеметрия

Выберите режим телеметрии. В Cotton она opt-in, так что решение принимаете вы во время настройки.

Режим ключа

Разблокировка в браузере держит мастер-ключ вне контейнера, либо задайте COTTON_MASTER_KEY для рестартов без рук. Выберите подходящий компромисс.

После установки

Сделайте это до того, как довериться.

Открывшаяся логин-страница — ещё не финиш.

Включите 2FA

Включите passkeys или TOTP для администратора до того, как инстанс станет доступен извне.

Прогоните проверку безопасности

Админ-проверка подсветит публичную регистрацию, отсутствие 2FA, writable rootfs, проброс Docker socket и не только.

Бэкап вне сервера

Убедитесь, что бэкапы Postgres и хранилища чанков ложатся не на тот же самый сервер.

Знайте путь обновления

Проверьте, как вы тянете новый образ и перезапускаетесь без потери базы и хранилища чанков.

Вопросы

Прямые ответы

Нужно ли понимать Docker, чтобы установить Cotton Cloud?

Не нужно быть Docker-специалистом, но надо понимать три вещи: контейнер запускает приложение, volumes и папки хранят данные после перезапуска, а удаление не того volume может удалить настоящую базу или файлы.

Можно поставить Cotton Cloud на домашний сервер?

Да. Домашний сервер, mini PC или NAS-подобная машина подходят, если они постоянно работают, имеют достаточно диска и входят в нормальную схему бэкапов. Для доступа из интернета всё равно нужны HTTPS и reverse proxy.

Нужен ли домен для установки?

Для локального теста не обязательно. Для публичного инстанса домен и HTTPS нужны, чтобы у браузера, мобильного приложения и десктопных клиентов был один стабильный безопасный адрес.

Что такое PostgreSQL и зачем он Cotton?

PostgreSQL — это база данных. Cotton хранит там пользователей, дерево папок, записи о файлах, шары, настройки и служебное состояние. Сами большие байты файлов хранятся отдельно как чанки.

Где физически лежат файлы?

Cotton хранит содержимое файлов как чанки в выбранном backend: в постоянной папке на сервере или в S3-совместимом хранилище. Поэтому важно бэкапить и базу, и хранилище чанков.

Это страница с командами установки?

Это страница про правильную схему установки: что нужно подготовить и какие решения принять. Команды полезны только после этого; иначе легко запустить контейнер, но не понять, где данные, как они бэкапятся и почему сайт небезопасно открывать наружу без HTTPS.