Files
docs/quick-start.md
T

150 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Быстрый старт
## Требования
- Docker и Docker Compose v2.
- Доступ к приватным исходникам всех приложений, если нужны `frontend`, `adminPanel`, `sovamed` или `kiosk`.
- Свободные порты `80`, `443`, `5432`, `3000`, `3001`, `8080`, `9090` в зависимости от запускаемого набора сервисов.
- Локальный `.env` в корне репозитория.
## Запуск dev-окружения
Для безопасной локальной разработки используйте отдельный local-контур. Он не читает корневой `.env`, не использует продовые домены и поднимает отдельные контейнеры:
```bash
make local-up
```
Локальные адреса:
- backend: `http://localhost:8081`;
- cabinet: `http://localhost:8082`;
- PostgreSQL: `localhost:15432`;
- Bitrix MySQL mock: `localhost:13306`;
- Redis: `localhost:16379`.
Остановка:
```bash
make local-down
```
Остановка с удалением локальных volumes:
```bash
make local-clean
```
Повторное наполнение локальных БД тестовыми данными:
```bash
make local-seed
```
Сборка ассетов cabinet. Нужна, если `http://localhost:8082/login` отдает `500` с ошибкой про `public/build/entrypoints.json`:
```bash
make local-assets
```
Проверка, что локальный контур работает:
```bash
make local-smoke
```
Исторические команды ниже используют общий корневой `.env`. Не запускайте их для локальной разработки, если есть риск обращения к внешним окружениям.
Из корня репозитория:
```bash
make dev
```
Команда собирает и запускает:
- сети из `environments/docker-compose.networks.yml`;
- PostgreSQL и Redis из `environments/docker-compose.dbs.yml`;
- nginx, PHP-FPM и Next.js из `environments/docker-compose.apps.yml`;
- Node.js helper-контейнер из `environments/docker-compose.dev.yml`.
Фактически `make dev` вызывает `docker compose` с `COMPOSE_PROJECT_ENV=dev` и `COMPOSE_NODE_ENV=development`.
## Запуск полного набора
```bash
make up
```
Этот сценарий использует production-переменные окружения и дополнительно подключает мониторинг из `environments/docker-compose.monitoring.yml`.
## Остановка
```bash
make down
```
Полная остановка с удалением volumes:
```bash
make clean
```
Полная очистка Docker на машине:
```bash
make prune
```
## Команды внутри контейнеров
Установка PHP-зависимостей backend:
```bash
docker exec -it php84 composer install
```
Установка PHP-зависимостей cabinet:
```bash
docker exec -it php82 composer install
```
Установка и сборка frontend-ассетов cabinet:
```bash
docker exec -it php82 yarn install
docker exec -it php82 yarn dev
```
Миграции backend:
```bash
docker exec -it php84 php bin/console doctrine:migrations:migrate
```
Миграции cabinet:
```bash
docker exec -it php82 php bin/console doctrine:migrations:migrate
```
## Локальные домены
nginx-конфиги ожидают домены вроде:
- `api.sovamed.ru` -> `apps/backend/public`;
- `cabinet.sovamed.ru` -> `apps/cabinet/public`;
- `dev.sovamed.ru`, `dev.wmtmed.ru`, `adm.sovamed.ru` и другие домены для отсутствующих сейчас приложений.
Для локальной разработки обычно нужно добавить домены в `/etc/hosts` на `127.0.0.1` и иметь dev-сертификаты в `infrastructure/nginx/certs`.
## Проверка состояния
```bash
docker compose ps
docker logs nginx --tail=100
docker logs php84 --tail=100
docker logs php82 --tail=100
```