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