Бэкенд-сервис для приложения Единый профиль учащегося (ЕПУ), разработанный на FastAPI.
- Фреймворк: FastAPI
- База данных: PostgreSQL
- ORM: SQLAlchemy
- Миграции: Alembic
- Контейнеризация: Docker
- Платформа для развертывания: Render.com
Этот метод является рекомендуемым для локальной разработки, так как он полностью воссоздает рабочее окружение.
- Docker Desktop установленный и запущенный.
-
Клонируйте репозиторий:
git clone <URL_вашего_репозитория>
-
Создайте файл
.env: В корневой папке проекта создайте файл с именем.envи скопируйте в него следующее содержимое. Этот файл содержит учетные данные для локальной базы данных.# Переменные для инициализации контейнера PostgreSQL POSTGRES_DB=usp_db POSTGRES_USER=usp_user POSTGRES_PASSWORD=usp_password # Переменная для подключения вашего Python-приложения к контейнеру с БД DATABASE_URL=postgresql://usp_user:usp_password@db:5432/usp_db
-
Запустите проект с помощью Docker Compose: Откройте терминал в корне проекта и выполните команду:
docker-compose up --build
Эта команда скачает образ PostgreSQL, соберет образ вашего приложения и запустит оба контейнера.
-
Проверка: Приложение будет доступно по адресу
http://localhost:8080. Вы можете проверить его работоспособность, например, открыв в браузереhttp://localhost:8080/health.
Проект полностью настроен для автоматического развертывания на платформе Render с использованием "Infrastructure as Code" (render.yaml).
- Аккаунт на Render.com.
- Ваш проект загружен в репозиторий на GitHub.
-
Создайте новый Blueprint на Render:
- В панели управления Render нажмите "New" -> "Blueprint".
- Подключите ваш GitHub-репозиторий. Render автоматически обнаружит файл
render.yamlв корне проекта.
-
Подтвердите создание сервисов:
- Render покажет вам, что он собирается создать два сервиса на основе вашего
render.yaml:- Веб-сервис
usp-backend(типWeb Service). - Базу данных
usp-db(типPostgreSQL).
- Веб-сервис
- Нажмите "Apply" или "Create New Services".
- Render покажет вам, что он собирается создать два сервиса на основе вашего
-
Готово!
- Render автоматически создаст базу данных, соберет Docker-образ вашего приложения и запустит его.
- Важно: Вам не нужно вручную настраивать переменные окружения (например,
DATABASE_URL) в панели управления Render. Файлrender.yamlделает это автоматически, безопасно связывая веб-сервис с базой данных. - После завершения развертывания ваше приложение будет доступно по URL-адресу, предоставленному Render.