Установка DOC-V

Doc-v (Дóкви) можно установить на следующие операционные системы:

  1. Linux x64 (рекомендуем использовать Ubuntu, приводимые далее команды относятся к этой операционной системе)
  2. Windows x64
  3. FreeBSD x64

Для работы Doc-v понадобится установленная СУБД MySQL (MariaDB)

Установка на сервер с Linux Ubuntu

Во второй команде замените USERNAME на имя своего пользователя. Не стоит использовать пользователя root.

sudo mkdir -p /opt/doc-v
sudo chown USERNAME /opt/doc-v
cd /opt/doc-v
su USERNAME

Копируем дистрибутив системы в /opt/doc-v вручную или при помощи команды:

wget https://www.doc-v.com/download/doc-v.linux.tar.gz

И распаковываем:

tar xzvf doc-v.linux.tar.gz

Запускаем установку командой:

/opt/doc-v/doc-v

Перед установкой убедитесь, что у вас установлена СУБД MySQL

Адрес сервера MySQL (по умолчанию, 127.0.0.1): если MySQL на том же сервере просто нажимаем Enter
Номер порта сервера MySQL (по умолчанию, 3306): если порт не изменяли, нажимаем Enter
Название базы данных MySQL: docv
Имя пользователя MySQL: doc-v
Пароль пользователя MySQL: PASSWORD

Придумайте имя пользователя Doc-v (с этим именем вы сможете войти в систему после завершения установки)
Пароль пользователя Doc-v (не менее 8 символов)

Будет автоматически создан конфигурационный файл, и Doc-v запустится. Но он будет привязан к консоли, поэтому, как только вы ее закроете, Doc-v остановится. Поэтому перезапустите его в режиме демона:

Ctrl+C для остановки и

/opt/doc-v/doc-v start

Установка на сервер с Windows

Загрузите дистрибутив для Windows и скопируйте его в созданный на свое усмотрение новый каталог своего сервера.

Запустите командую строку:

cmd

перейдите в созданный каталог:

cd путь

и выполните команду:

tar xf doc-v.windows.tar.gz

Запустите установку командой:

/каталог_системы/doc-v.exe:

В процессе установки необходимо будет ввести:

Адрес сервера MySQL (по умолчанию, 127.0.0.1): если MySQL на том же сервере просто нажимаем Enter
Номер порта сервера MySQL (по умолчанию, 3306): если порт не изменяли, нажимаем Enter
Название базы данных MySQL: docv
Имя пользователя MySQL: doc-v
Пароль пользователя MySQL: PASSWORD

Имя пользователя Doc-v (рекомендуется e-mail)
Пароль пользователя Doc-v не менее 8 символов

Будет автоматически создан конфигурационный файл, и Doc-v запустится. Но он будет привязан к консоли, поэтому, как только вы ее закроете, Doc-v остановится. Поэтому перезапустите его в режиме демона:

Ctrl+C для остановки и

doc-v.exe start

Переход с 1-ой версии на 2-ую версию

В первую очередь необходимо создать копию существующей базы. Вы можете сделать это любым удобным для себя способом либо тем, что описан ниже:

Создаем новую базу данных:

sudo mysql
CREATE DATABASE docv CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON docv . * TO 'ВАШ_ПОЛЬЗОВАТЕЛЬ'@'localhost';
FLUSH PRIVILEGES;
quit;

Импортируем данные в новую базу:

mysqldump -u ВАШ_ПОЛЬЗОВАТЕЛЬ -p БАЗА_ПЕРВОЙ_ВЕРСИИ > db.sql mysql -u ВАШ_ПОЛЬЗОВАТЕЛЬ -p docv < db.sql

Копируем файловое хранилище из существующей версии:

cp -Rf /путь_к_первой_версии/system/storage/download /opt/doc-v/storage/
chown -R USERNAME /opt/doc-v/storage

где USERNAME - имя вашего пользователя для запуска Doc-v

И создаем конфигурационный файл

/opt/doc-v/doc-v.conf

со следующим содержимым:

[Network]
Hostname = doc-v.com # для формирования URL-адресов
Port = 8080

[File]
MaxFileSize = 32M

