diff --git a/README.md b/README.md index 79db4d9..7a44676 100644 --- a/README.md +++ b/README.md @@ -1,107 +1,87 @@ -# 📄 OnlyOffice Document Server for Coolify +# 📄 OnlyOffice Document Server для Coolify Этот репозиторий содержит инструменты для быстрой и безопасной настройки сервера и развертывания **OnlyOffice Document Server** (версия без ограничений подключений) под управлением **Coolify**. --- -### ⚡ Быстрый старт -Зайдите на новый сервер по SSH под `root` и выполните команду: +## ⚡ Часть 1: Подготовка сервера (Подробная инструкция) -```bash -bash <(curl -sSL https://raw.githubusercontent.com/FluentBusiness/onlyoffice-coolify/refs/heads/master/setup.sh) -``` ---- +Скрипт `setup.sh` автоматически настраивает чистый VPS (Ubuntu/Debian) для работы с Coolify. Он устанавливает Docker, настраивает Firewall, создает Swap и генерирует ключи доступа. -Проект состоит из двух частей: -1. 🚀 **Автоматический скрипт настройки сервера** (`setup.sh`) — готовит "голый" VPS к работе. -2. 📦 **Конфигурация Docker Compose** (`docker-compose.yaml`) — для развертывания приложения внутри Coolify. +### Пошаговый запуск скрипта: + +1. **Подключение:** Зайдите на ваш **новый** чистый сервер по SSH под пользователем `root`. + +2. **Запуск команды:** Скопируйте и вставьте следующую команду в терминал, затем нажмите Enter: + ```bash + 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!** --- -## 🛠️ Часть 1: Подготовка сервера (One-line Setup) +## 🔗 Часть 2: Подключение к Coolify и Настройка Прокси -Скрипт `setup.sh` превращает чистый сервер (Ubuntu/Debian) в защищенную ноду для Coolify за одну команду. +### Этап А: Добавление сервера +1. Откройте панель **Coolify**. +2. Перейдите в **Servers** -> **Add Server**. +3. Заполните данные: + * **IP Address**: IP вашего сервера. + * **User**: `root`. + * **Port**: `22`. + * **Private Key**: Вставьте ключ, который вы сохранили на предыдущем этапе. +4. Нажмите **Connect**. -### Что делает скрипт: -* **Безопасность**: Настраивает UFW (Firewall), устанавливает Fail2Ban, отключает вход по паролю (SSH Hardening). -* **Производительность**: Создает **Swap-файл на 4GB** (критично для OnlyOffice, чтобы избежать OOM ошибок). -* **Окружение**: Устанавливает Docker, curl, jq, git, htop. -* **Доступ**: Генерирует новые SSH-ключи (Ed25519) и выводит Private Key для подключения в Coolify. +### Этап Б: Смена прокси на Caddy (ОБЯЗАТЕЛЬНО) ⚠️ +OnlyOffice работает нестабильно через стандартный прокси Traefik (ошибки Mixed Content). Необходимо переключить его на Caddy. -### ⚡ Быстрый старт - -Зайдите на новый сервер по SSH под `root` и выполните команду: - -```bash -bash <(curl -sSL https://raw.githubusercontent.com/FluentBusiness/onlyoffice-coolify/refs/heads/master/setup.sh) -``` - -1. Подтвердите начало установки (`y`). -2. Дождитесь завершения. -3. **ВАЖНО:** В конце скрипт выведет `PRIVATE KEY`. Скопируйте его и сохраните! Он понадобится для добавления сервера в Coolify. - ---- - -## 🔗 Часть 2: Подключение к Coolify - -1. Откройте вашу панель **Coolify**. -2. Перейдите в **Servers** -> **Add Server**. -3. Заполните данные: -* **IP Address**: IP вашего сервера. -* **User**: `root`. -* **Port**: `22`. -* **Private Key**: Вставьте ключ, полученный на предыдущем шаге. - - -4. Нажмите **Connect**. +1. В Coolify откройте настройки этого сервера (**Servers** -> ваш сервер). +2. Найдите блок **Proxy**. +3. Нажмите **Stop Proxy** (если он запущен). +4. В выпадающем списке выберите **Caddy**. +5. Нажмите **Start Proxy**. --- ## 📦 Часть 3: Развертывание OnlyOffice -Внутри Coolify создайте новый ресурс: +### 1. Создание ресурса +1. Перейдите в ваш проект (**Project** -> Environment). +2. Нажмите **New** -> **Docker Compose**. +3. Выберите источник (например, **GitHub Repository**) и укажите ссылку на этот репозиторий. Coolify автоматически подтянет файл `docker-compose.yaml`. -1. **Project** -> Выберите проект -> **New** -> **Docker Compose**. -2. Скопируйте содержимое файла `docker-compose.yaml` из этого репозитория или используйте код ниже: +### 2. Настройка переменных окружения (ВАЖНО!) ⚠️ +Чтобы OnlyOffice принял ваш секретный ключ, нужно правильно настроить переменные. -```yaml -services: - onlyoffice-documentserver: - image: thomisus/onlyoffice-documentserver-unlimited:9.1.0 - restart: always - environment: - - JWT_ENABLED=true - - JWT_HEADER=AuthorizationJwt - - volumes: - - ./onlyoffice/logs:/var/log/onlyoffice - - ./onlyoffice/data:/var/www/onlyoffice/Data - - ./onlyoffice/lib:/var/lib/onlyoffice - - ./onlyoffice/rabbitmq:/var/lib/rabbitmq - - ./onlyoffice/redis:/var/lib/redis - - ./onlyoffice/db:/var/lib/postgresql +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 сервера. -### Настройка в Coolify: - -1. **Domains**: Укажите ваш домен (например, `https://office.example.com`). -2. **Environment Variables**: Добавьте переменную `JWT_SECRET` с надежным паролем. Этот секрет понадобится для подключения Nextcloud/Moodle/Confluence к OnlyOffice. -3. Нажмите **Deploy**. +### 4. Запуск +Нажмите **Deploy**. Coolify соберет образ и запустит контейнер. Благодаря настройкам Buildtime/Runtime, ваш ключ `JWT_SECRET` корректно применится, и OnlyOffice не будет генерировать случайный пароль. --- ## ℹ️ Технические детали -* **Образ**: Используется `thomisus/onlyoffice-documentserver-unlimited`, который снимает ограничение на 20 одновременных подключений, присутствующее в официальной бесплатной версии. -* **Сеть**: Контейнер подключается к внешней сети `coolify`, что позволяет Traefik (прокси Coolify) автоматически перенаправлять трафик без проброса портов на хост. -* **Данные**: Все данные хранятся в именованных Docker-томах (`named volumes`) для удобства резервного копирования и миграции. - -## ⚠️ Требования к серверу - -* **RAM**: Минимум 4GB (или 2GB RAM + 4GB Swap, который создает скрипт). -* **CPU**: 2 ядра (рекомендовано). -* **OS**: Ubuntu 20.04/24.04 или Debian 11/12. - - - +* **Образ**: `thomisus/onlyoffice-documentserver-unlimited` (без лимита подключений). +* **Данные**: Хранятся в папке `./onlyoffice` на сервере. +* **Требования**: 4GB RAM (или 2GB + Swap). \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index 6db6fd3..62395ee 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -5,6 +5,7 @@ services: environment: - JWT_ENABLED=true - JWT_HEADER=AuthorizationJwt + - JWT_SECRET=${JWT_SECRET} volumes: - ./onlyoffice/logs:/var/log/onlyoffice