Vercel
Next.js і публічні assets
Сторінки, SSR, PWA та статичні ресурси. NEXT_PUBLIC змінні задаються під час збірки; приватні клінічні файли сюди не потрапляють.
Архітектура платформи
Оберіть сценарій, натисніть на компонент і подивіться його розташування, дані, зв’язки та зону відповідальності.
Інтерактивна топологія
Натискайте на вузли. Пов’язані сервіси залишаться виділеними, а праворуч відкриються деталі й потоки.
Веб працює на Vercel, а API, FFmpeg і приватні медіа — на контейнерному хості з постійним диском. PostgreSQL керується окремим провайдером.
API керує приватними даними й зовнішніми інтеграціями
Ключове розділення
Межа проходить не за мовою програмування, а за тривалістю процесу, секретами та потребою в постійному сховищі.
Vercel
Сторінки, SSR, PWA та статичні ресурси. NEXT_PUBLIC змінні задаються під час збірки; приватні клінічні файли сюди не потрапляють.
Окремий runtime
API потребує довгих процесів, стабільних вихідних з’єднань, FFmpeg/ffprobe і volume для карантину — це контейнер або VPS.
Контур даних
Керована база спрощує резервні копії, оновлення й відновлення. У Compose її дані обов’язково живуть у persistent volume.
Порядок запуску
Нижчий рівень має бути готовим раніше за той, що від нього залежить.
Створити PostgreSQL, persistent media storage, домени, TLS і production-секрети.
Запустити контейнер API; він перевірить конфіг і застосує міграції під advisory lock.
Зібрати Next.js з фінальними NEXT_PUBLIC_SITE_URL і NEXT_PUBLIC_API_URL.
Перевірити health, CORS/cookie, email, платежі, відео, backup і відновлення.
До production
Завантаження клінічних медіа й DICOM не можна відкривати до приймання профілю знеособлення, антивірусної перевірки, retention-політики та процедур інцидентів. Поточне транскодування вже готове, але не замінює ці бар’єри.