Данный проект нацелен на платформы Linux. Его развертка проводилась на:
- debian 9 - stretch
- debian 9 - testing
- ...
python3-venv
Виртуальное окружение python3. Позволяет изолировать окружение проекта и использовать библиотеки описанные в requirements.txt
Для установки: apt-get install python3-venv
rabbitmq-server
Сервер очередей для поддержки распределенности системы. На данный момент запуск проводился на версии 3.7.11-1.
Для установки:
postgresql
Реляционная база данных. Запуск производился на версиях: 10.5, 9.6
Для установки: Инструкция
requirements.txt
В файле requirements.txt описаны все зависимости от других питоновских библиотек, таких как:
- celery
- django
Для установки:
`pip install -r requirements.txt`
В этом разделе описываются действия необходимые для успешного запуска проекта.
Установка переменных среды:
$ export USER_NAME=postgres
$ export BASE_NAME=judyst_backend
$ export BASE_HOST=127.0.0.1
$ export BASE_PORT=5432
$ export BROKER_URL=amqp://guest:guest@localhost:5672/
$ export BASE_URL=http://127.0.0.1:8000
$ export BASE_PASSWORD=[secure]
$ export SUPERUSER_USERNAME=admin
$ exprot SUPERUSER_EMAIL=youremail@gmail.com
$ export SUPERUSER_PASSWORD=[secure]
Запуск внешней инфраструктуры:
sudo systemctl postgresql start
sudo systemctl rabbitmq-server start
Генерация настроек:
Стоит отметить, что настройки генерируются из переменных среды.
python gen_settings.py
Для генерации случайных значений можно использовать команду: python gen_settings.py -ag SECRET_KEY -l 34 -i True
Настройка базы данных:
Настройка производится на основе скрипта init_db.py
и встроенных средств django.
python init_db.py
Если в системе не установлен python3.6 или используется другой alias то необзодимо его указать через флаг -np
, для получении детальной информации о заполении базы данных можно добавить флаг -v
.
По умолчанию используется файл init_db_conf.json
для использования другого файла можно сипользовать файл -f
с указанием пути до файла.
Если добавить флаг -cu
то будет создан суперпользователь с параметрами SUPERUSER_USERNAME
(имя пользователя), SUPERUSER_EMAIL
(электронная почта), SUPERUSER_PASSWORD
(пароль пользователя) взятые из системы. Также если добавить флаг -i
то недостающие параметры можно будет ввестис клавиатуры.
Коды возвращаемых ошибок:
- -1 - не найден указанный файл
- -2 - файл содержит не корректный json
- -3 - ошибка содержания полей в json подробнее об ошибке смотри в потоке вывода
Также суперпользователя можно создать вооспользовавшись встроенной командой:
manage.py createsuperuser
После pre run можно инициализировать запуск проекта
celery worker -A judyst_backend -B
- для запуска celery, платформы выполнения задачpython manage.py runserver
для запуска сервера, основной точки входа в систему.