Данный проект предоставляет API используя данные CMS OpenCart
Запуск и установка:
- Склонировать репозиторий
git clone <repository>
- Перейти в папку с репозиторием
cd <dir>
- Создать виртуальное окружение
python -m venv .venv
(Необязательно) - Войти в виртуальное окружение
- Установить зависимости
pip intsall --no-cache-dir -r requirements.txt
- Перейти в папку с main.py
cd app/
- Создать файл .env по следующему образцу:
DATABASE_USERNAME="<имя пользователя базы данных>"
DATABASE_PASSWORD="<пароль пользователя базы данных>"
DATABASE_IP="<ip адрес базы данных>"
DATABASE_NAME="<имя базы данных>"
MAIL_USERNAME="<имя>"
MAIL_PASSWORD="<пароль>"
MAIL_FROM="<имя>@<домен>"
MAIL_PORT=465
MAIL_SERVER="<почтовый сервер>"
DEBUG_MODE="/docs" # Только для отладки!
RECIPIENT_LIST="<почта #1>, <почта #2>"
или
RECIPIENT_LIST="<почта #1>"
- Запустить
uvicorn main:app --reload
- Склонируйте репозиторий
git clone <repository>
- Перейти в папку с репозиторием
cd <dir>
- Настройте переменные docker-compose.yml для подключения к основным компонентам сервера:
environment:
- DATABASE_USERNAME=<имя пользователя базы данных>
- DATABASE_PASSWORD=<пароль пользователя базы данных>
- DATABASE_IP=<ip адрес базы данных>
- DATABASE_NAME=<имя базы данных>
- MAIL_USERNAME=<имя>
- MAIL_PASSWORD=<пароль>
- MAIL_FROM=<имя>@<домен>
- MAIL_PORT=465
- MAIL_SERVER=<почтовый сервер>
- RECIPIENT_LIST=<email#1,email#2>
labels:
- "traefik.enable=true"
- "traefik.http.routers.fastapi.rule=Host(`<domain>`)"
- "traefik.http.routers.fastapi.tls=true"
- "traefik.http.routers.fastapi.tls.certresolver=letsencrypt"
- Настроить ACME в traefik.toml
[certificatesResolvers.letsencrypt.acme]
email = "<почта привязанная к домену>"
- Соберите контейнер
docker-compose build
- После успешной сборки запустите контейнер
docker-compose up -d
(При перезагрузки сервера, контейнер запуститься автоматически).
Примечание
Сертификаты SSL Let’s Encrypt автоматически будут продлеваться (за месяц до окончания) без необходимости перезагрузки сервера.