This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# 💻 Local Development Infrastructure: Jambotron PaaS
|
||||
|
||||
Этот файл описывает конфигурацию локальной среды разработки, которая зеркально отражает серверную инфраструктуру в Хельсинки. Локальный кластер настроен для обеспечения бесшовного процесса созидания и мониторинга контейнеров.
|
||||
|
||||
## 🏗️ Архитектура системы
|
||||
|
||||
Локальная среда построена на базе Docker и управляется через единую сеть для обеспечения связи между системными базами и динамическими проектами.
|
||||
|
||||
* **Runtime**: Docker Engine / Docker Desktop.
|
||||
* **Network**: `jambotron-net` (Тип: bridge, внешняя).
|
||||
* **Оркестрация**: Docker Compose.
|
||||
* **JDK**: Version 21 (LTS).
|
||||
* **Build Tool**: Gradle.
|
||||
|
||||
## 📦 Реестр локальных сервисов
|
||||
|
||||
| Сервис | Образ | URL / Порт | Назначение |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| **caddy-dev** | `lucaslorentz/caddy-docker-proxy` | `*.localhost` | Обратный прокси с авто-обнаружением через Docker Socket. |
|
||||
| **jambo-postgres** | `postgres:15-alpine` | `localhost:5432` | Системная БД (Пользователи, настройки, биллинг). |
|
||||
| **jambotron-mongo** | `mongo:6.0` | `localhost:27017` | Хранилище метаданных проектов и контейнеров (SaaS 2.0). |
|
||||
| **jambo-pgadmin** | `dpage/pgadmin4` | `pgadmin.localhost` | Веб-интерфейс для управления PostgreSQL. |
|
||||
| **portainer-dev** | `portainer/portainer-ce` | `localhost:9443` | Визуальный мониторинг и управление Docker-ресурсами. |
|
||||
|
||||
## 🛠️ Стек разработки (Dev Mode)
|
||||
|
||||
* **Backend**: Spring Boot 3.5.0 (профиль `dev`).
|
||||
* **Frontend**: Angular 17+ (интегрирован в Gradle-таски).
|
||||
* **БД Миграции**: Flyway.
|
||||
* **API управления**: Docker Java Client (через `/var/run/docker.sock`).
|
||||
|
||||
## 🚀 Быстрый старт
|
||||
|
||||
### 1. Подготовка сети
|
||||
Перед первым запуском необходимо создать общую сеть, если она еще не создана:
|
||||
```bash
|
||||
docker network create jambotron-net
|
||||
```
|
||||
2. Запуск инфраструктуры
|
||||
Запуск всех баз данных и системных сервисов:
|
||||
|
||||
Bash
|
||||
docker-compose -f docker-compose.dev.yml up -d
|
||||
3. Запуск приложения (Spring + Angular)
|
||||
Используй кастомный Gradle-таск для запуска приложения с профилем разработчика:
|
||||
|
||||
Bash
|
||||
./gradlew bootRun_Dev
|
||||
Команда автоматически соберет фронтенд, скопирует статику в src/main/resources/static и запустит сервер.
|
||||
|
||||
🔗 Особенности созидания проектов
|
||||
Для реализации динамического деплоя внутри PaaS, приложение использует проброс Docker Socket.
|
||||
|
||||
Docker Labels: При создании нового контейнера через API, необходимо вешать лейблы caddy и caddy.reverse_proxy, чтобы локальный Caddy автоматически создал маршрут на project-name.localhost.
|
||||
|
||||
Volumes: Данные PostgreSQL и MongoDB сохраняются в именованных томах jambo_db_dev_data и mongo_dev_data соответственно.
|
||||
|
||||
Lombok: Для корректной сборки на JDK 21 используется версия 1.18.34.
|
||||
Reference in New Issue
Block a user