Ring Platform

AI Self-Construct

🏠
Головна
ОрганізаціїHot
МожливостіNew
Магазин
Platform Concepts
RING Економіка
Трійця Україна
Глобальний вплив
AI зустрічає Web3
Розпочати
Документація
Швидкий старт
Калькулятор розгортання
Offline
v1.48•Trinity
Privacy|Contact
Ring Platform Logo

Завантаження документації...

Підготовка контенту платформи Ring

Documentation

Початок роботи

Огляд
Встановлення
Передумови
Перший успіх
Наступні кроки
Усунення несправностей

Архітектура

Огляд архітектури
Архітектура автентифікації
Модель даних
Реальний час
Безпека

Функції

Функції платформи
Автентифікація
Сутності
Можливості
Мультивендорний магазин
Web3 гаманець
Повідомлення
Сповіщення
NFT маркетплейс
Інтеграція платежів
Безпека та відповідність
Стейкінг токенів
Продуктивність

API довідник

Огляд API
API автентифікації
API сутностей
API можливостей
API магазину
API гаманця
API повідомлень
API сповіщень
API адміністратора

CLI інструмент

Ring CLI

Налаштування

Огляд налаштувань
Брендинг
Теми
Компоненти
Функції
Локалізація

Розгортання

Огляд розгортання
Docker
Vercel
Середовище
Моніторинг
Продуктивність
Резервне копіювання

Розробка

Посібник розробника
Локальне налаштування
Структура коду
Стиль коду
Кращі практики
Тестування
Налагодження
Продуктивність
Розгортання
Робочий процес
Внесок

Приклади

Огляд прикладів
Швидкий старт
Базове налаштування
Автентифікація
API інтеграція
Приклади API
Власний брендинг
White Label
Мультитенант
Web3 інтеграція
Вхід через Apple
Інтеграції третіх сторін
Розширені функції
Реальні кейси

White Label

Огляд White Label
Швидкий старт
Посібник з налаштування
Вибір бази даних
Інтеграція платежів
Токеноміка
Налаштування мультитенант
AI налаштування
Історії успіху

Quick Links

API Reference
Code Examples
Changelog
Support
Ring Platform

AI Self-Construct

🏠
Головна
ОрганізаціїHot
МожливостіNew
Магазин
Platform Concepts
RING Економіка
Трійця Україна
Глобальний вплив
AI зустрічає Web3
Розпочати
Документація
Швидкий старт
Калькулятор розгортання
Offline
v1.48•Trinity
Privacy|Contact
Ring Platform Logo

Завантаження документації...

Підготовка контенту платформи Ring

Documentation

Початок роботи

Огляд
Встановлення
Передумови
Перший успіх
Наступні кроки
Усунення несправностей

Архітектура

Огляд архітектури
Архітектура автентифікації
Модель даних
Реальний час
Безпека

Функції

Функції платформи
Автентифікація
Сутності
Можливості
Мультивендорний магазин
Web3 гаманець
Повідомлення
Сповіщення
NFT маркетплейс
Інтеграція платежів
Безпека та відповідність
Стейкінг токенів
Продуктивність

API довідник

Огляд API
API автентифікації
API сутностей
API можливостей
API магазину
API гаманця
API повідомлень
API сповіщень
API адміністратора

CLI інструмент

Ring CLI

Налаштування

Огляд налаштувань
Брендинг
Теми
Компоненти
Функції
Локалізація

Розгортання

Огляд розгортання
Docker
Vercel
Середовище
Моніторинг
Продуктивність
Резервне копіювання

Розробка

Посібник розробника
Локальне налаштування
Структура коду
Стиль коду
Кращі практики
Тестування
Налагодження
Продуктивність
Розгортання
Робочий процес
Внесок

Приклади

Огляд прикладів
Швидкий старт
Базове налаштування
Автентифікація
API інтеграція
Приклади API
Власний брендинг
White Label
Мультитенант
Web3 інтеграція
Вхід через Apple
Інтеграції третіх сторін
Розширені функції
Реальні кейси

White Label

