# polaris-local-infra

Минимальная локальная инфра для polaris-service: nginx + php-fpm + Postgres + Redis.
Заменяет прежний `~/Desktop/dfi/PolarisInfra` (traefik, MySQL, pgAdmin, phpMyAdmin,
Portainer, redis-commander и Ubuntu-образ с supervisor'ом внутри).

## Запуск

Сначала погасить старую инфру — она занимает порты 80/5432/6379:

```bash
cd ~/Desktop/dfi/PolarisInfra && docker compose --profile all down
```

Затем:

```bash
cd polaris-local-infra
cp .env.example .env      # опционально, если нужны другие порты
docker compose up -d --build
```

Приложение: http://localhost

## Контейнеры

| контейнер | что |
|---|---|
| `polaris-service-new` | php-fpm 8.3 + composer + artisan (имя сохранено ради `.mcp.json` и `CLAUDE.md`) |
| `polaris-nginx` | nginx, `:80` |
| `polaris-postgres` | Postgres 17, `:5432`, том `polaris-local_polaris_pg_data` |
| `polaris-redis` | Redis, `:6379` |

Корень репозитория смонтирован в `/var/www`, document root — `/var/www/public`.

## Команды

```bash
docker exec -i polaris-service-new php artisan <cmd>
docker exec -i polaris-service-new composer install
docker exec -i polaris-service-new vendor/bin/pint --dirty
```

## База

Поднимается чистой; `postgres/initdb/01-schemas.sql` создаёт только пустые схемы
(`collector_drpeso`, `collector_usuarios_drpeso`, `collector_sms`, `collector_email`,
`collector_telephony`, `collector_notifications`) — их ждут `search_path` коннектов
в `config/database.php`.

Накатить дамп:

```bash
docker exec -i polaris-postgres psql -U postgres -d app-db < dump.sql
```

Пересоздать базу с нуля (initdb-скрипты отрабатывают только на пустом томе):

```bash
docker compose down -v && docker compose up -d
```

## Xdebug

Выключен по умолчанию (`app/xdebug.ini`, `xdebug.mode=off`) — `develop` даёт ~5x просадку.
Включить: поменять `xdebug.mode=debug` и `docker compose restart app` (именно restart,
не reload php-fpm).

## Крон и очереди

Не поднимаются. Заготовки `scheduler` и `worker` лежат закомментированными в
`docker-compose.yml`.
