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

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

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

Для успешного развертывания приложения необходимо наличие следующих условий:

  • Операционная система: Debian или RHEL (Red Hat Enterprise Linux) и совместимые дистрибутивы.

  • Права доступа: доступ к серверу с правами root или возможность выполнения команд через sudo.

  • Сетевые требования: открытые порты для входящего трафика, в частности порт 443 для внешнего доступа.

  • Доступ к интернету: для загрузки установочного скрипта и компонентов.

FQDN итоговой панели

Панель управления доступна по следующему адресу:

fastpanel<ID сервера>.hostkey.in:443

Где <ID сервера> — это уникальный идентификатор сервера, который подставляется в префикс адреса.

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

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

Для систем на базе Debian:

  1. Обновляется кэш пакетов.

  2. Устанавливается утилита wget.

  3. Скачивается и выполняется скрипт install_fastpanel.sh с репозитория http://repo.fastpanel.direct.

  4. Команда установки:

    wget http://repo.fastpanel.direct/install_fastpanel.sh -O - | bash -
    

Для систем на базе RHEL:

  1. Устанавливается утилита wget.

  2. Скрипт install_fastpanel.sh скачивается в директорию /root.

  3. Скрипту присваиваются права на выполнение.

  4. Выполняется скрипт установки.

  5. После завершения установки файл скрипта удаляется.

  6. Команда установки:

    /root/install_fastpanel.sh
    

После установки пароля пользователя fastuser изменяется на заданное значение.

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

Приложение использует контейнеризацию для работы веб-сервера и управления SSL-сертификатами. Конфигурация контейнеров описана в файле compose.yml.

Используемый образ контейнера:

  • jonasal/nginx-certbot:latest

Параметры запуска контейнера nginx:

  • Режим перезапуска: unless-stopped.

  • Режим сети: host.

  • Переменная окружения для email: CERTBOT_EMAIL=hkadm@hostkey.com.

  • Файл переменных окружения: /data/nginx/nginx-certbot.env.

  • Привязка тома для секретов Let's Encrypt: nginx_secrets монтируется в /etc/letsencrypt.

  • Привязка тома для пользовательских конфигураций Nginx: /data/nginx/user_conf.d монтируется в /etc/nginx/user_conf.d.

  • Дополнительный хост: host.docker.internal маппится на host-gateway.

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

В качестве прокси-сервера используется контейнер Nginx с поддержкой Certbot для автоматического получения и обновления SSL-сертификатов.

Настройки прокси-сервера:

  • Домен зоны: hostkey.in.

  • Префикс поддомена: fastpanel.

  • Внутренний порт приложения: 8888.

  • Внешний порт для доступа: 443.

  • Внутренний путь: /.

  • Внешний путь: /.

Сертификаты хранятся в томе nginx_secrets, который является внешним и монтируется в директорию /etc/letsencrypt внутри контейнера.

Расположение конфигурационных файлов и данных

Основные директории и файлы конфигурации расположены в следующих местах:

Путь к файлу или директории Описание
/data/nginx/nginx-certbot.env Файл переменных окружения для контейнера Nginx
/data/nginx/user_conf.d Директория для пользовательских конфигураций Nginx
/etc/letsencrypt Директория для хранения SSL-сертификатов (внутри контейнера)
/root/install_fastpanel.sh Временное расположение установочного скрипта (удаляется после установки)

Доступные порты для подключения

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

Порт Протокол Назначение
8888 TCP Внутренний порт приложения FastPanel
443 TCP Внешний порт для HTTPS-доступа к панели

Права доступа и безопасность

После установки создается пользователь fastuser, пароль которого устанавливается в процессе развертывания.

Для обеспечения безопасности:

  • Контейнер Nginx работает в режиме host, что требует осторожности при настройке брандмауэра.

  • Доступ к панели осуществляется только по защищенному протоколу HTTPS через порт 443.

  • Конфигурация контейнера включает автоматическое обновление сертификатов через Certbot.

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