Установка компонентов ONLYOFFICE Workspace Community вручную
Введение
Проще всего установить ONLYOFFICE Workspace Community с помощью скрипта для Docker. Если вы предпочитаете полностью контролировать процесс установки, можно установить все компоненты вручную.
ONLYOFFICE Workspace Community включает в себя следующие компоненты: ONLYOFFICE Community Server, ONLYOFFICE Control Panel, ONLYOFFICE Docs и ONLYOFFICE Mail. Чтобы установить их все и интегрировать друг с другом, следуйте приведенным ниже инструкциям.
Системные требования
- Процессор: не менее 4 ядер (рекомендуется 6 ядер)
- ОЗУ: не менее 8 ГБ (рекомендуется 12 ГБ)
- Жесткий диск: не менее 40 ГБ свободного места
- SWAP: не менее 4 ГБ, но зависит от ОС хоста. Чем больше, тем лучше
- ОС: дистрибутив Linux amd64 с версией ядра 3.10 или выше
- Дополнительные требования
- Docker: любая версия, поддерживаемая командой Docker
Шаг 1. Установка необходимых компонентов
Если Docker не установлен, обратитесь к разделу «Установка» на сайте Docker.
В Docker по умолчанию используются DNS-серверы Google. Если ваша установка ONLYOFFICE Workspace Community не будет иметь доступа в Интернет, рекомендуется изменить заданный в Docker по умолчанию адрес DNS-сервера на адрес вашего локального DNS-сервера. Для этого откройте файл /etc/default/docker и замените IP-адрес в следующей строке на IP-адрес DNS-сервера в вашей локальной сети:
docker_OPTS="--dns 8.8.8.8"
Для операционных систем на основе RPM, например, CentOS:
-
Создайте файл конфигурации
/etc/docker/daemon.jsonсо следующим содержанием:{ "dns" : [ "8.8.8.8" ] } -
Перезапустите сервис Docker:
sudo systemctl restart docker.service
Перед началом установки необходимо создать следующие папки:
-
Для сервера MySQL
sudo mkdir -p "/app/onlyoffice/mysql/conf.d";sudo mkdir -p "/app/onlyoffice/mysql/data";sudo mkdir -p "/app/onlyoffice/mysql/initdb"; -
Для данных и журналов ONLYOFFICE Community Server
sudo mkdir -p "/app/onlyoffice/CommunityServer/data";sudo mkdir -p "/app/onlyoffice/CommunityServer/logs";sudo mkdir -p "/app/onlyoffice/CommunityServer/letsencrypt"; -
Для данных и журналов ONLYOFFICE Docs
sudo mkdir -p "/app/onlyoffice/DocumentServer/data";sudo mkdir -p "/app/onlyoffice/DocumentServer/logs"; -
И для данных и журналов ONLYOFFICE Mail
sudo mkdir -p "/app/onlyoffice/MailServer/data/certs";sudo mkdir -p "/app/onlyoffice/MailServer/logs"; -
Для данных и журналов ONLYOFFICE Control Panel
sudo mkdir -p "/app/onlyoffice/ControlPanel/data";sudo mkdir -p "/app/onlyoffice/ControlPanel/logs";
Затем создайте сеть onlyoffice:
sudo docker network create --driver bridge onlyoffice
Шаг 2. Установка MySQL
Далее создайте контейнер Docker для сервера MySQL. Создайте файл конфигурации:
echo "[mysqld]
sql_mode = 'NO_ENGINE_SUBSTITUTION'
max_connections = 1000
max_allowed_packet = 1048576000
group_concat_max_len = 2048" > /app/onlyoffice/mysql/conf.d/onlyoffice.cnf
Создайте SQL-скрипт, который создаст пользователей и выдаст им права. Пользователь onlyoffice_user необходим для ONLYOFFICE Community Server, а mail_admin — для ONLYOFFICE Mail, если он будет установлен:
echo "ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'my-secret-pw';
CREATE USER IF NOT EXISTS 'onlyoffice_user'@'%' IDENTIFIED WITH mysql_native_password BY 'onlyoffice_pass';
CREATE USER IF NOT EXISTS 'mail_admin'@'%' IDENTIFIED WITH mysql_native_password BY 'Isadmin123';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'onlyoffice_user'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'mail_admin'@'%';
FLUSH PRIVILEGES;" > /app/onlyoffice/mysql/initdb/setup.sql
Обратите внимание, что приведенный выше скрипт задает права доступа к SQL-серверу с любого домена (%). Если вы хотите ограничить доступ, можно указать хосты, которые будут иметь доступ к SQL-серверу.
Создайте контейнер MySQL версии 8.0.29:
sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-mysql-server \
-v /app/onlyoffice/mysql/conf.d:/etc/mysql/conf.d \
-v /app/onlyoffice/mysql/data:/var/lib/mysql \
-v /app/onlyoffice/mysql/initdb:/docker-entrypoint-initdb.d \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
-e MYSQL_DATABASE=onlyoffice \
mysql:8.0.29
Шаг 3. Установка ONLYOFFICE Docs
sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-document-server \
-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/DocumentServer/fonts:/usr/share/fonts/truetype/custom \
-v /app/onlyoffice/DocumentServer/forgotten:/var/lib/onlyoffice/documentserver/App_Data/cache/files/forgotten \
onlyoffice/documentserver
Для получения дополнительной информации обратитесь к документации по ONLYOFFICE Docs.
Шаг 4. Установка ONLYOFFICE Mail
sudo docker run --init --net onlyoffice --privileged -i -t -d --restart=always --name onlyoffice-mail-server -p 25:25 -p 143:143 -p 587:587 \
-e MYSQL_SERVER=onlyoffice-mysql-server \
-e MYSQL_SERVER_PORT=3306 \
-e MYSQL_ROOT_USER=root \
-e MYSQL_ROOT_PASSWD=my-secret-pw \
-e MYSQL_SERVER_DB_NAME=onlyoffice_mailserver \
-v /app/onlyoffice/MailServer/data:/var/vmail \
-v /app/onlyoffice/MailServer/data/certs:/etc/pki/tls/mailserver \
-v /app/onlyoffice/MailServer/logs:/var/log \
-h yourdomain.com \
onlyoffice/mailserver
Домен, который будет использоваться для ведения почтовой переписки, должен быть действительным и настроенным на этот сервер (то есть должен иметь соответствующую A-запись в настройках DNS, связывающую доменное имя с IP-адресом машины, на которой установлен ONLYOFFICE Mail).
В приведенной выше команде под параметром "yourdomain.com" следует понимать служебный домен для ONLYOFFICE Mail. Обычно его указывают в MX-записи домена, который будет использоваться для ведения переписки. Как правило, "yourdomain.com" имеет вид mx1.onlyoffice.com
Дополнительные параметры для почтового сервера можно найти здесь.
Шаг 5. Установка ONLYOFFICE Control Panel
Для установки ONLYOFFICE Control Panel используйте эту команду:
sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-control-panel \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /app/onlyoffice/CommunityServer/data:/app/onlyoffice/CommunityServer/data \
-v /app/onlyoffice/ControlPanel/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/ControlPanel/logs:/var/log/onlyoffice onlyoffice/controlpanel
Шаг 6. Установка ONLYOFFICE Community Server
Наконец, можно установить ONLYOFFICE Community Server:
sudo docker run --net onlyoffice -i -t -d --privileged --restart=always --name onlyoffice-community-server -p 80:80 -p 443:443 -p 5222:5222 --cgroupns=host \
-e MYSQL_SERVER_ROOT_PASSWORD=my-secret-pw \
-e MYSQL_SERVER_DB_NAME=onlyoffice \
-e MYSQL_SERVER_HOST=onlyoffice-mysql-server \
-e MYSQL_SERVER_USER=onlyoffice_user \
-e MYSQL_SERVER_PASS=onlyoffice_pass \
-e DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server \
-e MAIL_SERVER_API_HOST=${MAIL_SERVER_IP} \
-e MAIL_SERVER_DB_HOST=onlyoffice-mysql-server \
-e MAIL_SERVER_DB_NAME=onlyoffice_mailserver \
-e MAIL_SERVER_DB_PORT=3306 \
-e MAIL_SERVER_DB_USER=root \
-e MAIL_SERVER_DB_PASS=my-secret-pw \
-e CONTROL_PANEL_PORT_80_TCP=80 \
-e CONTROL_PANEL_PORT_80_TCP_ADDR=onlyoffice-control-panel \
-v /app/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/CommunityServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/CommunityServer/letsencrypt:/etc/letsencrypt \
-v /sys/fs/cgroup:/sys/fs/cgroup:rw \
onlyoffice/communityserver
Где ${MAIL_SERVER_IP} — IP-адрес контейнера ONLYOFFICE Mail, который можно получить с помощью следующей команды:
MAIL_SERVER_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' onlyoffice-mail-server)
После успешной установки решение будет доступно по адресу http://localhost/.