Перейти к содержанию

Инфраструктура

Руководство по развертыванию полной инфраструктуры Р13.Орбита с использованием Docker Compose.

Docker Compose Stack

Р13.Орбита предоставляет готовую инфраструктуру в docker-compose.yml.

Запуск инфраструктуры

docker-compose up -d

Это запустит:

  • PostgreSQL (метаданные Р13.Орбита) - порт 5433
  • PostgreSQL (Keycloak) - порт 5432
  • ClickHouse (аналитические данные) - порты 8123, 9000
  • Keycloak (SSO аутентификация) - порт 8080

Проверка статуса

docker-compose ps

Все сервисы должны быть в статусе Up.


Компоненты инфраструктуры

PostgreSQL (Метаданные)

Порт: 5433 База данных: orbita

Подключение:

psql -h localhost -p 5433 -U orbita_user -d orbita

Для Р13.Орбита в .env:

METADATA_DB_URL=postgresql://orbita_user:password@localhost:5433/orbita


ClickHouse (Аналитические данные)

Порт HTTP: 8123 Порт Native: 9000

Проверка:

curl http://localhost:8123
# Ok.

clickhouse-client

Для Р13.Орбита в .env:

CLICKHOUSE_HOST=localhost
CLICKHOUSE_PORT=8123
CLICKHOUSE_DATABASE=default


Keycloak (SSO)

Порт: 8080 Admin UI: http://localhost:8080 Credentials: admin / admin

Настройка realm:

  1. Войдите в админку: http://localhost:8080
  2. Создайте realm orbita
  3. Создайте client orbita-api
  4. Скопируйте client_secret

Для Р13.Орбита в .env:

AUTH_ENABLED=true
KEYCLOAK_SERVER_URL=http://localhost:8080
KEYCLOAK_REALM=orbita
KEYCLOAK_CLIENT_ID=orbita-api
KEYCLOAK_CLIENT_SECRET=your-secret-here


Профили Docker Compose

Запуск с Р13.Орбита API

docker-compose --profile with-api up -d

Запускает все сервисы, включая orbita-api на порту 3001.


Volumes и персистентность

Данные сохраняются в Docker volumes:

docker volume ls | grep orbita
  • orbita_postgres_data - БД метаданных
  • orbita_clickhouse_data - ClickHouse данные Удаление всех данных:
    docker-compose down -v
    

Резервное копирование

ClickHouse

# Backup
docker exec clickhouse clickhouse-client --query "BACKUP DATABASE default TO Disk('backups', 'backup_$(date +%Y%m%d).zip')"

# Restore
docker exec clickhouse clickhouse-client --query "RESTORE DATABASE default FROM Disk('backups', 'backup_20240315.zip')"

PostgreSQL

# Backup
docker exec postgres-metadata pg_dump -U orbita_user orbita > backup.sql

# Restore
docker exec -i postgres-metadata psql -U orbita_user orbita < backup.sql

Production Development

Для production используйте:

  • Kubernetes вместо Docker Compose
  • Managed PostgreSQL (AWS RDS, Azure Database)
  • ClickHouse Cluster (не standalone)
  • External LoadBalancer (Nginx, Traefik)
  • Secrets management (Vault, AWS Secrets Manager)

Следующие шаги