Перейти к содержимому

Как развернуть, настроить и поддерживать Corta: руководство DevOps

Это руководство предназначено для специалистов DevOps и IT-администраторов, которые занимаются установкой, настройкой и эксплуатацией платформы Corta в корпоративной инфраструктуре.

Условия, системные и инфраструктурные требования

Перед началом установки убедитесь, что оборудование и программное окружение соответствуют минимальным требованиям Corta:

Аппаратные требования

  • Процессор: Intel Xeon или AMD Ryzen (4 ядра и выше, поддержка виртуализации).
  • Оперативная память: 16 ГБ ОЗУ (допустимо от 8 ГБ для небольших проектов).
  • Диск: NVMe SSD 100 ГБ+ (рекомендуется 500 ГБ для крупных внедрений).
  • Сеть: Поддержка гигабитного Ethernet.

Программные требования

  • ОС:
    • Ubuntu Server 20.04+ (рекомендуется)
    • Debian 11, CentOS 8/9 — альтернативные варианты
    • Astra Linux (версии Common Edition 2.12+, Special Edition 1.7+)
    • РЕД ОС (версия 7.3+)
    • Альт Линукс (версии 8.5+)
  • Docker или Podman — для контейнерного деплоя компонентов.
  • БД:
    • PostgreSQL 13+ (рекомендуется)
    • MySQL поддерживается, но предпочтение отдается PostgreSQL.

Сетевые порты

  • 80 (HTTP) — веб-интерфейс (или прокси).
  • 443 (HTTPS) — защищённый доступ (опционально).
  • 5432 (PostgreSQL) — между платформой и базой данных.
  • Дополнительные порты могут понадобиться для API, интеграций и т.п.

Как подготовить окружение для установки Corta

Требуется установить:

Docker

Для работы с предсобранными образами необходим установленный и активный Docker на каждом сервере, где планируется запуск Corta. Инструкции по установке Docker доступны на официальном сайте Docker.
Вы также можете загрузить архив с исходными файлами с нашей страницы релизов либо собрать образы самостоятельно.

Docker Compose

Этот инструмент значительно облегчает управление многоконтейнерными проектами. Ознакомьтесь с документацией Docker Compose для настройки.

Как устроена архитектура и репозитории платформы Corta

Архитектура платформы Corta

Платформа состоит из интегрированных компонентов:

  • Веб-приложения взаимодействуют с сервером через REST API.
  • Аутентификация осуществляется через отдельный сервис.
  • Сервер обрабатывает запросы, работает с внутренними службами (БД, файловое хранилище, трекинг ошибок и логов, автоматизация - Corredor и т. д.).
  • Вспомогательные сервисы: федерация данных, файловое хранилище, рассылка почты и др.

Репозитории Corta и их структура

  • corta — основной моно-репозиторий с ядром платформы
  • corta-server-corredor — модуль автоматизации Corredor
  • corta-docs — вся документация проекта

Как настроить конфигурационные файлы системы

Платформа настраивается через файл окружения .env (в корне проекта, рядом с docker-compose.yaml).
Файл .env управляет параметрами Docker Compose, переменными среды и настройками сервисов.

Используйте переменные из .env в файле docker-compose.yaml через синтаксис ${ВАША_ПЕРЕМЕННАЯ}.

Как развернуть платформу Corta локально

Структура файлов и папок

📁 my-corta
  📄 .env 
  📄 docker-compose.yaml
  📁 data
    📁 server   # директория для данных сервера и загруженных файлов
    📁 db       # директория для хранения данных БД

Рекомендуется сменить владельца на контейнер Docker для папок data/server и data/db:

chown 1001:1001 data/db
chown 4242:4242 data/server 

 Пример docker-compose.yaml для Corta

version: '3.5'
services:
  server:
    image: cortaproject/corta:${VERSION}
    restart: always
    env_file: [ .env ]
    depends_on: [ db ] 
    ports: [ "127.0.0.1:18080:80" ]

  db:
    image: postgres:15
    restart: always
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U  corteza"]
      interval: 10s
      timeout: 5s
      retries: 5
    volumes:
      - "dbdata:/var/lib/postgresql/data"
    environment:
      POSTGRES_USER: corta
      POSTGRES_PASSWORD: corta

volumes:
  dbdata:

Поддерживаются PostgreSQL версии 13, 14, 15.

 Как запустить сервисы

В корневой директории проекта выполните:

docker-compose up -d 

Проверьте запуск командой:

docker-compose ps 

Результат:

      Name                  Command                State               Ports
----------------------------------------------------------------------------
demo_pgsql_db_1      docker-entrypoint.sh psql     Up (healthy)      5432/tcp
demo_pgsql_server_1  bin/server serve-api          Up (healthy)      127.0.0.1:18080->80/tcp 

Как проверить работу развертывания

Если не настроены SMTP-параметры, все регистрации подтверждаются автоматически.

Установка и настройка PostgreSQL

sudo apt install -y postgresql postgresql-contrib
sudo -u postgres psql
# Внутри psql:
CREATE DATABASE corta_db; 
CREATE USER corta_user WITH ENCRYPTED PASSWORD 'сложный_пароль';
GRANT ALL PRIVILEGES ON DATABASE corta_db TO corta_user;
\q

Редактируем доступ в /etc/postgresql/13/main/pg_hba.conf:

host    all             corta_user       127.0.0.1/32            md5 

