В процессе разработки проекта были реализованы:
- интуитивно понятный интерфейс
- удобное хранение и работа с записями в БД
- уведомления посредством отправки email
Репозиторий включает в себя два файла docker-compose.yml и docker-compose.production.yml, что позволяет развернуть проект на локальном или удалённом серверах.
Данная инструкция подразумевает, что на вашем локальном/удалённом сервере уже установлен Git, Python 3.10, пакетный менеджер pip, Docker, Docker Compose, утилита виртуального окружения python3-venv.
В проекте предусмотрена возможность запуска БД SQLite3 и PostgreSQL. Выбор БД осуществляется сменой значения CURRENT_DB на lite или postgre. lite = SQLite3, postgre = PostgreSQL.
В проекте настроена автодокументация с помощью Swagger. Для ознакомления перейдите по ссылке
С подробными инструкциями запуска вы можете ознакомиться ниже.
Создайте и перейдите в директорию проекта:
mkdir alfa_backend
cd alfa_backend/
Скачайте и добавьте файл docker-compose.production.yml в директорию.
Cоздайте файл .env:
nano .env
Добавьте следующие строки и подставьте свои значения:
POSTGRES_DB=DB # название db
POSTGRES_USER=USER # имя пользователя для db
POSTGRES_PASSWORD=PASSWORD # пароль пользователя для db
DB_HOST=db # если поменять, то тогда нужно поменять название сервиса в docker-compose.production.yml
DB_PORT=5432 # это порт для доступа к db
SECRET_KEY=SECRET_KEY # SECRET_KEY в настройках django
DEBUG=False # режим debug (True или False)
CURRENT_DB=postgre # lite для SQLite, posgre для PostgreSQL
ALLOWED_HOSTS=127.0.0.1 backend # ваши адреса через пробел (пример:localhost 127.0.0.1 xxxx.com)
HOST_URL=http://localhost:8000 # ваш url адрес вместе с http/https
USE_SMTP=False # использовать ли настоящий сервис по отправке почты, иначе сообщения будут сохранятся внутри контейнера (папка sent_emails)
EMAIL_HOST=EMAIL_HOST # сервер вашего email service
EMAIL_PORT=EMAIL_PORT # порт для сервера
EMAIL_HOST_USER=EMAIL_HOST_USER # email с которогу будет осуществлятся рассылка
EMAIL_HOST_PASSWORD=EMAIL_HOST_PASSWORD # пароль для доступа со стороны стороннего приложения
EMAIL_USE_TLS=False # использовать TLS (True или False)
EMAIL_USE_SSL=True # использовать SSL (True или False)
Установить docker: https://www.docker.com/get-started/
В терминале linux это можно сделать так:
sudo apt update
sudo apt install curl
curl -fSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
sudo apt install docker-compose-plugin
Запустить Docker в директории с файлом docker-compose.yaml (чтобы запустить в фоновом режиме добавьте флаг -d):
docker compose -f docker-compose.production.yml up
В терминале Linux могут потребоваться права суперпользователя:
sudo docker compose -f docker-compose.production.yml up
Для доступа в админ-зону (если вам нужны какие-то данные из бд, или нужно создать объекты) перейдите на страницу http://localhost:8000/admin/:
Логин: admin@admin.ru
Пароль: admin
Для импорта начальных данных воспользуйтесь командой:
docker compose -f docker-compose.production.yml exec backend sh import.sh
Склонируйте репозиторий:
git clone git@github.com:ALFA-9/Backend.git
Перейдите в папку Backend и запустите файл docker-compose.yml:
cd Backend
docker compose up
Для импорта начальных данных воспользуйтесь командой:
docker compose exec backend sh import.sh
Если вы хотите прикрутить автоматизацию посредством GithubActions настройте файл .github/workflows/main.yml
Примечание. Любые изменения в коде при сохранении будут немедленно отображаться при запросах к серверу