Перейти к содержанию

Обзор развертывания FreePBX на сервере

Предпосылки и предварительные требования

Для успешного развертывания приложения необходимо наличие сервера с операционной системой Debian 12. Требуется доступ к серверу с правами суперпользователя (root) для выполнения скриптов установки и настройки системы.

Система должна иметь доступ к интернету для загрузки установочного скрипта и пакетов. Необходимо заранее определить параметры для формирования полного доменного имени (FQDN) сервера, включая префикс, идентификатор сервера и зону домена.

Для работы веб-интерфейса и получения сертификатов безопасности должны быть открыты порты 80 и 443.

Процесс установки приложения

Установка приложения FreePBX версии 17 производится с помощью специализированного скрипта, который загружается с репозитория разработчиков. Процесс включает следующие этапы:

  1. Обновление репозиториев пакетов и установка утилит wget и curl.
  2. Настройка системного имени хоста и запись записи в файл /etc/hosts для корректной работы доменного имени.
  3. Скачивание скрипта установки по адресу https://github.com/FreePBX/sng_freepbx_debian_install/raw/master/sng_freepbx_debian_install.sh в директорию /tmp.
  4. Запуск скрипта установки /tmp/sng_freepbx_debian_install.sh, который автоматически настраивает окружение Asterisk и FreePBX.
  5. Перезагрузка сервера после завершения установки для применения всех изменений.
  6. Выполнение команды fwconsole chown для корректной настройки прав доступа к файлам после перезагрузки.

Контейнеры Docker и их запуск

Для обеспечения работы веб-сервера с поддержкой автоматического получения сертификатов используется контейнер Docker. Конфигурация контейнера описана в файле /root/nginx/compose.yml.

Контейнер запускает образ jonasal/nginx-certbot:latest в режиме host для прямого доступа к сетевым интерфейсам. Контейнер настроен на автоматический перезапуск при сбоях (restart: unless-stopped).

В контейнере монтируются следующие тома: - nginx_secrets в директорию /etc/letsencrypt для хранения сертификатов. - Локальная директория /data/nginx/user_conf.d в /etc/nginx/user_conf.d для пользовательских конфигураций Nginx.

Переменные окружения загружаются из файла /data/nginx/nginx-certbot.env, а адрес электронной почты для сертификатов задается как hkadm@hostkey.com.

Прокси серверы

В системе используется Nginx в качестве обратного прокси-сервера с поддержкой Let's Encrypt. Конфигурация прокси-сервера размещается в файле /data/nginx/user_conf.d/<prefix><server_id>.hostkey.in.conf.

В конфигурационном файле прокси-сервера для корневого пути (location /) настроена пересылка запросов на локальный адрес http://127.0.0.1:3000. Это позволяет маршрутизировать входящий трафик на приложение, работающее на порту 3000.

Базы данных

Приложение FreePBX использует встроенную базу данных, которая настраивается автоматически в процессе выполнения скрипта установки. Данные базы данных хранятся в стандартных директориях, определенных пакетом Asterisk и FreePBX.

Настройки прав

После установки и перезагрузки сервера необходимо выполнить команду fwconsole chown для корректной настройки владения файлами и директорий. Это обеспечивает правильную работу сервисов от имени пользователя asterisk.

Директория /var/run/asterisk создается с правами доступа 0755 и владельцем asterisk для обеспечения работы утилит управления.

Сертификаты безопасности

Для шифрования трафика используется сервис Let's Encrypt, интегрированный в систему через утилиту fwconsole. Процесс настройки включает:

  1. Генерацию сертификата с помощью команды fwconsole certificates --generate с указанием типа le, доменного имени, страны, штата и электронной почты.
  2. Получение идентификатора созданного сертификата через команду fwconsole cert --list.
  3. Установку сертификата в качестве основного с помощью команды fwconsole cert --default=<id>.
  4. Обновление всех интеграций с использованием сертификата командой fwconsole cert --updateall.
  5. Перезагрузку конфигурации с помощью fwconsole reload.

После получения сертификата конфигурация веб-сервера Apache обновляется. В файле /etc/apache2/sites-available/default-ssl.conf пути к файлам сертификата и ключа заменяются на: - SSLCertificateFile: /etc/asterisk/keys/<fqdn>.crt - SSLCertificateKeyFile: /etc/asterisk/keys/<fqdn>.key

После изменения конфигурации выполняется проверка синтаксиса apache2ctl configtest и перезагрузка службы apache2.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×