Приложение реализовано с использованием фреймворка Django. Для оформления использованы стили Bootstrap.
Проект представляет из себя веб-приложение с двумя инструментами по работе с изображениями. На главной странице представлено описание этих иснтрументов.
- Анализатор цветов, который позволяет определить 5 осноных цветов изображения и вывести их коды для использования, например в стилях CSS
- Конвертор одного или нескольких изображений в один файл формата PDF
После нажатия на кнопку "Сконвертировать" будет создан файл PDF и автоматически запустится загрузка.
Для работы с изображениями в первом инструменте используются библиотеки numpy, pillow, scikit-learn (для определения основных цветов используется кластеризация методом k-средних).
Во втором для преобразования в PDF используется библиотека img2pdf.
Установить приложение можно локально на компьютере. А можно в контейнере Docker. Для установки в контейнер были подготовлены файлы Docker и Docker Compose.
В качестве веб-сервера используется gunicorn, у которого устанавливается максимальное количество воркеров равное количеству процессорных ядер (в файле gunicorn.py). А для управления статическими файлами используется прокси сервер nginx.
Все настройки для установки заданы в файлах Dockerfile
, Dockerfile-nginx
, nginx.conf
, docker-compose.yaml
.
Перед созданием образа Docker нужно выполнить два следующих действия:
В каталоге imagetools
нужно создать файл secret.py
, в котором должна быть одна строка:
SECRET_KEY = '<secret_key>'
Вместо <secret_key>
нужно сгенерировать и вставить новый ключ. Для генерации ключа можно воспользоваться этим сервисом: Djecrety. Или любым подобным.
В корневом каталоге (рядом с Dockerfile
) создать файл default.env
:
DJANGO_DEBUG=0
DJANGO_ALLOWED_HOSTS=tools.domain.ru
CSRF_TRUSTED_ORIGINS=https://*.domain.ru
Переменная DJANGO_DEBUG
отвечает за режим отладки в Django. Если значение будет равно 1
, то режим отладки будет включен.
В переменной DJANGO_ALLOWED_HOSTS
должны быть указаны все URL, по которым будет доступен проект. Если адресов больше одного, то их нужно перечислить через пробел.
Если доступ к проекту выполняется через домен с использованием HTTPS, то в переменной CSRF_TRUSTED_ORIGINS
необходимо указать этот домен. Доступно указание домена в таком виде: https://*.domain.ru
.
После создания этих файлов, нужно выполнить следующие команды Docker Compose для построения образов, создания и запуска контейнеров:
docker compose build
docker compose create
docker compose start