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

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

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

Для работы Doc-v необходима предварительно настроенная СУБД MySQL / MariaDB (при установке Дóкви на ОС Linux Ubuntu СУБД может быть установлена автоматически; для других ОС СУБД необходимо установить и настроить вручную).

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

Установку системы необходимо выполнять от имени непривилегированного пользователя. Если запустить установку от имени пользователя root, будет выведен набор команд для создания такого пользователя, а установка будет прервана.

Итак, от имени непривилегированного пользователя выполните следующие команды (в командах ниже используется пользователь docv, которого можно создать введя в командную строку sudo adduser docv; можно использовать любого другого пользователя, кроме root):

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

Загрузите дистрибутив Дóкви нижеприведенной командой (или иным способом в каталог /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

После чего следуйте инструкциям установщика.

Если в процессе установки вы согласитесь на установку дополнительных приложений на сервер, вам останется (при необходимости) настроить предварительный просмотр файлов, интеграцию с OnlyOffice и работу через HTTPS (эти настройки могут быть выполнены в любое время; полученная после работы установщика система полностью работоспособна).

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

Для работы Дóкви можно использовать операционные системы семейства Windows версий не ниже Windows 10 / Windows Server 2019.

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

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

cmd

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

cd путь

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

tar xf doc-v.windows.tar.gz

Убедитесь, что установили и настроили СУБД MySQL / MariaDB (базу данных можно не создавать, если пользователь MySQL, которого вы укажете в процессе инсталляции, будет обладает достаточными привилегиями для ее создания).

Запустите установку командой (из командной консоли cmd, чтобы видеть сообщения об ошибках, если что-то пойдет не так):

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

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

Адрес сервера 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 можно остановить командой

doc-v.exe stop

и снова запустить командой

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 🔗

Для установки Doc-v в качестве сервиса, загрузите файл и распакуйте его.

Запустите консоль от имени администратора, перейдите в каталог 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

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

sudo sysctl --system

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

[Network]
Port = 80

и перезагрузить 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

После включения 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)
  4. tesseract для оптического распознавания загруженных изображений в поле «Файл» (только для ОС Linux)

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

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

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

sudo apt install python3-pip
sudo pip install unoserver

Не забудьте также про LibreOffice. Последнюю версию можно установить следующими командами:

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

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

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

Установка Unoconv на Linux Ubuntu 🔗

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 🔗

Для экспорта в PDF действием «Экспорт в файл» необходимо установить пакет 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 -e JWT_SECRET=secret -p 90:80 --restart=always onlyoffice/documentserver Значение параметра JWT_SECRET необходимо будет ввести в качестве токена в настройках сервиса OnlyOffice.
  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_SECRET=secret -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. В настройках сервиса OnlyOffice укажите сервер: https://Ваш_IP_или_доменное_имя:8443 и токен из параметра JWT_SECRET

    Если при открытии документа 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_SECRET=secret -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

Установка Tesseract 🔗

Поле «Файл» может распознавать загруженные изображения при помощи пакета Tesseract.

Linux Ubuntu

sudo apt install tesseract-ocr libtesseract-dev tesseract-ocr-rus

Приведенная команда устанавливает поддержку английского и русского языков. Для добавления другого языка распознавания нужно установить соответствующий языковой пакет Tesseract и изменить соответствующее значение ключа OCRLanguages в секции [General] файла doc-v.conf, например, OCRLanguages = eng,rus,kaz для английского, русского и казахского языков. Ниже приводится неполный перечень некоторых языковых пакетов tesseract (Linux Ubuntu):

  • tesseract-ocr-kaz - поддержка казахского языка
  • tesseract-ocr-kir - поддержка киргизского языка
  • tesseract-ocr-uzb - поддержка узбекского языка
  • tesseract-ocr-ukr — поддержка украинского языка
  • tesseract-ocr-tgk - поддержка таджикского языка
  • tesseract-ocr-aze - поддержка азербайджанского языка
  • tesseract-ocr-bel - поддержка белорусского языка
  • tesseract-ocr-kat - поддержка грузинского языка