🚀 Центральный репозиторий Backend-части проекта
Это главная точка входа для развертывания инфраструктуры интерактивного тренажера произношения иностранных языков ILPS. Здесь собраны все ключевые компоненты для запуска платформы.
- Поддержка иностранных языков для тренировки произношения
- Интеллектуальная система оценки акцента
- Гибкая система сложности упражнений
- Мультиплатформенные клиенты
- Языки программирования: Python
- Фреймворки: FastAPI
- ORM: SQLAlchemy (asyncpg)
- СУБД: PostgreSQL
- Инфраструктура: Docker, Docker-compose
- Аутентификация: JWT
- Протоколы: HTTP, SEE
- Алгоритмы: Смещение Нидлмана-Вунша
Репозиторий: ILPS-Mobile
Репозиторий: ILPS-Web
- Установленные технологии:
- Docker
- Docker Compose
- Технические требования:
- 4 ГБ свободной RAM
- 10 ГБ свободного места NVME
-
Клонируйте репозиторий:
git clone --recurse-submodules https://github.com/FEFU-ILPS/ILPS && cd ILPS
В дальнейшем для обновления используйте:
git pull --recurse-submodules
-
Настройте окружение:
cp .env.example .env && cp init.sql.example init.sqlПосле чего сконфигурируйте эти файлы согласно этой инструкции.
-
Запустите сервисы:
docker-compose -f "dev.docker-compose.yml" up -d --build -
Проверьте статус контейнеров:
docker-compose ps
Для успешного запуска ILPS необходимо правильно сконфигрурировать .env и init.sql файлы.
В нем должны содержаться настройки для всех сервисов и элементов инфраструктуры ILPS. В .env.example и init.sql.example приведены настройки, которые уже подходят для запуска ILPS. Поэтому простого копирования .env.example в .env, как и init.sql.example в init.sql будет достаточно для локального запуска в целях тестирования или разработки.
Important
Инфраструктура действительно запустится, однако ссылки на модели в .env.example не валидны.
Сервис с транскрибирования будет работать, но просто не загрузит модели с не валидными ссылками.
Это означает, что вы не сможете выполнить задачу по обработке ни на одном языке.
К сожалению, ссылки на модели являются секретом и заменить их "заглушкой" нельзя.
Для развертывания ILPS в production-среде необходимо сконфигурировать настройки для каждого сервиса согласно их таблицам переменных окружения.
По большей части, настройки требуеют только те поля, которые задают секреты, пароли, ключи доступа и т.д. Поля, передающие адреса и порты сервисов, уже преднастроены согласно базовому docker-compose.yml файлу.
В случае необходимости более тонко настроить какой-то сервис - можно вписать в каждый из разделов настроек для определенного сервиса значения переменных среды, которые не являются обязательными. К этой группе могут относиться поля, отвечающие за настройку алгоритмов шифрования, имен баз данных и т.п.
Таблицы переменных окружения для каждого сервиса инфраструктуры ILPS можно найти тут:
- Backend API-Gateway: ссылка
- Сервис аутентификации: ссылка
- Сервис управления текстами: ссылка
- Сервис управления задачами обработки аудио: ссылка
- Сервис предобработки аудио: ссылка
- Сервис транскрибирования аудио: ссылка
- Сервис формирования отчёта по произношению: ссылка
- Сервис управления упражнениями: ссылка
Помните, что все переменные окружения имеют стандартные значения. Вы можете их поменять в зависимости от того, как вы настроете инфраструктуру.
Для развертывания СУБД PGSQL, которую использует ILPS для своей работы, необходим файл init.sql.
В этом скрипте вы можете сменить имя пользователя или пароль в строках, соответствующих шаблону:
CREATE USER username WITH PASSWORD 'password';Сменить стандартные названия баз данных:
CREATE DATABASE dbname;Выдать права пользователю над базой данных:
ALTER DATABASE dbname OWNER TO username;Помимо всего прочего, для PGSQL и для ее админ-панели в лице PG-Admin необходимо задать некоторые переменные окружения.
| Переменная | Значимость | Описание | Тип данных | Стандартное значение |
|---|---|---|---|---|
| POSTGRES_PASSWORD | Обязательно | Пароль от пользователя postgres в СУБД. |
STRING | |
| PGADMIN_DEFAULT_EMAIL | Обязательно | Электронная почта аккаунта владельца инфраструктуры. | STRING | |
| PGADMIN_DEFAULT_PASSWORD | Обязательно | Пароль аккаунта владельца инфраструктуры. | STRING |
Подробнее о переменных окружения и развертывании PGSQL и PG-Admin можно прочитать здесь.
Important
Сгенерируйте более безопасные пароли при помощи hex-генераторов и замените стандартные пароли в init.sql и .env на сгенерированные.
Проект не поддерживает традиционную сторонню контрибуцию. Так как проект является дипломной работой (заказом) внутри ДВФУ, то и право на модификацию, поддержку и изменение будет предоставлено студентам ДВФУ, решившим базировать свою дипломную работу по какой-либо теме на этом проекте.
Если вы студен ДВФУ и вы желаете написать свою дипломную работу на базе данного проекта, то обратитесь к @Oidaho.
Этот проект распространяется под лицензией GNU General Public License v3.0 (GPL-3.0).