Files
docs/environment.md
T

3.4 KiB

Окружение

Безопасный локальный контур

Для локальной разработки добавлен отдельный контур, который не использует продовые доступы:

  • compose-файл: environments/docker-compose.local.yml;
  • переменные Docker Compose: local/.env.local;
  • пример переменных: local/.env.local.example;
  • локальный backend env: apps/backend/.env и apps/backend/.env.local;
  • локальный cabinet env: apps/cabinet/.env и apps/cabinet/.env.local;
  • seed PostgreSQL: local/postgres/init;
  • seed локального Bitrix MySQL: local/mysql-bitrix/init.

Все подключения направлены только на Docker-сервисы postgres-local, bitrix-mysql-local и redis-local.

make local-up
make local-seed
make local-down

Локальные базы:

  • sova_backend_local - основная БД backend;
  • sova_cabinet_local - основная БД cabinet;
  • sova_bitrix_local - mock БД Bitrix на MySQL.

Внешние интеграции в local env заменены mock URL вроде http://mock-mis.local; настоящие продовые URL и токены не используются.

Корневой .env

Корневой .env подключается в Makefile и передается в Docker Compose через --env-file. В нем должны быть значения для:

  • ROOT_DIR - абсолютный путь проекта на сервере для cron-скриптов;
  • PG_DB, PG_USER, PG_PASS - параметры PostgreSQL;
  • REDIS_PASSWORD - пароль Redis;
  • GF_SECURITY_ADMIN_USER, GF_SECURITY_ADMIN_PASSWORD - учетные данные Grafana.

Не храните реальные значения в документации. Для новых разработчиков лучше завести .env.example без секретов.

Переменные приложений

Внутри apps/backend и apps/cabinet есть собственные .env, .env.dev, .env.test. Они управляют Symfony-приложениями: подключениями к БД, внешними API, mailer, Redis, JWT и режимом окружения.

Backend использует несколько Doctrine connections:

  • default - основная PostgreSQL-база;
  • mysql - Bitrix MySQL;
  • cabinet - PostgreSQL-база старого кабинета.

Cabinet использует:

  • default - PostgreSQL;
  • bitrix - Bitrix MySQL.

Режимы Compose

COMPOSE_PROJECT_ENV влияет на монтирование nginx/PHP-конфигов:

  • dev - берутся файлы из infrastructure/nginx/dev и php-ini-dev.ini;
  • prod - берутся файлы из infrastructure/nginx/prod и php-ini-prod.ini.

COMPOSE_NODE_ENV выставляется в Makefile, но в docker-compose.dev.yml сейчас явно задан NODE_ENV=development.

Сертификаты

nginx слушает 80 и 443; HTTPS-конфиги используют файлы из infrastructure/nginx/certs. Для разработки есть цель:

make copy-certs

Она копирует сертификаты с удаленного хоста, поэтому требует доступ к соответствующему SSH alias.