Система для автоматического подбора ячейки хранения на основе габаритов багажа.
Проект позволяет пользователям:
- Ввести размеры своего багажа (высота, ширина, глубина)
- Получить рекомендацию по подходящему типу ячейки (S/M/L/XL)
- Увидеть стоимость аренды
- Забронировать ячейку с получением QR-кода
- Go 1.21+ - основной язык
- Gorilla Mux - роутинг
- PostgreSQL - основная база данных
- JWT - аутентификация
- React 19 - UI библиотека
- TypeScript - типизация
- Axios - HTTP клиент
- React Router v7 - маршрутизация
- React Query - управление состоянием серверных данных
- Docker - контейнеризация
- Docker Compose - оркестрация
- Kubernetes - оркестрация для cluster deployment
- GitHub Actions - CI/CD
- Render / Yandex Cloud - деплой
- Go 1.21+
- Node.js 18+
- Docker & Docker Compose
- PostgreSQL (или используйте Docker)
- Клонировать репозиторий
git clone https://github.com/kolsmer/Locker.git
cd Locker- Запустить проект через Docker Compose
docker compose up -d --build- Проверить доступность
curl http://localhost:8081/
curl http://localhost:8080/healthzВ репозитории добавлены Kubernetes-манифесты в директории k8s для следующих компонентов:
- PostgreSQL с
PersistentVolumeClaim - backend API
- frontend nginx
- отдельный
Jobдля миграций
Перед первым деплоем проверьте значения в k8s/secret.yaml и замените как минимум JWT_SECRET и пароль БД.
Собрать образы:
make k8s-build-imagesЕсли ваш кластер не видит локальные Docker-образы, загрузите их в runtime кластера отдельной командой вашей среды, например kind load docker-image ... или minikube image load ....
Развернуть в Kubernetes:
make k8s-upПроверить статус:
make k8s-statusОткрыть frontend локально:
kubectl port-forward svc/frontend 8081:80 -n lockerПосле этого приложение будет доступно на http://localhost:8081.
Удалить ресурсы:
make k8s-down