HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/heifetz/heifetz-app/README.md
## Разворачивание

Для запуска проекта нужно создать папки в корне проекта и дать права на запись:

- sessions
- logs
- tmp
- uploads

```
mkdir sessions && mkdir logs && mkdir tmp && mkdir uploads
chmod 777 sessions
chmod 777 logs
chmod 777 tmp
chmod 777 uploads
```

### Установка PHP библиотек
Нужно что-то сделать с доступами в наш репозиторий с hello-bot
```
composer install
```

### Сборка фронта

```
yarn
yarn run build
```

Скопировать и настроить под себя окружение:

- .env.example -> .env

## Поднимаем проект в docker

```
// Linux
docker-compose up -d

// macOS
docker compose up -d
```

## БД

Из дампа необходимо развернуть базу

### Запуск миграций

Миграции можно запускать двумя способами:

- из docker контейнера `php migration.php`
- или из корня проекта `docker exec $(docker ps --filter name=php -q) php migration.php`

## Сборка блокировщика страниц

```
GOOS=linux GOARCH=amd64 go build -o daemons/locker docker/locker/files/locker.go
```

---

## Тестирование

### Общая настройка

Скопировать и настроить под себя codeception:

- codeception.yml.example -> codeception.yml

### При написании нового теста

```
git fetch
git checkout -f develop
git reset --hard origin/develop
```

### Unit

Скопировать и настроить под себя codeception:

- tests/unit.suite.yml.example -> tests/unit.suite.yml

Запуск: `codecept run unit`

### Acceptance

Установить Java:
`sudo apt install default-jre`

Скопировать и настроить под себя codeception:

- tests/acceptance.suite.yml.example -> tests/acceptance.suite.yml

### Тестирование в docker

Для надо поднять локальный Selenium:

Запустить Selenium Server:

```
// Linux
java -Dwebdriver.chrome.driver=./tests/drivers/linux/chromedriver89 -jar ./tests/selenium-server-standalone-3.141.59.jar

// macOS
java -Dwebdriver.chrome.driver=./tests/drivers/mac/chromedriver101 -jar ./tests/selenium-server-standalone-3.141.59.jar
```

Запустить тесты из контейнера:
`php vendor/codeception/codeception/codecept run acceptance`

Если нужно поднять окружение в докере, добавьте в корень auth.json вида, токен можно получить тут: https://gitlab.com/-/profile/personal_access_tokens
Не забудьте добавить права на чтение репозиториев и api, иначе не заработает.

```json
{
    "gitlab-oauth": {
        "gitlab.com": "YOUR_TOKEN"
    }
}
```

Обновление сертификатов
```shell
sudo certbot --expand -d hrprofit.ru,atlant.hrprofit.ru,foach.hrprofit.ru,lider.hrprofit.ru,rm.hrprofit.ru,sip.hrprofit.ru,kroitoru.hrprofit.ru,bizbenjur.hrprofit.ru,kadrunion.hrprofit.ru,startaff.hrprofit.ru,vak.hrprofit.ru,sandbox.hrprofit.ru,smartaliance.hrprofit.ru
```