# Проект dashboard'а команды Printum

**Основные возможности и функционал:**

1. Резервирование виртуальной машины (далее - ВМ) за исполнителем с указанием задачи.

2. Редактирование данных ВМ и удаление из списка.

3. Управление ВМ - запуск, остановка и перезагрузка.



***Описание и функционал:***



    Перед первоначальным запуском необходимо настроить параметры в файле .env:

DB_TYPE - поддерживаемые БД SQLite (указать - sqlite), PostgreSQL (указать - postgresql), MySQL (указать - mysql).



**<u>При установке параметра == sqlite, указывать только DB_NAME.</u>**

DB_USER - имя пользователя БД.

DB_PASS - пароль пользователя БД

DB_HOST - хост БД.

DB_PORT - порт БД.

DB_NAME - имя БД.



SESSION_TYPE - место хранения сессии пользователя, возможна установка параметров file (хранение сессии локально), redis (хранение сессии на сервере Redis)

REDIS_HOST - хост сервера Redis.

REDIS_PORT - порт сервера Redis.

REDIS_DB - номер БД сервера Redis.

REDIS_PASS - пароль БД сервера Redis.



SESSION_LIFETIME - время жизни сессии пользователя.

SESSION_KEY_PREFIX - префикс для сессии.



HYPER1_HOST - хост 1-го гипервизора.  

HYPER2_HOST - хост 2-го гипервизора.
HYPER3_HOST - хост 3-го гипервизора.

HYPER4_HOST - хост 4-го гипервизора.
HYPER1_USER - пользователь 1-го гипервизора.

HYPER2_USER - пользователь 2-го гипервизора.

HYPER3_USER - пользователь 3-го гипервизора.

HYPER4_USER - пользователь 4-го гипервизора.

HYPER1_PASS - пароль 1-го гипервизора.

HYPER2_PASS - пароль 2-го гипервизора.

HYPER3_PASS - пароль 3-го гипервизора.

HYPER4_PASS - пароль 4-го гипервизора.



DISABLING_TASK - отключение выполнения фоновых задач (треюуется рестарт сервиса).



PERFORMANCE - параметр устанавливающий как производить полное обновление. По времени (параметр - time) или череч определенный промежуток времени (параметр - period).

FULL_UPDATE - при выборе параметра period установить количество минут через какое проводить полное обновление.

HOUR_FULL_UPDATE - при выборе параметра time установить время в формате 00:00 в которое будет запаскаться полное обновление.

POWER_STATUS_UPDATE - период в минутах через которое будет запускаться обновление статусов ВМ.



REGISTER_OFF - при установленном значение True будет отключена регистрация.

SECRET - секретный ключ.



***Запуск***

    Для запуска сервиса выполните скрипт start.sh с правами администратора. При передаче скрипту параметра -dev приложение запустится в режиме разработки.

Пример:

```bash
sudo ./start.sh
```

При таком запуске приложение будет запущено на 5000 порту.



```bash
sudo ./start.sh -dev
```

При таком запуске приложение будет запущено в режиме разработчика.



```bash
sudo ./start.sh 80
```

При таком запуске приложение будет запущено на 80 порту (порт указать возможно любой).



***Остановка***

Для остановки выполните скрипт stop.sh

Пример:

```bash
sudo ./stop.sh
```



***Обновление***

    Перед обновление <mark>ОБЯЗАТЕЛЬНО</mark> сделать снапшот системы и остановить сервис. После запустить выполнение скрипта create-update.sh (файлы которые "попадут" в обновление указываются в upd-file.txt)

```bash
sudo ./create-update.sh
```

При выполнении с параметром -copy созданный во время выполнения скрипта архив будет передан на сервер проекта в директорию /tmp/update-dashboard (будет запрошен пароль от пользователя user), далее необходимо созданный архив распаковать на сервере проекта в директорю /tmp/update-dashboard и выполнить скрипт update.sh

```bash
sudo ./update.sh
```

При передачи параметра -all файлы которые есть в обновлении но нет в проекте будут добавлены без запроса, иначе на каждый файл будет запрос добавления (обновление будет производится согласно файла upd-file.txt)