Перезапускаем БД:

sudo systemctl restart postgresql 

Как развернуть Corta в онлайн-режиме (рабочая инфраструктура)

Организация структуры каталогов

📁 my-proxy
  📄 docker-compose.yaml
  📄 custom.conf
📁 my-corta
  📄 .env
  📄 docker-compose.yaml
  📁 data 
    📁 server
    📁 db

 При необходимости использования прокси

Настройка обратного прокси

В каталоге my-proxy добавьте docker-compose.yaml:

version: '3.5'
services:
  nginx-proxy:
    image: nginxproxy/nginx-proxy 
    container_name: nginx-proxy
    restart: always
    networks:
      - proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./certs:/etc/nginx/certs
      - ./htpasswd:/etc/nginx/htpasswd
      - ./vhost.d:/etc/nginx/vhost.d
      - ./html:/usr/share/nginx/html
      - ./custom.conf:/etc/nginx/conf.d/custom.conf:ro
      - /var/run/docker.sock:/tmp/docker.sock:ro

  nginx-letsencrypt:
    image: nginxproxy/acme-companion
    container_name: nginx-letsencrypt
    restart: always
    depends_on:
      - nginx-proxy
    volumes_from:
      - nginx-proxy:rw
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - acme:/etc/acme.sh

networks:
  proxy:
    external: true

volumes:
  acme: 

custom.conf (пример):

client_max_body_size 1g;
proxy_read_timeout 86400s;
client_header_buffer_size 64k;
large_client_header_buffers 4 64k;
proxy_ignore_client_abort  on; 
proxy_buffer_size          128k;
proxy_buffers              4 256k;
proxy_busy_buffers_size    256k;

Запуск:

docker-compose up -d 

Проверьте запуск так же через docker-compose ps.

Конфигурация docker-compose.yaml для Corta (my-corta)

version: '3.5'
services:
  server:
    image: corta/corta:${VERSION}
    networks: [ proxy, internal ]
    restart: always
    env_file: [ .env ] 
    depends_on: [ db ]
    volumes: [ "./data/server:/data" ]
    environment:
      VIRTUAL_HOST: ${DOMAIN}
      LETSENCRYPT_HOST: ${DOMAIN}

  db:
    image: postgres:15
    networks: [ internal ]
    restart: always
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U corteza"]
      interval: 10s
      timeout: 5s
      retries: 5
    environment:
      POSTGRES_USER: corta
      POSTGRES_PASSWORD: corta

networks:
  internal: {}
  proxy:
    external: true

Пример .env для продакшн-развертывания

DOMAIN=your-demo.example
VERSION=

DB_DSN=postgres://corta:corta@db:5432/corta?sslmode=disable

HTTP_WEBAPP_ENABLED=true
# AUTH_JWT_SECRET=уникальная_строка_более_30_символов

#SMTP_HOST=smtp-server.example:587
#SMTP_USER=Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript.
#SMTP_PASS=your-smtp-password
#SMTP_FROM='"Demo" <Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript.>' 

Как запустить сервисы

В каталоге my-corta выполните:

docker-compose up -d 

 Проверьте запуск:

docker-compose ps 

Ожидаемый вывод:

      Name                        Command                    State              Ports
----------------------------------------------------------------------------------------
my_production_demo_db_1      docker-entrypoint.sh postgres   Up (healthy)   5432/tcp
my_production_demo_server_1  /bin/corta-server serve-api   Up (healthy)   80/tcp 

Первичная настройка, администрирование и безопасность

  1. Откройте сервис в браузере.
  2. Выполните подключение к базе согласно переменным docker-compose.
  3. Создайте пользователя-администратора.
  4. Конфигурируйте бизнес-процессы и приложения через веб-интерфейс.

Мониторинг, резервное копирование и обслуживание

Логи:

docker logs corta_server 

Резервное копирование базы:

sudo -u postgres pg_dump corta_db > backup_$(date +%Y%m%d).sql 

Полезные команды для работы с Docker и Docker Compose

Таблица основных команд Docker:

ЗадачаКоманда
Выполнить команду в запущенном контейнере

docker exec -it <имя_контейнера> help

Выполнить команду в не запущенном контейнере

docker run -it --rm <имя_образа> help

Таблица основных команд Docker Compose:

ЗадачаКоманда
Остановить и удалить контейнеры с томами

docker-compose rm --force --stop -v

Смотреть логи всех контейнеров

docker-compose logs --follow --tail 20

Смотреть логи только для выбранного сервиса

docker-compose logs --follow --tail 20 <имя_сервиса>

Запуск bash в контейнере

docker-compose exec <имя_сервиса> bash

DevOps-методики

  • Corta рекомендуется контейнеризировать (Docker/Podman), что обеспечивает гибкость, масштабируемость и быстрое восстановление.
  • Для гибридных и масштабных внедрений возможна настройка кластерных и облачных сценариев (см. официальную документацию).
  • Регулярно используйте резервное копирование — как платформы, так и баз данных.

Платформа Corta — это не просто Low-Code/No-Code решение для компаний, а современная технологическая среда, соответствующая будущим трендам SaaS: гибридность, самостоятельность, кастомизация, DevOps-автоматизация. Теперь вы сможете запускать новые бизнес-приложения на Corta в считанные минуты как локально, так и в облаке, обеспечивать безопасность, масштабируемость и независимость вашего бизнеса.