Проект для заметок
Описание
Написаны два сервиса:
- backend-fastapi - соответственно бэк
- my-notes-app-front - фронтенд на vue3ts
Плюс ещё используется postgresql для сохранения базы заметок
Настройка локальной разработки
- Настроить сеть=) а то я забыль
- Склонировать проект
- Установить зависимости
- открыть через nvim и сразу пользовать автокомплитом и проверками так как сервера нужные уже установлены
Настройка сети
sudo vim /etc/netplan/50-cloud-init.yaml
В файл надо вставить следующее содержимое (ну или дописать недостающее)
network:
version: 2
ethernets:
enp0s3:
dhcp4: true
enp0s8:
dhcp4: true
- Запускаем команду
sudo netplan apply
- Запускаем
ip a
и ищем интерфейс enp0s8 и смотрим его ip должен быть формата 192.168.56.***
Сеть настроена, теперь можно достучаться до машины с локального компа
Поднимаем backend
Устанавливаем зависимости backend
cd services/backend-fastapi
poetry install
Проверка работы приложения
Сначала запустить надо базу, а то навернётся
# так запустится только один сервис db - postgres
docker compose -f docker-compose.yaml -f docker-compose.debug.yaml up db
# или чтобы запустить в фоне
docker compose -f docker-compose.yaml -f docker-compose.debug.yaml up db -d
Запускаем приложение
cd services/backend-fastapi
poetry shell # активация виртуального окружения
uvicorn src.main:app --reload --host 0.0.0.0 --port 5000
curl localhost:5000 # должен вывести not found
Проверяем в браузере
В браузере на локалке вводим: http://192.168.56.***:5000
Осторожно! ip может быть другой
А чтобы по красоте http://192.168.56.***:5000/docs, наслаждаемся
Поднимаем фронт
Устанавливаем зависимости npm frontend
cd services/my-notes-app-front
npm install
Запускаем фронтенд
Предварительно можно запустить бэк, чтобы они заработали вместе, но не обязательно
npm run dev -- --host=0.0.0.0
Выведет по какому порту приложение поднимется curl <эта url>
Проверяем в браузере
В браузере на локалке вводим: http://192.168.56.***:<порт, который vite выведет>
Команды запуска проекта
Для того, чтобы пересобрать контейнеры добавляем флаг --build
В режиме разработки
docker compose -f docker-compose.yaml -f docker-compose.debug.yaml up
В этом режиме можно редактировать код сервисов пока работают контейнеры и изменения сразу отобразятся на работающем проекте
В режиме production (боевом)
docker compose -f docker-compose.yaml up
Эту сборку можно уже перемещать на рабочий сервер и запускать её оттуда лишние порты прикрыты, настроены маршруты для перенаправления запросов