Огляд White Label
Швидкий старт
Посібник з налаштування
Вибір бази даних
Інтеграція платежів
Токеноміка
Налаштування мультитенант
AI налаштування
Історії успіху

Quick Links

API Reference
Code Examples
Changelog
Support
Ring Platform Logo

Завантаження документації...

Підготовка контенту платформи Ring

Documentation

Початок роботи

Огляд
Встановлення
Передумови
Перший успіх
Наступні кроки
Усунення несправностей

Архітектура

Огляд архітектури
Архітектура автентифікації
Модель даних
Реальний час
Безпека

Функції

Функції платформи
Автентифікація
Сутності
Можливості
Мультивендорний магазин
Web3 гаманець
Повідомлення
Сповіщення
NFT маркетплейс
Інтеграція платежів
Безпека та відповідність
Стейкінг токенів
Продуктивність

API довідник

Огляд API
API автентифікації
API сутностей
API можливостей
API магазину
API гаманця
API повідомлень
API сповіщень
API адміністратора

CLI інструмент

Ring CLI

Налаштування

Огляд налаштувань
Брендинг
Теми
Компоненти
Функції
Локалізація

Розгортання

Огляд розгортання
Docker
Vercel
Середовище
Моніторинг
Продуктивність
Резервне копіювання

Розробка

Посібник розробника
Локальне налаштування
Структура коду
Стиль коду
Кращі практики
Тестування
Налагодження
Продуктивність
Розгортання
Робочий процес
Внесок

Приклади

Огляд прикладів
Швидкий старт
Базове налаштування
Автентифікація
API інтеграція
Приклади API
Власний брендинг
White Label
Мультитенант
Web3 інтеграція
Вхід через Apple
Інтеграції третіх сторін
Розширені функції
Реальні кейси

White Label

Огляд White Label
Швидкий старт
Посібник з налаштування
Вибір бази даних
Інтеграція платежів
Токеноміка
Налаштування мультитенант
AI налаштування
Історії успіху

Quick Links

API Reference
Code Examples
Changelog
Support

Про нас

Про нашу платформу та сервіси

Швидкі посилання

  • Компанії
  • Можливості
  • Контакти
  • Документація

Контакти

б-р Шевченка 195, Черкаси, Україна

contact@ring.ck.ua

+38 097 532 8801

Ми в мережах

© 2025 Ring

Політика конфіденційностіУмови використання

Про нас

Про нашу платформу та сервіси

Швидкі посилання

  • Компанії
  • Можливості
  • Контакти
  • Документація

Контакти

б-р Шевченка 195, Черкаси, Україна

contact@ring.ck.ua

+38 097 532 8801

Ми в мережах

© 2025 Ring