[DB]
Hostname = 127.0.0.1
Name = название базы
User = пользователь
Password = пароль

После запуска системы в лог-файле log/info.log (в Linux можно ввести команду, чтобы наблюдать за изменением этого файла) вы увидите сообщения об обновлении. tail -f /opt/doc-v/log/info.log После завершения обновления сервер будет запущен, но еще некоторое время будут создаваться таблицы для просмотра журналов (информация об этом также будет выводится в файл log/info.log). В зависимости от количества документов в журналах это время может быть продолжительным, а работа с системой будет затруднена, поэтому дождитесь окончания операции и не останавливайте сервер.

-->

Настройка автозагрузки

После перезагрузки сервера Doc-v самостоятельно не запустится. Исправить это упущение пока можно так:

Linux Ubuntu

/opt/doc-v/doc-v stop
sudo cp /opt/doc-v/data/doc-v.service /etc/systemd/system/

Изменяем файл /etc/systemd/system/doc-v.service:

User=ВАШ_ПОЛЬЗОВАТЕЛЬ

Выполняем команды:

sudo systemctl enable doc-v
sudo systemctl start doc-v
systemctl status doc-v

Получаем похожее сообщение:

doc-v.service - Doc-v
Loaded: loaded (/etc/systemd/system/doc-v.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2021-12-15 11:45:12 +06; 39s ago

Впредь запуск системы осуществляется командой:

sudo systemctl start doc-v

а остановку:

sudo systemctl stop doc-v

Windows

Загрузите файл и распакуйте его.

Запустите консоль от имени администратора, перейдите в каталог nssm-2.24\win64 и выполните команду

nssm.exe install Doc-v путь_к_Doc-v\doc-v.exe

Настройка сетевого порта

По умолчанию, Doc-v запускается на порте 8080. Для запуска на порту с номером меньше 1024, необходимо предоставить сначала доступ к этим портам непривилегированным пользователям. Отредактируйте (или создайте, если его нет) файл:

/etc/sysctl.d/50-unprivileged-ports.conf

добавив в него строку:

net.ipv4.ip_unprivileged_port_start=0

После чего можно изменить файл /opt/doc-v/doc-v.conf:

[Network]
Port = 80

Выполнить команду:

sudo sysctl --system

и перезагрузить Doc-v.

Настройка HTTPS

Для включения HTTPS необходимо в файле doc-v.conf в секцию [Network] добавить следующие настройки:

[Network]
HTTPS = true
Port = 443
SSLCertFile = /opt/doc-v/ssl/www.crt
SSLKeyFile = /opt/doc-v/ssl/private.key
SSLChainFile = ssl/www.ca-bundle

и перезагрузить Doc-v.

Если у вас нет сертификата SSL, его можно приобрести или зарегистрировать бесплатно, например, в центре сертификации Let’s Encrypt. Ниже приводится краткая инструкция по работе с Let’s Encrypt в Linux Ubuntu:

  1. sudo apt install certbot
  2. Если у вас работает на 80-м порту какой-либо веб-сервер, остановите его
  3. certbot certonly --standalone

    Ответьте на вопросы установщика (в DNS для доменного имение, для которого вы регистрируете сертификат, должен быть указан публичный IP-адрес сервера, с которого вы запускаете certbot)

  4. Установите права доступа к папкам /etc/letsencrypt/live /etc/letsencrypt/archive и файлу приватного ключа в /etc/letsencrypt/archive/ВАШЕ ДОМЕННОЕ ИМЯ для пользователя, от имени которого запускается Doc-v, или скопируйте файлы из /etc/letsencrypt/archive/ВАШЕ ДОМЕННОЕ ИМЯ в, например, /opt/doc-v/ssl (в пятом пункте в этом случае подставьте этот путь для файлов SSL)
  5. Исправьте файл doc-v.conf

    [Network]
    HTTPS = true
    Port = 443
    SSLCertFile = /etc/letsencrypt/live/ВАШЕ ДОМЕННОЕ ИМЯ/cert.pem
    SSLKeyFile = /etc/letsencrypt/live/ВАШЕ ДОМЕННОЕ ИМЯ/privkey.pem
    SSLChainFile = /etc/letsencrypt/live/ВАШЕ ДОМЕННОЕ ИМЯ/fullchain.pem

Обратите внимание, что сертификаты Let’s Encrypt действительны три месяца. Для продления сертификата необходимо будет выполнить команду:

sudo certbot renew

Для автоматизации обновления сертификатов можно использовать следующий скрипт (он предполагает, что сертификаты будут копироваться в каталог /opt/doc-v/ssl, этот путь должен быть указан в doc-v.conf для настроек SSL):

#!/bin/sh
certbot renew
cp /etc/letsencrypt/live/ВАШЕ ДОМЕННОЕ ИМЯ/* /opt/doc-v/ssl/
chown doc-v /opt/doc-v/ssl/*
systemctl restart doc-v

Если на 80-м порте у вас работает веб-сервер, добавьте команду для его остановки перед certbot renew и запуска после нее, т.к. в приведенной конфигурации для certbot необходим свободный 80-й порт.

Настройте в cron запуск этого скрипта каждые три месяца во время наименьшей нагрузки от имени пользователя root.

После включения HTTPS в Doc-v необходимо будет включить HTTPS и для OnlyOffice, если вы используете этот сервис.

Установка и настройка базы данных

Для работы системы необходима установленная СУБД MySQL / MariaDB. Если у вас уже установлена эта СУБД, есть выделенный пользователь и база данных, переходите сразу к установке.

Если СУБД установлена и есть пользователь, обладающий привилегией создания новой базы данных, этот шаг также можно пропустить, т.к. установщик Doc-v сможет сам создать базу данных. Если нет, то сначала установите СУБД. Для Linux Ubuntu достаточно выполнить команду

sudo apt install mariadb-server

для Windows загрузить инсталлятор и запустив установочный файл.

Создание пользователя и базы данных MySQL может выполняться разными способами, и вы можете использовать любой из них; ниже приводится вариант с использованием командной строки.

Запустите командную строку MySQL

Для Linux:
sudo mysql

Для Windows:
mysql.exe

Если вы получите ошибку о том, что Windows не может найти исполняемый файл mysql.exe добавьте в системную переменную операционной системы PATH полный путь к исполняемым файлам MySQL (каталог bin).

В зависимости от настроек, вы можете получить ошибку аутентификации. В этом случае запустите команду с параметрами:

mysql -uПОЛЬЗОВАТЕЛЬ -p

Успешно открыв командную строку MySQL, вы сможете выполнить нижеприведенные SQL-запросы для создания пользователя и базы данных.

Если у вас еще нет пользователя базы данных для работы Doc-v, создайте его (имя может быть любым, в дальнейших примерах используется doc-v):

CREATE USER 'doc-v'@'localhost' IDENTIFIED BY 'PASSWORD';

для MySQL8:

ALTER USER 'doc-v'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PASSWORD';

После чего можно создать базу данных следующими запросами:

CREATE DATABASE docv CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON docv . * TO 'doc-v'@'localhost';
FLUSH PRIVILEGES;
quit;

Установка дополнительных приложений

Для работы некоторых функций необходимы следующие приложения, установленные на сервере:

  1. unoconv для работы предварительного просмотра офисных форматов файлов в поле "Файл", в котором включен атрибут предварительного просмотра
  2. wkhtmltopdf для экспорта в PDF в действии "Экспорт в файл"
  3. onlyOffice для редактирования файлов в поле "Файл" в браузере (после установки в настройках сервиса Doc-v OnlyOffice включить интеграцию и указать сервер: http://Ваш IP:90)

Установка Unoserver / Unoconv

Для формирования предварительного просмотра файлов офисных форматов на сервере необходимо установите Unoserver или Unoconv (эта утилита устарела и не поддерживается производителем).

Установка Unoserver на Linux Ubuntu

sudo apt install python3-pip
sudo pip install unoserver

Unoserver может работать как на одном сервере с Дóкви, так и на выделенном. Во втором случае установка на сервер с Дóкви также требуется, т. к. пакет unoserver включает утилиту unoconvert, необходимую для обращения к unoserver.

После установки необходимо включить предварительный просмотр в настройках, выбрав движок Unoserver.

Установка Unoconv

sudo apt install unoconv

Однако в состав Ubuntu включены устаревшие версии uniconv / LibreOffice, которые имеют программные ошибки, из-за которых для некоторых файлов может не работать предварительный просмотр. Ниже приводится инструкция по обновлению (здесь более подробно):

  1. Установка последней версии Unoconv

    cd /opt
    sudo wget https://raw.githubusercontent.com/dagwieers/unoconv/master/unoconv

    Изменить в файле /opt/unoconv первую строку на:
    #!/usr/bin/env python3 после чего выполнить команды:
    sudo chmod ugo+x /opt/unoconv
    sudo mv /usr/bin/unoconv /usr/bin/unoconv2
    если не была установлен unoconv, команда выведет ошибку - это нормально
    sudo ln -s /opt/unoconv /usr/bin/unoconv
  2. Обновление до последней версии LibreOffice

    sudo add-apt-repository ppa:libreoffice/ppa
    sudo apt-get update
    sudo apt-get install libreoffice

  3. Проверка результата:

    unoconv --version

    Результат должен быть похожим на следующие строки:

    unoconv 0.8.2
    Written by Dag Wieers < dag@wieers.com <
    Homepage at http://dag.wieers.com/home-made/unoconv/
    platform posix/linux
    python 3.8.10 (default, Nov 26 2021, 20:14:08)
    [GCC 9.3.0]
    LibreOffice 7.2.5.2

Windows

  1. Установить LibreOffice
  2. Загрузить unoconv, распаковать zip архив, например, в С:/unoconv
  3. В папке Windows/System32 создать файл unoconv.cmd со строкой:

    call "c:\Program Files\LibreOffice\program\python.exe" C:\unoconv\unoconv %*

Установка Wkhtmltopdf

Linux Ubuntu

sudo apt install wkhtmltopdf

Windows

  1. Загрузить и установить дистрибутив
  2. В системную переменную Windows Path добавить путь к wkhtmltopdf\bin
  3. Перезагрузить сервер

Установка OnlyOffice

Linux Ubuntu

  1. sudo apt install - docker docker.io
  2. sudo docker run -i -t -d -p 90:80 --restart=always onlyoffice/documentserver
  3. В настройках сервиса Doc-v OnlyOffice включить интеграцию и указать сервер: http://Ваш_IP_или_доменное_имя:90 (IP не может быть 127.0.0.1)

При включенном HTTPS в Doc-v необходимо также перевести на HTTPS и OnlyOffice:

  1. sudo mkdir -p /app/onlyoffice/DocumentServer/data/certs
  2. Скопируйте в созданный каталог /app/onlyoffice/DocumentServer/data/certs файлы SSL-сертификата и приватного ключа и дайте им названия: onlyoffice.crt и onlyoffice.key соответственно
  3. Запустите контейнер:

    sudo docker run -i -t -d -e JWT_ENABLED=false -p 8443:443 --restart=always -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice onlyoffice/documentserver

  4. В настройках сервиса Doc-v OnlyOffice укажите сервер: https://Ваш_IP_или_доменное_имя:8443 Если при открытии документа OnlyOffice будет выдавать ошибку о невозможности сохранения файла и необходимости проверки соединения, посмотрите лог файл /app/onlyoffice/DocumentServer/logs/documentserver/docservice/out.log. Если в этом файле будет ошибка, похожая на "Error: unable to verify certificate", проблему можно решить перезапуском контейнера с переменной USE_UNAUTHORIZED_STORAGE: sudo docker run -i -t -d -e JWT_ENABLED=false -e USE_UNAUTHORIZED_STORAGE=true -p 8443:443 --restart=always -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice onlyoffice/documentserver Проверьте также лог-файл/opt/doc-v/log/info.log на наличие в нем ошибок вида:
    Ошибка при загрузке файла по URL:
    Get "https://...": x509: certificate signed by unknown authority Если такие ошибки будут найдены, скопируйте свой SSL-сертификат (желательно fullchain) в каталог /etc/ssl/certs и перезагрузите Doc-v