Поиск по сайту:

Как запустить Mayan EDMS в контейнерах Docker |


Здравствуйте и спасибо, что посетили наш сайт. В сегодняшней статье мы рассмотрим установку, настройку и запуск Mayan EDMS в Docker-контейнерах. Mayan EDMS и открытый исходный код, а также бесплатная система управления электронными документами, написанная на языке Python с использованием платформы веб-приложений Django. Программное обеспечение распространяется под лицензией Apache 2.0. Целью Mayan является предоставление хранилища или электронного хранилища для всех ваших электронных документов. Использование образа Docker — это самый простой способ использовать Mayan EDMS.

Список функций, поставляемых с Mayan EDMS, можно найти в официальной документации по функциям.

1) Требования к установке

Для всех методов развертывания Mayan EDMS имеет следующий рекомендуемый набор требований:

  • Минимальный объем оперативной памяти: 4 ГБ.
  • 64-битный, 4 ядра или более, 2 ГГц или выше или аналогичный ЦП.
  • Система базы данных PostgreSQL 13 или более поздней версии
  • Дистрибутивы GNU/Linux или платформа операционных систем с поддержкой Docker и Docker Compose.
  • Доступ к системе от имени пользователя с правами администратора.

2) Установите Docker Engine.

Прежде чем пытаться установить Mayan EDMS, убедитесь, что Docker установлен правильно и работает в вашей хост-системе. Обратитесь к нашей статье об установке Docker:

  • Как установить Docker CE в системах Linux

После установки Docker мы можем убедиться, что он работает, проверив версии Engine и Compose.

$ docker --version
Docker version 24.0.5, build ced0996

$ docker compose version
Docker Compose version v2.20.2

3) Клонировать код СЭД Mayan

Файлы Mayan EDMS расположены по адресу: https://gitlab.com/mayan-ed.ms/mayan-edms/-/tree/master/docker/. Мы можем скачать его локально.

git clone https://gitlab.com/mayan-edms/mayan-edms.git

Подкаталог docker содержит файл компоновки.

Перейдите в каталог докеров.

cd mayan-edms/docker/

4) Создание настроек Mayan EDMS

Вы можете добавить запись для каждой из переменных среды, которые нужно изменить, внутри файла .env.

vim .env

В нашем примере мы обновили указанные ниже переменные.

MAYAN_DATABASE_NAME=edms
MAYAN_DATABASE_PASSWORD=StrongDBPassword
MAYAN_DATABASE_USER=edms
MAYAN_ELASTICSEARCH_PASSWORD=StrongELPassword
MAYAN_RABBITMQ_USER=edms
MAYAN_RABBITMQ_PASSWORD=StrongMQPassword
MAYAN_RABBITMQ_VHOST=/edms
MAYAN_REDIS_PASSWORD=StrongRedisPassword

Имя проекта создания по умолчанию называется mayan и может быть обновлено.

COMPOSE_PROJECT_NAME=mayan

Чтобы подтвердить изменения конфигурации, выполните:

docker compose --file docker-compose.yml --project-name mayan config

5) Запустите Docker-контейнеры Mayan EDMS.

После завершения настроек запустите все контейнеры Mayan EDMS.

$ docker compose up -d
[+] Running 4/0
 ✔ Container mayan-redis-1       Running                                                                                                                                                         0.0s
 ✔ Container mayan-rabbitmq-1    Running                                                                                                                                                         0.0s
 ✔ Container mayan-app-1         Running                                                                                                                                                         0.0s
 ✔ Container mayan-postgresql-1  Running

Чтобы проверить статус запуска контейнера:

$ docker ps
CONTAINER ID   IMAGE                                COMMAND                  CREATED        STATUS        PORTS                                                                  NAMES
86f2e85204ea   rabbitmq:3.11.13-management-alpine   "docker-entrypoint.s…"   12 hours ago   Up 12 hours   4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 15691-15692/tcp, 25672/tcp   mayan-rabbitmq-1
b78c36da3752   redis:7.0.10-alpine                  "docker-entrypoint.s…"   12 hours ago   Up 12 hours   6379/tcp                                                               mayan-redis-1
c9e19096b579   postgres:13.10-alpine                "docker-entrypoint.s…"   12 hours ago   Up 12 hours   5432/tcp                                                               mayan-postgresql-1
cdf73c48b96e   mayanedms/mayanedms:s4.4             "/usr/local/bin/entr…"   12 hours ago   Up 12 hours   0.0.0.0:80->8000/tcp, :::80->8000/tcp                                  mayan-app-1

Или используйте

docker compose ps

Листинг созданных томов.

$ docker volume ls
DRIVER    VOLUME NAME
local     mayan_app
local     mayan_postgres
local     mayan_rabbitmq
local     mayan_redis

Создана сеть для Mayan EDMS.

$ docker network ls
NETWORK ID     NAME          DRIVER    SCOPE
25cf8cc0d317   bridge        bridge    local
bcb34458e540   host          host      local
46bc54f81680   mayan_mayan   bridge    local
1f8a758c9005   none          null      local

Для просмотра журналов контейнера используйте:

docker compose logs

Вы можете получить доступ к веб-интерфейсу Mayan EDMS по адресу http://serverip_or_fqdn.

6) Настройка Nginx в качестве прокси

Поддерживается Traefik. Прокси-сервер изначально поддерживается в Mayan EDMS и может быть включен в конфигурациях .env. Для простоты администрирования мы используем прокси-сервер Nginx.

Начнём с установки nginx

### Debian based systems ###
sudo apt install nginx

### RHEL based systems ###
sudo yum install nginx

Измените порт прослушивания Mayan EDMS с 80 на 8080.

$ vim .env
MAYAN_FRONTEND_HTTP_PORT=8080

Перезапустите контейнеры Mayan.

docker compose down && docker compose up -d

Убедитесь, что контейнер Mayan Frontend прослушивает порт 8080 на хосте.

$ docker ps|grep mayan-app-1
958df04e8459   mayanedms/mayanedms:s4.4             "/usr/local/bin/entr…"   17 seconds ago   Up 16 seconds   0.0.0.0:8080->8000/tcp, :::8080->8000/tcp

Теперь создайте файл конфигурации mayan.conf nginx:

sudo vim /etc/nginx/conf.d/mayan.conf

Если не используется SSL, можно использовать приведенные ниже конфигурации.

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

Ваш файл конфигурации 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 ;
    access_log /var/log/nginx/mayan.log;
    error_log /var/log/nginx/mayan_error.log;
    client_max_body_size 50M;  # Increase to upload bigger documents
    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:8080;
        proxy_redirect off;
        proxy_read_timeout 60s; # Increase if your doc uploads take more than 60 sec

        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass_header Set-Cookie;
        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;
    }
}

Чтобы создать Let’s Encrypt SSL, ознакомьтесь с нашими руководствами ниже:

  • Создайте SSL-сертификат Let’s Encrypt с помощью Cloudflare в частной сети
  • Как создать SSL-сертификаты Let's Encrypt в Linux
  • Как создать SSL-сертификат Let’s Encrypt Wildcard
  • Использование SSL-сертификата Let’s Encrypt Wildcard с Nginx и Apache

7) Доступ к Mayan EDMS через веб-консоль

Безопасный доступ к СЭД Mayan по адресу https://YOUR_FQDN. На первой странице вы предоставили первоначальные данные для входа.

Используйте предоставленные имя пользователя и пароль для входа в систему.

Чтобы изменить пароль администратора, выберите Пользователь > admin > Изменить пароль в правом верхнем углу.

Укажите пароль по умолчанию и установите новый пароль для пользователя.

Теперь у вас есть Mayan EDMS, успешно установленный в Docker-контейнере. Посетите страницы документации Mayan, чтобы узнать больше о том, как настроить и начать использовать его в своей среде.

Похожие статьи:

  • Установите систему управления документами Docspell (DMS) в Docker.

Статьи по данной тематике: