Files
jambotron/LOCAL_INFRASTRUCTURE.md
T
Liosha bcc7ca5d12
Jambotron Deploy / build-and-deploy (push) Waiting to run
[Monitoring] MongoDB Metrics in Grafana
2026-05-01 16:06:11 +03:00

58 lines
3.8 KiB
Markdown

# 💻 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.