Політика конфіденційностіУмови використання

    Docker Deployment для Ring Platform

    Комплексне розгортання Ring Platform використовуючи Docker containers з Kubernetes оркестрацією. Підтримує як розробку, так і production середовища з повною ізоляцією та безпекою.

    Системні вимоги

    Мінімальні вимоги

    • Docker: 24.0+ (з BuildKit підтримкою)
    • Docker Compose: 2.20+
    • Kubernetes: 1.25+ (для production)
    • CPU: 2 cores minimum, 4 cores recommended
    • RAM: 4GB minimum, 8GB recommended
    • Storage: 20GB для production deployment

    Мережеві вимоги

    • Outbound HTTPS: Для завантаження пакетів та API calls
    • Inbound ports: 80/443 для production, 3000 для development
    • Container registry: ghcr.io (GitHub Container Registry)
    • External services: PostgreSQL, Redis, WayForPay, Polygon RPC

    Підтримувані архітектури

    • linux/amd64: Primary production architecture
    • linux/arm64: Secondary support для Apple Silicon development

    Розгортання в розробці

    Docker Compose (Розробка)

    version: '3.9'
    yaml
    services:
    ring-platform:
      build:
        context: .
        dockerfile: Dockerfile
        platform: linux/amd64
      ports:
        - "3000:3000"
      environment:
        - NODE_ENV=development
        - NEXTAUTH_URL=http://localhost:3000
        - NEXT_PUBLIC_API_URL=http://localhost:3000
      volumes:
        - .:/app
        - /app/node_modules
      restart: unless-stopped
    
    postgres:
      image: postgres:15
      environment:
        - POSTGRES_DB=ring_platform
        - POSTGRES_USER=ring
        - POSTGRES_PASSWORD=secure_password
      ports:
        - "5432:5432"
      volumes:
        - postgres_data:/var/lib/postgresql/data
      restart: unless-stopped
    
    volumes:
    postgres_data:

    Швидке налаштування розробки

    Клонувати репозиторій Запустити середовище розробки Переглянути логи Доступ до додатку

    terminal
    bash
    git clone https://github.com/connectplatform/ring.git
    cd ring/ring-platform.org
    
    docker-compose -f docker-compose.dev.yml up -d
    
    docker-compose logs -f ring-platform
    
    open http://localhost:3000

    Виробниче розгортання

    Критичні вимоги до збірки

    [!WARNING] КРИТИЧНО: Ніколи не використовуйте підсвітку синтаксису на стороні сервера або імпорти Mermaid.js на верхньому рівні - викликає 30-секундні затримки та таймаути 503!

    Специфікація платформи

    Завжди збирати з явним зазначенням платформи для вузлів Kubernetes AMD64

    terminal
    bash
    docker build --platform linux/amd64 -t ghcr.io/connectplatform/ring:v0.9.18-ring-platform.org-amd64 -f Dockerfile .

    Конфігурація Docker

    • НЕ виключати директорію docs/ з .dockerignore
    • ОБОВ'ЯЗКОВО копіювати директорії lib/ та docs/ на етапі runtime Dockerfile
    • Використовувати динамічні імпорти для клієнтських бібліотек типу Mermaid.js

    Процес збірки та розгортання

    Крок 1: Зібрати образ Docker

    terminal
    bash
    cd ring-platform.org
    docker build --platform linux/amd64 -t ghcr.io/connectplatform/ring:v0.9.18-ring-platform.org-amd64 -f Dockerfile .

    Крок 2: Надіслати до реєстру

    terminal
    bash
    docker push ghcr.io/connectplatform/ring:v0.9.18-ring-platform.org-amd64

    Крок 3: Розгорнути в Kubernetes

    ssh k8s-control-01 'kubectl -n ring-platform-org set image \

    terminal
    bash
    deployment/ring-platform ring-platform=ghcr.io/connectplatform/ring:v0.9.18-ring-platform.org-amd64'

    Крок 4: Моніторити розгортання

    terminal
    bash
    ssh k8s-control-01 'kubectl -n ring-platform-org rollout status deployment/ring-platform'
    ssh k8s-control-01 'kubectl -n ring-platform-org get pods -l app=ring-platform'

    Розгортання Kubernetes

    Огляд

    Ring Platform розгортається в Kubernetes з використанням HAProxy як зовнішнього балансувальника навантаження та MetalLB для внутрішньої балансировки сервісів. Це забезпечує масштабованість корпоративного рівня, високу доступність та управління трафіком.

    Попередні вимоги

    • Кластер Kubernetes v1.29+
    • Встановлений HAProxy LoadBalancer (10.10.0.30)
    • Налаштований MetalLB з пулом IP (10.10.0.40-10.10.0.50)
    • Cilium CNI з шифруванням WireGuard
    • NGINX Ingress Controller (опціонально)

    Конфігурація DNS

    Налаштуйте вашого DNS-провайдера для вказівки ring-platform.org на ваші публічні IP:

    Основна настройка (Рекомендується) Розширена настройка з балансуванням навантаження

    terminal
    bash
    ring-platform.org      A     195.95.233.69    # HAProxy LoadBalancer
    www.ring-platform.org  CNAME ring-platform.org
    
    ring-platform.org      A     195.95.233.69    # Основний (HAProxy)
    ring-platform.org      A     195.95.233.15    # Другорядний (MetalLB)

    Налаштування простору імен

    Створити простір імен Ring Встановити як простір за замовчуванням для розгортання

    terminal
    bash
    kubectl create namespace ring-platform-org
    
    kubectl config set-context --current --namespace=ring-platform-org

    Розгортання додатку Ring Platform

    ring-platform-deployment.yaml Сервіс Ring Platform з MetalLB

    configuration
    yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: ring-platform
    namespace: ring-platform-org
    labels:
      app: ring-platform
    spec:
    replicas: 2
    selector:
      matchLabels:
        app: ring-platform
    template:
      metadata:
        labels:
          app: ring-platform
      spec:
        containers:
        - name: ring-platform
          image: ghcr.io/connectplatform/ring:v0.9.18-ring-platform.org-amd64
          ports:
          - containerPort: 3000
            name: http
          env:
          - name: NODE_ENV
            value: "production"
          - name: NEXTAUTH_URL
            value: "https://ring-platform.org"
          - name: NEXT_PUBLIC_API_URL
            value: "https://ring-platform.org"
          resources:
            requests:
              memory: "512Mi"
              cpu: "250m"
            limits:
              memory: "1Gi"
              cpu: "500m"
          livenessProbe:
            httpGet:
              path: /api/health
              port: 3000
            initialDelaySeconds: 30
            periodSeconds: 10
            timeoutSeconds: 5
          readinessProbe:
            httpGet:
              path: /api/health
              port: 3000
            initialDelaySeconds: 5
            periodSeconds: 5
            timeoutSeconds: 3
    ---
    apiVersion: v1
    kind: Service
    metadata:
    name: ring-platform-service
    namespace: ring-platform-org
    annotations:
      metallb.universe.tf/loadBalancerIPs: 10.10.0.41
    spec:
    selector:
      app: ring-platform
    ports:
    - name: http
      port: 80
      targetPort: 3000
      protocol: TCP
    - name: https
      port: 443
      targetPort: 3000
      protocol: TCP
    type: LoadBalancer
    loadBalancerIP: 10.10.0.41

    Конфігурація NGINX Ingress

    ring-platform-ingress.yaml Основний додаток Документація субдомен

    configuration
    yaml
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
    name: ring-platform-ingress
    namespace: ring-platform-org
    annotations:
      kubernetes.io/ingress.class: "nginx"
      nginx.ingress.kubernetes.io/ssl-redirect: "true"
      nginx.ingress.kubernetes.io/rewrite-target: /
      cert-manager.io/cluster-issuer: "letsencrypt-prod"
      nginx.ingress.kubernetes.io/proxy-body-size: "50m"
      nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
      nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
    spec:
    tls:
    - hosts:
      - ring-platform.org
      - www.ring-platform.org
      - docs.ring-platform.org
      secretName: ring-platform-tls
    rules:
    - host: ring-platform.org
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: ring-platform-service
              port:
                number: 80
    - host: www.ring-platform.org
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: ring-platform-service
              port:
                number: 80
    - host: docs.ring-platform.org
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: ring-platform-service
              port:
                number: 80

    Це розгортання Kubernetes забезпечує масштабованість корпоративного рівня, високу доступність та надійне управління трафіком для платформи Ring з використанням балансувальників навантаження HAProxy та MetalLB.

    Docker Deployment для Ring Platform

    Комплексне розгортання Ring Platform використовуючи Docker containers з Kubernetes оркестрацією. Підтримує як розробку, так і production середовища з повною ізоляцією та безпекою.

    Системні вимоги

    Мінімальні вимоги

    • Docker: 24.0+ (з BuildKit підтримкою)
    • Docker Compose: 2.20+
    • Kubernetes: 1.25+ (для production)
    • CPU: 2 cores minimum, 4 cores recommended
    • RAM: 4GB minimum, 8GB recommended
    • Storage: 20GB для production deployment

    Мережеві вимоги

    • Outbound HTTPS: Для завантаження пакетів та API calls
    • Inbound ports: 80/443 для production, 3000 для development
    • Container registry: ghcr.io (GitHub Container Registry)
    • External services: PostgreSQL, Redis, WayForPay, Polygon RPC

    Підтримувані архітектури

    • linux/amd64: Primary production architecture
    • linux/arm64: Secondary support для Apple Silicon development

    Розгортання в розробці

    Docker Compose (Розробка)

    version: '3.9'
    yaml
    services:
    ring-platform:
      build:
        context: .
        dockerfile: Dockerfile
        platform: linux/amd64
      ports:
        - "3000:3000"
      environment:
        - NODE_ENV=development
        - NEXTAUTH_URL=http://localhost:3000
        - NEXT_PUBLIC_API_URL=http://localhost:3000
      volumes:
        - .:/app
        - /app/node_modules
      restart: unless-stopped
    
    postgres:
      image: postgres:15
      environment:
        - POSTGRES_DB=ring_platform
        - POSTGRES_USER=ring
        - POSTGRES_PASSWORD=secure_password
      ports:
        - "5432:5432"
      volumes:
        - postgres_data:/var/lib/postgresql/data
      restart: unless-stopped
    
    volumes:
    postgres_data:

    Швидке налаштування розробки

    Клонувати репозиторій Запустити середовище розробки Переглянути логи Доступ до додатку

    terminal
    bash
    git clone https://github.com/connectplatform/ring.git
    cd ring/ring-platform.org
    
    docker-compose -f docker-compose.dev.yml up -d
    
    docker-compose logs -f ring-platform
    
    open http://localhost:3000

    Виробниче розгортання

    Критичні вимоги до збірки

    [!WARNING] КРИТИЧНО: Ніколи не використовуйте підсвітку синтаксису на стороні сервера або імпорти Mermaid.js на верхньому рівні - викликає 30-секундні затримки та таймаути 503!

    Специфікація платформи

    Завжди збирати з явним зазначенням платформи для вузлів Kubernetes AMD64

    terminal
    bash
    docker build --platform linux/amd64 -t ghcr.io/connectplatform/ring:v0.9.18-ring-platform.org-amd64 -f Dockerfile .

    Конфігурація Docker

    • НЕ виключати директорію docs/ з .dockerignore
    • ОБОВ'ЯЗКОВО копіювати директорії lib/ та docs/ на етапі runtime Dockerfile
    • Використовувати динамічні імпорти для клієнтських бібліотек типу Mermaid.js

    Процес збірки та розгортання

    Крок 1: Зібрати образ Docker

    terminal
    bash
    cd ring-platform.org
    docker build --platform linux/amd64 -t ghcr.io/connectplatform/ring:v0.9.18-ring-platform.org-amd64 -f Dockerfile .

    Крок 2: Надіслати до реєстру

    terminal
    bash
    docker push ghcr.io/connectplatform/ring:v0.9.18-ring-platform.org-amd64

    Крок 3: Розгорнути в Kubernetes

    ssh k8s-control-01 'kubectl -n ring-platform-org set image \

    terminal
    bash
    deployment/ring-platform ring-platform=ghcr.io/connectplatform/ring:v0.9.18-ring-platform.org-amd64'

    Крок 4: Моніторити розгортання

    terminal
    bash
    ssh k8s-control-01 'kubectl -n ring-platform-org rollout status deployment/ring-platform'
    ssh k8s-control-01 'kubectl -n ring-platform-org get pods -l app=ring-platform'

    Розгортання Kubernetes

    Огляд

    Ring Platform розгортається в Kubernetes з використанням HAProxy як зовнішнього балансувальника навантаження та MetalLB для внутрішньої балансировки сервісів. Це забезпечує масштабованість корпоративного рівня, високу доступність та управління трафіком.

    Попередні вимоги

    • Кластер Kubernetes v1.29+
    • Встановлений HAProxy LoadBalancer (10.10.0.30)
    • Налаштований MetalLB з пулом IP (10.10.0.40-10.10.0.50)
    • Cilium CNI з шифруванням WireGuard
    • NGINX Ingress Controller (опціонально)

    Конфігурація DNS

    Налаштуйте вашого DNS-провайдера для вказівки ring-platform.org на ваші публічні IP:

    Основна настройка (Рекомендується) Розширена настройка з балансуванням навантаження

    terminal
    bash
    ring-platform.org      A     195.95.233.69    # HAProxy LoadBalancer
    www.ring-platform.org  CNAME ring-platform.org
    
    ring-platform.org      A     195.95.233.69    # Основний (HAProxy)
    ring-platform.org      A     195.95.233.15    # Другорядний (MetalLB)

    Налаштування простору імен

    Створити простір імен Ring Встановити як простір за замовчуванням для розгортання

    terminal
    bash
    kubectl create namespace ring-platform-org
    
    kubectl config set-context --current --namespace=ring-platform-org

    Розгортання додатку Ring Platform

    ring-platform-deployment.yaml Сервіс Ring Platform з MetalLB

    configuration
    yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: ring-platform
    namespace: ring-platform-org
    labels:
      app: ring-platform
    spec:
    replicas: 2
    selector:
      matchLabels:
        app: ring-platform
    template:
      metadata:
        labels:
          app: ring-platform
      spec:
        containers:
        - name: ring-platform
          image: ghcr.io/connectplatform/ring:v0.9.18-ring-platform.org-amd64
          ports:
          - containerPort: 3000
            name: http
          env:
          - name: NODE_ENV
            value: "production"
          - name: NEXTAUTH_URL
            value: "https://ring-platform.org"
          - name: NEXT_PUBLIC_API_URL
            value: "https://ring-platform.org"
          resources:
            requests:
              memory: "512Mi"
              cpu: "250m"
            limits:
              memory: "1Gi"
              cpu: "500m"
          livenessProbe:
            httpGet:
              path: /api/health
              port: 3000
            initialDelaySeconds: 30
            periodSeconds: 10
            timeoutSeconds: 5
          readinessProbe:
            httpGet:
              path: /api/health
              port: 3000
            initialDelaySeconds: 5
            periodSeconds: 5
            timeoutSeconds: 3
    ---
    apiVersion: v1
    kind: Service
    metadata:
    name: ring-platform-service
    namespace: ring-platform-org
    annotations:
      metallb.universe.tf/loadBalancerIPs: 10.10.0.41
    spec:
    selector:
      app: ring-platform
    ports:
    - name: http
      port: 80
      targetPort: 3000
      protocol: TCP
    - name: https
      port: 443
      targetPort: 3000
      protocol: TCP
    type: LoadBalancer
    loadBalancerIP: 10.10.0.41

    Конфігурація NGINX Ingress

    ring-platform-ingress.yaml Основний додаток Документація субдомен

    configuration
    yaml
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
    name: ring-platform-ingress
    namespace: ring-platform-org
    annotations:
      kubernetes.io/ingress.class: "nginx"
      nginx.ingress.kubernetes.io/ssl-redirect: "true"
      nginx.ingress.kubernetes.io/rewrite-target: /
      cert-manager.io/cluster-issuer: "letsencrypt-prod"
      nginx.ingress.kubernetes.io/proxy-body-size: "50m"
      nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
      nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
    spec:
    tls:
    - hosts:
      - ring-platform.org
      - www.ring-platform.org
      - docs.ring-platform.org
      secretName: ring-platform-tls
    rules:
    - host: ring-platform.org
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: ring-platform-service
              port:
                number: 80
    - host: www.ring-platform.org
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: ring-platform-service
              port:
                number: 80
    - host: docs.ring-platform.org
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: ring-platform-service
              port:
                number: 80

    Це розгортання Kubernetes забезпечує масштабованість корпоративного рівня, високу доступність та надійне управління трафіком для платформи Ring з використанням балансувальників навантаження HAProxy та MetalLB.

    Docker Deployment для Ring Platform

    Комплексне розгортання Ring Platform використовуючи Docker containers з Kubernetes оркестрацією. Підтримує як розробку, так і production середовища з повною ізоляцією та безпекою.

    Системні вимоги

    Мінімальні вимоги

    • Docker: 24.0+ (з BuildKit підтримкою)
    • Docker Compose: 2.20+
    • Kubernetes: 1.25+ (для production)
    • CPU: 2 cores minimum, 4 cores recommended
    • RAM: 4GB minimum, 8GB recommended
    • Storage: 20GB для production deployment

    Мережеві вимоги

    • Outbound HTTPS: Для завантаження пакетів та API calls
    • Inbound ports: 80/443 для production, 3000 для development
    • Container registry: ghcr.io (GitHub Container Registry)
    • External services: PostgreSQL, Redis, WayForPay, Polygon RPC

    Підтримувані архітектури

    • linux/amd64: Primary production architecture
    • linux/arm64: Secondary support для Apple Silicon development

    Розгортання в розробці

    Docker Compose (Розробка)

    version: '3.9'
    yaml
    services:
    ring-platform:
      build:
        context: .
        dockerfile: Dockerfile
        platform: linux/amd64
      ports:
        - "3000:3000"
      environment:
        - NODE_ENV=development
        - NEXTAUTH_URL=http://localhost:3000
        - NEXT_PUBLIC_API_URL=http://localhost:3000
      volumes:
        - .:/app
        - /app/node_modules
      restart: unless-stopped
    
    postgres:
      image: postgres:15
      environment:
        - POSTGRES_DB=ring_platform
        - POSTGRES_USER=ring
        - POSTGRES_PASSWORD=secure_password
      ports:
        - "5432:5432"
      volumes:
        - postgres_data:/var/lib/postgresql/data
      restart: unless-stopped
    
    volumes:
    postgres_data:

    Швидке налаштування розробки

    Клонувати репозиторій Запустити середовище розробки Переглянути логи Доступ до додатку

    terminal
    bash
    git clone https://github.com/connectplatform/ring.git
    cd ring/ring-platform.org
    
    docker-compose -f docker-compose.dev.yml up -d
    
    docker-compose logs -f ring-platform
    
    open http://localhost:3000

    Виробниче розгортання

    Критичні вимоги до збірки

    [!WARNING] КРИТИЧНО: Ніколи не використовуйте підсвітку синтаксису на стороні сервера або імпорти Mermaid.js на верхньому рівні - викликає 30-секундні затримки та таймаути 503!

    Специфікація платформи

    Завжди збирати з явним зазначенням платформи для вузлів Kubernetes AMD64

    terminal
    bash
    docker build --platform linux/amd64 -t ghcr.io/connectplatform/ring:v0.9.18-ring-platform.org-amd64 -f Dockerfile .

    Конфігурація Docker

    • НЕ виключати директорію docs/ з .dockerignore
    • ОБОВ'ЯЗКОВО копіювати директорії lib/ та docs/ на етапі runtime Dockerfile
    • Використовувати динамічні імпорти для клієнтських бібліотек типу Mermaid.js

    Процес збірки та розгортання

    Крок 1: Зібрати образ Docker

    terminal
    bash
    cd ring-platform.org
    docker build --platform linux/amd64 -t ghcr.io/connectplatform/ring:v0.9.18-ring-platform.org-amd64 -f Dockerfile .

    Крок 2: Надіслати до реєстру

    terminal
    bash
    docker push ghcr.io/connectplatform/ring:v0.9.18-ring-platform.org-amd64

    Крок 3: Розгорнути в Kubernetes

    ssh k8s-control-01 'kubectl -n ring-platform-org set image \

    terminal
    bash
    deployment/ring-platform ring-platform=ghcr.io/connectplatform/ring:v0.9.18-ring-platform.org-amd64'

    Крок 4: Моніторити розгортання

    terminal
    bash
    ssh k8s-control-01 'kubectl -n ring-platform-org rollout status deployment/ring-platform'
    ssh k8s-control-01 'kubectl -n ring-platform-org get pods -l app=ring-platform'

    Розгортання Kubernetes

    Огляд

    Ring Platform розгортається в Kubernetes з використанням HAProxy як зовнішнього балансувальника навантаження та MetalLB для внутрішньої балансировки сервісів. Це забезпечує масштабованість корпоративного рівня, високу доступність та управління трафіком.

    Попередні вимоги

    • Кластер Kubernetes v1.29+
    • Встановлений HAProxy LoadBalancer (10.10.0.30)
    • Налаштований MetalLB з пулом IP (10.10.0.40-10.10.0.50)
    • Cilium CNI з шифруванням WireGuard
    • NGINX Ingress Controller (опціонально)

    Конфігурація DNS

    Налаштуйте вашого DNS-провайдера для вказівки ring-platform.org на ваші публічні IP:

    Основна настройка (Рекомендується) Розширена настройка з балансуванням навантаження

    terminal
    bash
    ring-platform.org      A     195.95.233.69    # HAProxy LoadBalancer
    www.ring-platform.org  CNAME ring-platform.org
    
    ring-platform.org      A     195.95.233.69    # Основний (HAProxy)
    ring-platform.org      A     195.95.233.15    # Другорядний (MetalLB)

    Налаштування простору імен

    Створити простір імен Ring Встановити як простір за замовчуванням для розгортання

    terminal
    bash
    kubectl create namespace ring-platform-org
    
    kubectl config set-context --current --namespace=ring-platform-org

    Розгортання додатку Ring Platform

    ring-platform-deployment.yaml Сервіс Ring Platform з MetalLB

    configuration
    yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: ring-platform
    namespace: ring-platform-org
    labels:
      app: ring-platform
    spec:
    replicas: 2
    selector:
      matchLabels:
        app: ring-platform
    template:
      metadata:
        labels:
          app: ring-platform
      spec:
        containers:
        - name: ring-platform
          image: ghcr.io/connectplatform/ring:v0.9.18-ring-platform.org-amd64
          ports:
          - containerPort: 3000
            name: http
          env:
          - name: NODE_ENV
            value: "production"
          - name: NEXTAUTH_URL
            value: "https://ring-platform.org"
          - name: NEXT_PUBLIC_API_URL
            value: "https://ring-platform.org"
          resources:
            requests:
              memory: "512Mi"
              cpu: "250m"
            limits:
              memory: "1Gi"
              cpu: "500m"
          livenessProbe:
            httpGet:
              path: /api/health
              port: 3000
            initialDelaySeconds: 30
            periodSeconds: 10
            timeoutSeconds: 5
          readinessProbe:
            httpGet:
              path: /api/health
              port: 3000
            initialDelaySeconds: 5
            periodSeconds: 5
            timeoutSeconds: 3
    ---
    apiVersion: v1
    kind: Service
    metadata:
    name: ring-platform-service
    namespace: ring-platform-org
    annotations:
      metallb.universe.tf/loadBalancerIPs: 10.10.0.41
    spec:
    selector:
      app: ring-platform
    ports:
    - name: http
      port: 80
      targetPort: 3000
      protocol: TCP
    - name: https
      port: 443
      targetPort: 3000
      protocol: TCP
    type: LoadBalancer
    loadBalancerIP: 10.10.0.41

    Конфігурація NGINX Ingress

    ring-platform-ingress.yaml Основний додаток Документація субдомен

    configuration
    yaml
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
    name: ring-platform-ingress
    namespace: ring-platform-org
    annotations:
      kubernetes.io/ingress.class: "nginx"
      nginx.ingress.kubernetes.io/ssl-redirect: "true"
      nginx.ingress.kubernetes.io/rewrite-target: /
      cert-manager.io/cluster-issuer: "letsencrypt-prod"
      nginx.ingress.kubernetes.io/proxy-body-size: "50m"
      nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
      nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
    spec:
    tls:
    - hosts:
      - ring-platform.org
      - www.ring-platform.org
      - docs.ring-platform.org
      secretName: ring-platform-tls
    rules:
    - host: ring-platform.org
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: ring-platform-service
              port:
                number: 80
    - host: www.ring-platform.org
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: ring-platform-service
              port:
                number: 80
    - host: docs.ring-platform.org
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: ring-platform-service
              port:
                number: 80

    Це розгортання Kubernetes забезпечує масштабованість корпоративного рівня, високу доступність та надійне управління трафіком для платформи Ring з використанням балансувальників навантаження HAProxy та MetalLB.