Задеплойте demo-decoupled: фронтенд і бекенд окремо

API, фронтенд на nginx і PostgreSQL як окремі сервіси: як вони знаходять один одного і який отримує домен.

demo-decoupled — той самий застосунок, розділений на три сервіси: API на Spring Boot, інтерфейс Angular, який віддає nginx, і PostgreSQL. Він показує, як фронтенд і бекенд живуть поруч в одному проєкті.

Деплой в один клік

  1. Відкрийте Проєкти й натисніть Задеплоїти демо на картці demo-decoupled.
  2. Jambotron створить проєкт, завантажить вихідний код, вибере docker-compose.yml і запустить деплой. Стежте за логами на сторінці Деплої.
  3. Збираються два образи — backend (Gradle) і frontend (збирання Angular + nginx), тому перший деплой триває трохи довше.

Що всередині

services:
  demo-decoupled-postgres:  # PostgreSQL 16
    image: postgres:16-alpine
  backend:                  # API на Spring Boot, порт 8080
    build: .
    depends_on:
      demo-decoupled-postgres:
        condition: service_healthy
  frontend:                 # Angular + nginx, порт 80
    build: ./spring-angular-ui
    depends_on:
      backend:
        condition: service_healthy
  • nginx у frontend віддає інтерфейс і проксіює /api на http://backend:8080 — сервіси знаходять один одного за іменем;
  • браузер звертається лише до frontend, тож API не потрібен окремий домен;

Відкрийте застосунок

  1. Відкрийте проєкт → Домени → Додати домен.
  2. Виберіть сервіс frontend, введіть піддомен і порт контейнера 80.
  3. Відкрийте HTTPS-адресу — інтерфейс завантажиться й звертатиметься до API через nginx.

Якщо API потрібен і ззовні (наприклад, для мобільного застосунку), додайте другий домен для backend з портом 8080.

Власні фронтенд і бекенд

Дотримуйтеся того самого підходу: один публічний сервіс із доменом (nginx або сервер фронтенду), який проксіює API за іменем сервісу, і ліміти пам'яті для важких сервісів. Дивіться гайди про квоти й про застосунки за проксі.