📄 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 и генерирует ключи доступа.
Пошаговый запуск скрипта:
-
Подключение: Зайдите на ваш новый чистый сервер по SSH под пользователем
root. -
Запуск команды: Скопируйте и вставьте следующую команду в терминал, затем нажмите Enter:
bash <(curl -sSL https://raw.githubusercontent.com/FluentBusiness/onlyoffice-coolify/refs/heads/master/setup.sh) -
Подтверждение: Скрипт спросит:
Начать настройку? (y/n). Введитеyи нажмите Enter. -
Ожидание: Дождитесь завершения процесса (это займет 1-2 минуты). Скрипт обновит систему и установит нужные компоненты.
-
Сохранение ключа (КРИТИЧНО): В конце работы скрипт очистит экран и покажет блок текста под заголовком
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 и Настройка Прокси
Этап А: Добавление сервера
- Откройте панель Coolify.
- Перейдите в Servers -> Add Server.
- Заполните данные:
- IP Address: IP вашего сервера.
- User:
root. - Port:
22. - Private Key: Вставьте ключ, который вы сохранили на предыдущем этапе.
- Нажмите Connect.
Этап Б: Смена прокси на Caddy (ОБЯЗАТЕЛЬНО) ⚠️
OnlyOffice работает нестабильно через стандартный прокси Traefik (ошибки Mixed Content). Необходимо переключить его на Caddy.
- В Coolify откройте настройки этого сервера (Servers -> ваш сервер).
- Найдите блок Proxy.
- Нажмите Stop Proxy (если он запущен).
- В выпадающем списке выберите Caddy.
- Нажмите Start Proxy.
📦 Часть 3: Развертывание OnlyOffice
1. Создание ресурса
- Перейдите в ваш проект (Project -> Environment).
- Нажмите New -> Docker Compose.
- Выберите источник (например, GitHub Repository).
- Важно: Укажите ссылку на ВАШ (Fork) репозиторий, чтобы иметь контроль над версией конфигурации. Coolify автоматически подтянет файл
docker-compose.yaml.
2. Настройка переменных окружения (ВАЖНО!) ⚠️
Чтобы OnlyOffice принял ваш секретный ключ, нужно правильно настроить переменные.
- Перейдите в меню Environment Variables.
- Добавьте переменную:
- Key:
JWT_SECRET - Value: Придумайте сложный пароль (например,
MySuperSecretKey2024).
- Key:
- Настройка видимости (Критический шаг):
Раскройте дополнительные настройки переменной и обязательно отметьте галочками оба пункта:
- ✅ Available at Buildtime
- ✅ Available at Runtime
- Если в интерфейсе переменная дублируется или есть несколько полей для ввода — убедитесь, что она прописана везде и галочки стоят.
- Нажмите Save.
3. Настройка домена
- В настройках сервиса (General) в поле Domains укажите ваш домен (например,
https://office.example.com). - Убедитесь, что DNS вашего домена направлены на IP сервера.
4. Запуск
Нажмите Deploy. Coolify соберет образ и запустит контейнер. Благодаря настройкам Buildtime/Runtime, ваш ключ JWT_SECRET корректно применится, и OnlyOffice не будет генерировать случайный пароль.
ℹ️ Технические детали
- Образ:
thomisus/onlyoffice-documentserver-unlimited(без лимита подключений). - Данные: Хранятся в папке
./onlyofficeна сервере. - Требования: 4GB RAM (или 2GB + Swap).