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

3.8 KiB

💻 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. Подготовка сети

Перед первым запуском необходимо создать общую сеть, если она еще не создана:

docker network create jambotron-net
  1. Запуск инфраструктуры Запуск всех баз данных и системных сервисов:

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.