Docspell – это простая, но мощная система управления документами (СУД).
Она призвана стать вашим органайзером и помочь быстро спрятать документы, а впоследствии найти их быстрее и надежнее.
Docspell предназначен для использования дома и в малых и средних организациях.
Если у вас есть физические документы, такие как квитанции, контракты, счета, счета-фактуры и т.д., которые необходимо отсканировать и сохранить в форматах PDF, Docspell DMS – обязательный инструмент.
Docspell имеет веб-панель управления, но доступен через REST или HTTP api и может быть легко использован в ваших собственных сценариях и инструментах, например, с помощью curl.
Вы можете посетить страницу возможностей Docspell, чтобы проверить и понять все возможности этого замечательного программного продукта.
К числу основных возможностей относятся:
- Возможность работы с несколькими документами как с единым целым. Это упрощает управление файлами.
- OCR с использованием tesseract
- Функция полнотекстового поиска, основанная на текстовом поиске Apache SOLR или PostgreSQL
- Преобразование в PDF по умолчанию: Docspell преобразует все файлы в PDF-файл после сканирования.
- Мощный язык запросов для поиска документов
- После загрузки файла он никогда не изменяется и всегда может быть загружен нетронутым.
- Файлы могут быть организованы с помощью тегов, папок, пользовательских полей и других метаданных
и многие другие возможности
Шаг 1 – Установка движка Docker Container Engine
В этой статье мы запустим систему управления документами (СУД) Docspell в контейнере Docker .
Для запуска контейнеров Docker Engine должен быть установлен на локальной системе.
Подтвердите установку Docker
$ docker --version
Docker version 24.0.5, build ced0996
$ docker compose version
Docker Compose version v2.20.2
Также рассмотрите возможность установки git на вашу систему.
sudo apt install git vim -y
Шаг 2 – Клонирование git-источника docspell
С помощью git извлеките последние исходные тексты Docspell
git clone https://github.com/eikek/docspell
Измените рабочий каталог на папку docspell.
Затем в папку docker/docker-compose/, которая содержит конфигурационный файл compose, используемый для запуска Docker-контейнеров приложений Docspell.
cd docspell/docker/docker-compose/
Вы можете редактировать файл compose
$ vim docker-compose.yml
...
environment:
- TZ=Europe/Berlin
Можно изменить несколько переменных окружения, например:
- DOCSPELL_SERVER_ADMIN__ENDPOINT_SECRET
- DOCSPELL_SERVER_AUTH_SERVER__SECRET
- DOCSPELL_SERVER_INTEGRATION__ENDPOINT_HTTP__HEADER_HEADER__VALUE
Шаг 3 – Запуск Docspell DMS в контейнерах Docker
После завершения настройки можно запустить контейнеры Docspell, выполнив следующие команды:
$ docker compose up -d
[+] Running 8/8
✔ Network docker-compose_default Created 0.1s
✔ Volume "docker-compose_docspell-postgres_data" Created 0.0s
✔ Volume "docker-compose_docspell-solr_data" Created 0.0s
✔ Container postgres_db Started 0.7s
✔ Container docspell-solr Started 0.7s
✔ Container docspell-joex Started 1.2s
✔ Container docspell-restserver Started 1.4s
✔ Container docspell-consumedir Started
Проверка состояния должна возвращать статус Up для следующих 5 контейнеров.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3112cf002922 docspell/dsc:latest "dsc -d http://docsp…" 32 seconds ago Up 30 seconds docspell-consumedir
6f678c80f3a3 docspell/joex:latest "/opt/joex-entrypoin…" 32 seconds ago Up 31 seconds (health: starting) 0.0.0.0:7878->7878/tcp, :::7878->7878/tcp docspell-joex
07d5d911ffc2 docspell/restserver:latest "/opt/docspell-rests…" 32 seconds ago Up 30 seconds (health: starting) 0.0.0.0:7880->7880/tcp, :::7880->7880/tcp docspell-restserver
c701229cb9af solr:9 "docker-entrypoint.s…" 32 seconds ago Up 31 seconds (health: starting) 8983/tcp docspell-solr
7112a6d48b16 postgres:15.4 "docker-entrypoint.s…" 32 seconds ago Up 31 seconds 5432/tcp postgres_db
Если необходимо проверить журналы запуска какого-либо контейнера, то используйте.
docker logs <container>
Перечислять контейнеры можно и с помощью команд compose.
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
docspell-consumedir docspell/dsc:latest "dsc -d http://docsp…" consumedir 13 hours ago Up 13 hours
docspell-joex docspell/joex:latest "/opt/joex-entrypoin…" joex 13 hours ago Up 13 hours (healthy) 0.0.0.0:7878->7878/tcp, :::7878->7878/tcp
docspell-restserver docspell/restserver:latest "/opt/docspell-rests…" restserver 13 hours ago Up 13 hours (healthy) 0.0.0.0:7880->7880/tcp, :::7880->7880/tcp
docspell-solr solr:9 "docker-entrypoint.s…" solr 13 hours ago Up 13 hours (healthy) 8983/tcp
postgres_db postgres:15.4 "docker-entrypoint.s…" db 13 hours ago Up 13 hours 5432/tcp
Шаг 4 – Доступ к веб-консоли Docspell DMS
Доступ к веб-консоли Docspell можно получить по адресу http://serverip_or_domain:7880.
Далее создайте пользователя, нажав на Sign up
Шаг 5 – Настройка прокси-сервера Nginx для Docspell
Для защиты нашего сервиса с помощью SSL-сертификата настоятельно рекомендуется использовать Nginx.
Но сначала необходимо установить пакет nginx.
### Debian based systems ###
sudo apt install nginx
### RHEL based systems ###
sudo yum install nginx
Запустите и включите службу nginx для запуска при загрузке системы.
sudo systemctl enable --now nginx
Создание файла конфигурации docspell.conf
sudo vim /etc/nginx/conf.d/docspell.conf
Если не используется SSL, то нижеприведенный файл конфигурации по умолчанию должен работать.
Просто обновите FQDN.
server {
listen 80 ;
server_name edms.example.net ;
location / {
proxy_pass http://127.0.0.1:7880;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Forwarded-Host $host;
}
}
Использование Let’s Encrypt / любого другого SSL
Для использования SSL обновите файл конфигурации Nginx, включив в него дополнительные параметры безопасности.
server {
listen 80 ;
server_name edms.example.net ;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl http2 ;
server_name edms.example.net ;
ssl_certificate /etc/letsencrypt/live/edms.example.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/edms.example.net/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/edms.example.net/fullchain.pem;
location / {
proxy_pass http://127.0.0.1:7880;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header X-Forwarded-Proto https;
}
}
Обратите внимание, что домен, используемый в server_name, должен быть FQDN и иметь правильно настроенную DNS-запись.
В тестовых целях можно использовать локальный файл /etc/hosts для сопоставления IP-адреса с доменным именем.
Мы надеемся, что эта статья была познавательной и вам понравится Docspell в качестве системы управления документами.
см. также:
- 🐳 Как проверить, работает ли ваше приложение в Docker или Kubernetes
- 🐳Как удалить программное обеспечение docker.io на Ubuntu
- 🐳 Как перезапустить службу docker, не затрагивая запущенные контейнеры
- 🐳 Как проверить версию Docker приложения