Metadata-Version: 2.1
Name: postinstall
Version: 1.1.0
Summary: A Dialog TUI application for postinstall system configuration
Author: LLC Technologies and Communication
Author-email: devteam@texnico.ru
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent :: Linux
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: pythondialog<4.0.0,>=3.5.3

## Документация Postinstall

Панель Postinstall представляет собой интерфейс для настройки системы после её установки. Она обеспечивает удобный способ управления различными аспектами конфигурации системы, начиная от сетевых настроек и заканчивая установкой баз данных и веб-интерфейсов. Панель позволяет пользователю выбирать необходимые параметры через графический интерфейс на основе диалоговых окон.
### **1. Сетевые настройки**

Раздел "Сетевые настройки" предназначен для конфигурации сетевых параметров системы, включая настройку как статического IP-адреса, так и динамического (DHCP). Этот раздел позволяет управлять подключениями к сети через интуитивно понятный интерфейс, обеспечивая гибкость и удобство.

#### **1.1 Выбор сетевого интерфейса**

Прежде чем приступить к настройке сети, необходимо выбрать сетевой интерфейс, который вы хотите сконфигурировать. На экране будет представлен примерный список доступных интерфейсов. Вы выбираете нужный интерфейс, после чего ему будут доступны дальнейшие настройки.

![Номер лицензии](screenshots/network_interface.png)


#### **1.2 Настройка DHCP**

Если вы предпочитаете автоматическое назначение сетевых параметров, выберите опцию "Настроить DHCP". Эта опция автоматически получит IP-адрес и другие параметры сети от DHCP-сервера и внесет изменения в файл конфигурации `/etc/network/interfaces`. Также система обновит DNS-серверы в файле `/etc/resolv.conf`.

#### **1.3 Настройка статического IP**

Для ручной настройки сетевых параметров выберите "Настроить статический IP". Здесь вам будет предложено ввести IP-адрес, маску подсети и шлюз вручную. Эти значения будут записаны в файл `/etc/network/interfaces` и применены при следующем перезапуске сетевого интерфейса.

#### **1.4 Настройка CIDR**

Опция "Настроить CIDR" позволяет указать сетевой диапазон в формате CIDR (например, `192.168.1.0/24`). CIDR (Classless Inter-Domain Routing) предоставляет гибкость при настройке подсетей, позволяя администратору точно указать, какой диапазон IP-адресов будет использоваться в сети.

![Номер лицензии](screenshots/choose_settings.png)


#### **1.5 Сохранение и отмена изменений**

Важной особенностью панели является возможность предварительного просмотра изменений. Все настройки сохраняются только после выбора опции "Сохранить и выйти" в главном меню. Это предотвращает применение ненужных или ошибочных настроек и позволяет пользователю отменить изменения до их применения, просто выбрав опцию "Выйти без изменений".

---

### **2. Обновление системы**

Раздел "Обновление системы" предоставляет возможность поддерживать систему актуальной, выполняя обновление списков пакетов и установку доступных обновлений. Этот процесс включает в себя две основные задачи: обновление списков пакетов и установку обновлений.

#### **2.1 Обновление списков пакетов**

Первый шаг — обновление списков пакетов. Эта операция выполняется с использованием команды `apt update`, которая обновляет информацию о доступных пакетах и их версиях, загружая актуальные данные из указанных в системе репозиториев.

#### **2.2 Установка обновлений**

После обновления списков пакетов можно приступить к установке доступных обновлений с помощью команды `apt upgrade`. Эта команда загружает и устанавливает последние версии всех установленных пакетов, что обеспечивает безопасность и стабильность системы. Весь процесс можно контролировать через интерфейс панели, который предоставляет удобное отображение статуса обновлений.

![Номер лицензии](screenshots/update.png)


---

### **3. Добавить пользователя**

В этом разделе реализована функция управления учетными записями пользователей, позволяющая создавать новых пользователей и задавать им права доступа.

#### **3.1 Создание нового пользователя**

Для добавления нового пользователя введите его имя и другие необходимые параметры. Эта операция позволяет администратору создавать учетные записи для сотрудников.

![Номер лицензии](screenshots/add_user.png)


#### **3.2 Установка пароля**

После создания учетной записи необходимо задать пароль для нового пользователя. Это важный шаг, поскольку от него зависит безопасность учетной записи. После необходимо повторить пароль для избежания ввода некорректных данных.

![Номер лицензии](screenshots/user_password.png)


#### **3.3 Назначение прав администратора**

При создании нового пользователя вы можете задать, будет ли у него доступ к административным привилегиям. Для этого выберите соответствующую опцию, которая добавит нового пользователя в группу `sudo`, предоставляя ему право выполнять административные задачи.

![Номер лицензии](screenshots/user_admin.png)


---

### **4. Установка программного обеспечения**

Раздел "Установка программ" предлагает пользователю простой интерфейс для выбора и установки необходимых пакетов программного обеспечения.

#### **4.1 Выбор и установка пакетов**

