58 lines
3.8 KiB
Markdown
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. |