Программа просмотра файла почтового лога через web форму, с возможностью поиска по адресату
- выполните команду, для получения данного локального ее запуска:
git clone https://github.com/savadevel/LogViewer.git- перейди в каталог с программой
cd ./LogViewer- запустите программу (запускается в docker, при этом создаются три сервиса: db, app, nginx)
docker compose up- После запуска программы, она доступна по адресу http://127.0.0.1:8080/
-
Задайте в поле "Адрес получателя" адрес эл. почты, по которым требуется вывести почтовый лог и нажмите кнопку "Искать"

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

-
Если задан "Адрес получателя" не в формате адреса эл. почты, то выводится ошибка

CREATE TABLE message (
created TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL,
id VARCHAR NOT NULL,
int_id CHAR(16) NOT NULL,
str VARCHAR NOT NULL,
status BOOL,
address VARCHAR,
COSTRAINT message_id_pk PRIMARY KEY(id)
);
CREATE INDEX message_created_idx ON message (created);
CREATE INDEX message_int_id_idx ON message (int_id);
CREATE INDEX log_address_idx ON log USING hash (address);
CREATE TABLE log (
created TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL,
int_id CHAR(16) NOT NULL,
str VARCHAR,
address VARCHAR
);
CREATE INDEX log_address_idx ON log USING hash (address);-
Программа запускается в docker't, при этом создаются три сервиса:
- db - СУБД, используется PG
- app - сервер приложений на perl
- nginx - обратный прокси Nginx
-
Настройки приложения задаются в файле config.yml, в т.ч.
- параметры подключения к СУБД (db_dsn, db_user, db_pass)
- лимит строк (limit_rows)
- путь к фалу с почтовым логом (file_log)
-
При запуске последовательно выполняются следующие шаги
- удаление БД, если ранее создана (см. docker-compose.yml)
- создание БД (см. docker-compose.yml)
- запуск приложения (веб-приложения)
- создание подключения к СУБД
- создание таблиц в БД
- открытие файла
- последовательная загрузка записей из почтового лога в БД (с авто commit)
- ожидание подключений

