project-template — фулстек-шаблон
Django и React в одном монорепо: общий OpenAPI-контракт, независимые пайплайны и образы, готовые к Kubernetes
- Моя роль
- Автор
- Период
- 2026 — н.в.
- Ссылки
- Исходный код
Команда переходит на фулстек: один проект теперь включает и backend, и frontend и с первого дня готов к выкатке в кластер Kubernetes. project-template — основа для таких проектов. Он вырос из django-template: Django 5.2 + DRF на backend, React 19 + TypeScript + Vite на frontend и ops-слой с Docker Compose, nginx и CI.
Backend и frontend самодостаточны: у каждого свой Dockerfile, свои инструменты, свой CI и свой образ, а договариваются они через OpenAPI-контракт, из которого генерируется типизированный клиент. Образы не зависят от окружения, поэтому один и тот же образ идёт и в Compose на сервере, и в Kubernetes.
Что сделано
- OpenAPI-контракт между командами: backend генерирует схему, frontend — типы, CI падает, если контракт устарел
- Готовность к Kubernetes: настройки только из env, миграции отдельным release-шагом (Job в кластере), liveness и readiness, non-root, JSON-логи
- Независимые пайплайны и деплой одного компонента, не трогая второй
- Новый проект одной командой: скрипт переименовывает всё и выдаёт проекту свой порт
- SPA и API на одном домене: без CORS, cookie и CSRF работают из коробки
- CODEOWNERS для двух команд, Dependabot, pre-commit для Python и TypeScript