В этом разделе пользователь может выбрать необходимые программы для установки. Список программ включает в себя часто используемые инструменты. Список пакетов будет расширяться по мере разработки панели.

![Номер лицензии](screenshots/install_package.png)


---

### **5. Настройки SSH**

SSH является важным инструментом для удаленного управления серверами. В этом разделе можно настроить SSH-сервер, управлять ключами и изменить порт по умолчанию.

#### **5.1 Включение/отключение SSH**

Вы можете включить или отключить SSH-сервер через интерфейс панели. Включение SSH позволяет удаленно управлять сервером, тогда как отключение SSH помогает предотвратить несанкционированный доступ.

#### **5.2 Управление ключами SSH**

Для повышения безопасности можно использовать аутентификацию с помощью SSH-ключей. В этом разделе можно добавить или удалить ключи SSH, что позволяет усилить защиту сервера от атак.

#### **5.3 Изменение порта SSH**

Смена порта SSH с порта по умолчанию (`22`) на другой может помочь уменьшить риск автоматических атак на сервер. Вы можете изменить порт SSH в панели, что автоматически обновит конфигурационный файл `/etc/ssh/sshd_config`.

![Номер лицензии](screenshots/ssh.png)


---

### **6. Изменить доменное имя ПК**

В этом разделе можно изменить доменное имя системы, которое используется для идентификации устройства в сети.

#### **6.1 Изменение доменного имени**

В панели можно легко изменить доменное имя, просто введя новое значение. После подтверждения изменения будут немедленно применены и сохранены в файлах `/etc/hostname` и `/etc/hosts`.

![Номер лицензии](screenshots/domain.png)


---

### **7. Выбор оболочки**

Выбор оболочки (или командной строки) влияет на повседневное взаимодействие с системой. В этом разделе вы можете выбрать предпочтительную оболочку для пользователей системы.

#### **7.1 Установка оболочки по умолчанию**

Оболочку можно установить по умолчанию для всех пользователей или для конкретного пользователя. Панель поддерживает несколько популярных оболочек, таких как Bash и Zsh.

#### **7.2 Выбор оболочки**

Вы можете выбрать оболочку из списка доступных в системе. 

![Номер лицензии](screenshots/user_terminal.png)



![Номер лицензии](screenshots/choose_terminal.png)


---

### **8. Автозапуск при следующем запуске**

Этот раздел позволяет управлять автозапуском сервиса Postinstall и других приложений, которые должны запускаться при старте системы.

#### **8.1 Управление автозапуском Postinstall**

Вы можете включить или отключить автозапуск панели Postinstall, что позволит вам контролировать, будет ли панель автоматически запускаться при каждом перезагрузке системы.

---

### **9. Настройка базы данных**

Этот раздел предоставляет возможности для установки и настройки баз данных, в том числе PostgreSQL, с интеграцией с Harlequin.

#### **9.1 Установка и настройка PostgreSQL**

Панель позволяет установить PostgreSQL и интегрировать его с Harlequin, специализированным модулем для работы с базой данных (В последующем раздел будет расширяться для добавления новых баз данных). После установки система также автоматически настраивает необходимые порты в UFW для обеспечения доступа к базе данных.

#### **9.2 Логирование выполняемых действий** 

Установка и настройка необходимых инструментов и базы данных логируется и выводится вам для информации.

![Номер лицензии](screenshots/db_installing.png)


![Номер лицензии](screenshots/log_db.png)


![Номер лицензии](screenshots/log_install_db.png)

#### **9.2 Установка дополнительных модулей**

В дополнение к базовой установке, в панели предусмотрена возможность установки дополнительных модулей, таких как Webmin, который может служить удобным веб-интерфейсом для управления базами данных.

![Номер лицензии](screenshots/webmin.png)




---

### **10. Настройка Docker**

Данный раздел пока находится в стадии разработки и будет включать функции для управления Docker-контейнерами и их автоматической конфигурации.

![Номер лицензии](screenshots/install_docker.png)


![Номер лицензии](screenshots/progressbar_docker.png)


#### **10.1 Установка дополнительных модулей Docker**

После установки Docker, предлагается вам установить такие модули как Docker Swarm и Portainer с автоматической настройкой для использования, если необходимо.

![Номер лицензии](screenshots/docker_swarm.png)


![Номер лицензии](screenshots/install_portainer.png)


#### **10.2 Автоматическая настройка модулей**
При установке Portainer вам сразу же устанавливается начальная конфигурация для пользования. С настройкой его пароля, порта и IP адреса.

![Номер лицензии](screenshots/password_portainer.png)


![Номер лицензии](screenshots/port_portainer.png)


![Номер лицензии](screenshots/ip_portainer.png)


---
### **11. Откат последних изменений**

Этот раздел предоставляет функцию отката к предыдущему состоянию системы, что позволяет отменить изменения, внесенные в конфигурацию через панель.

---

### **12. Сохранить и выйти**

Последний шаг в панели — это подтверждение изменений и их окончательное применение. Вы можете сохранить все внесенные изменения или выйти без их сохранения.
