Files
onlyoffice-coolify/README.md
T
2026-01-11 01:27:28 +03:00

11 KiB
Raw Blame History

📄 OnlyOffice Document Server для Coolify

⚠️ ВАЖНО ДЛЯ PRODUCTION (БОЕВОГО РЕЖИМА)

Для использования в реальных проектах настоятельно рекомендуется клонировать (сделать Fork) этого репозитория в свой личный аккаунт GitHub.

При настройке проекта в Coolify (Часть 3) указывайте ссылку именно на ВАШУ копию репозитория (например, https://github.com/ВАШ_НИКНЕЙМ/onlyoffice-coolify). Это гарантирует вам полный контроль над версиями и защитит от неожиданных изменений в оригинальном источнике.


Этот репозиторий содержит инструменты для быстрой и безопасной настройки сервера и развертывания OnlyOffice Document Server (версия без ограничений подключений) под управлением Coolify.


⚡ Часть 1: Подготовка сервера (Подробная инструкция)

Скрипт setup.sh автоматически настраивает чистый VPS (Ubuntu/Debian) для работы с Coolify. Он устанавливает Docker, настраивает Firewall, создает Swap и генерирует ключи доступа.

Пошаговый запуск скрипта:

  1. Подключение: Зайдите на ваш новый чистый сервер по SSH под пользователем root.

  2. Запуск команды: Скопируйте и вставьте следующую команду в терминал, затем нажмите Enter:

    bash <(curl -sSL https://raw.githubusercontent.com/FluentBusiness/onlyoffice-coolify/refs/heads/master/setup.sh)
    
  3. Подтверждение: Скрипт спросит: Начать настройку? (y/n). Введите y и нажмите Enter.

  4. Ожидание: Дождитесь завершения процесса (это займет 1-2 минуты). Скрипт обновит систему и установит нужные компоненты.

  5. Сохранение ключа (КРИТИЧНО): В конце работы скрипт очистит экран и покажет блок текста под заголовком PRIVATE KEY.

    • Выделите и скопируйте весь ключ (от -----BEGIN OPENSSH PRIVATE KEY----- до -----END OPENSSH PRIVATE KEY-----).
    • Сохраните его в надежном месте (например, в блокноте) прямо сейчас. Это единственный способ доступа к серверу через Coolify!

Вот подробное описание работы скрипта setup.sh.

Этот скрипт представляет собой инструмент автоматизации ("Bootstrap script"), который превращает свежеустановленный Linux-сервер (Ubuntu/Debian) в полностью настроенный хост, готовый к работе с Coolify и OnlyOffice.

Основные функции скрипта:

  • 🛡️ Базовая безопасность и Сеть:

  • Обновление системы: Выполняет полное обновление списка пакетов и установленных программ (apt-get update && upgrade), а также удаляет неиспользуемые зависимости.

  • Настройка Firewall (UFW): Сбрасывает настройки фаервола, запрещает все входящие соединения по умолчанию и открывает только необходимые порты: 22 (SSH), 80 (HTTP) и 443 (HTTPS/HTTP3).

  • Защита от взлома (Fail2Ban): Устанавливает и настраивает fail2ban для защиты SSH от перебора паролей (бан на 1 час после 3 неудачных попыток).

  • 🚀 Оптимизация производительности:

  • Swap (Файл подкачки): Проверяет наличие swap-файла и, если его нет, создает файл размером 4GB. Это критически важно для OnlyOffice, который требователен к оперативной памяти, и предотвращает падение процессов из-за нехватки RAM (OOM Killer).

  • Полезные утилиты: Устанавливает набор инструментов, необходимых для работы Coolify и администрирования: curl, wget, jq, git, htop, putty-tools.

  • 🔑 Управление доступом (SSH Hardening):

  • Генерация ключей: Создает новую, безопасную пару SSH-ключей типа Ed25519.

  • Конвертация для Windows: Автоматически создает версию ключа в формате .ppk для пользователей PuTTY.

  • Усиление SSH: Отключает вход по паролю (PasswordAuthentication no) и разрешает доступ пользователю root только по SSH-ключам. Это исключает возможность брутфорс-атак на пароль.

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

  • 🐳 Среда исполнения:

  • Docker: Проверяет наличие Docker и, если он не установлен, автоматически скачивает и устанавливает актуальную версию с официального ресурса (get.docker.com).

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

🔗 Часть 2: Подключение к Coolify и Настройка Прокси

Этап А: Добавление сервера

  1. Откройте панель Coolify.
  2. Перейдите в Servers -> Add Server.
  3. Заполните данные:
    • IP Address: IP вашего сервера.
    • User: root.
    • Port: 22.
    • Private Key: Вставьте ключ, который вы сохранили на предыдущем этапе.
  4. Нажмите Connect.

Этап Б: Смена прокси на Caddy (ОБЯЗАТЕЛЬНО) ⚠️

OnlyOffice работает нестабильно через стандартный прокси Traefik (ошибки Mixed Content). Необходимо переключить его на Caddy.

  1. В Coolify откройте настройки этого сервера (Servers -> ваш сервер).
  2. Найдите блок Proxy.
  3. Нажмите Stop Proxy (если он запущен).
  4. В выпадающем списке выберите Caddy.
  5. Нажмите Start Proxy.

📦 Часть 3: Развертывание OnlyOffice

1. Создание ресурса

  1. Перейдите в ваш проект (Project -> Environment).
  2. Нажмите New -> Docker Compose.
  3. Выберите источник (например, GitHub Repository).
  4. Важно: Укажите ссылку на ВАШ (Fork) репозиторий, чтобы иметь контроль над версией конфигурации. Coolify автоматически подтянет файл docker-compose.yaml.

2. Настройка переменных окружения (ВАЖНО!) ⚠️

Чтобы OnlyOffice принял ваш секретный ключ, нужно правильно настроить переменные.

  1. Перейдите в меню Environment Variables.
  2. Добавьте переменную:
    • Key: JWT_SECRET
    • Value: Придумайте сложный пароль (например, MySuperSecretKey2024).
  3. Настройка видимости (Критический шаг): Раскройте дополнительные настройки переменной и обязательно отметьте галочками оба пункта:
    • ✅ Available at Buildtime
    • ✅ Available at Runtime
    • Если в интерфейсе переменная дублируется или есть несколько полей для ввода — убедитесь, что она прописана везде и галочки стоят.
  4. Нажмите Save.

3. Настройка домена

  1. В настройках сервиса (General) в поле Domains укажите ваш домен (например, https://office.example.com).
  2. Убедитесь, что DNS вашего домена направлены на IP сервера.

4. Запуск

Нажмите Deploy. Coolify соберет образ и запустит контейнер. Благодаря настройкам Buildtime/Runtime, ваш ключ JWT_SECRET корректно применится, и OnlyOffice не будет генерировать случайный пароль.


ℹ️ Технические детали

  • Образ: thomisus/onlyoffice-documentserver-unlimited (без лимита подключений).
  • Данные: Хранятся в папке ./onlyoffice на сервере.
  • Требования: 4GB RAM (или 2GB + Swap).