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

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

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

  • Сервер должен работать под управлением Debian (APT) или Red Hat/CentOS (YUM).
  • На машине должен быть пользователь с правами root (или пользователь, получивший права sudo).
  • Необходимо наличие сетевого доступа к внешнему миру, чтобы загрузить установочный скрипт с http://repo.fastpanel.direct.
  • На сервере должен быть установлен пакет wget. Если его нет, его можно установить вручную командой
    # Debian/Ubuntu
    apt-get update && apt-get install -y wget
    
    # RHEL/CentOS
    yum install -y wget
    

Структура файлов и каталогов

После запуска установочного скрипта создаются следующие каталоги и файлы:

Путь Назначение
/root/install_fastpanel.sh Сам скрипт установки (если его скачали отдельно).
/data/nginx/nginx-certbot.env Переменные окружения для контейнера certbot.
/data/nginx/user_conf.d Папка, куда помещаются пользовательские конфигурации Nginx.
nginx_secrets Docker‑volume, содержащий сертификаты Let’s Encrypt.

Также в корне проекта находится файл docker-compose.yml (создаётся по шаблону compose.yml.j2).

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

  • Пользователь fastuser создаётся автоматически при установке.
  • Пароль для fastuser устанавливается в соответствии со значением переменной ansible_ssh_pass и хешируется алгоритмом SHA‑512.
  • Для безопасности рекомендуется использовать уникальный пароль, который не совпадает с паролем root.
  • Контейнер nginx-certbot запускается с правами пользователя из Docker‑образа, а сам образ jonasal/nginx-certbot:latest обеспечивает изоляцию и обновление сертификатов.
  • Весь доступ к Let’s Encrypt хранится в томе nginx_secrets, который монтируется в /etc/letsencrypt внутри контейнера.

Базы данных

В предоставленных файлах не содержится информации о настройке баз данных. Если приложение использует БД, их конфигурация будет прописана внутри установочного скрипта и/или Docker‑контейнеров, но в данном контексте уточнения не сделано.

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

Файл docker-compose.yml

volumes:
  nginx_secrets:
    external: true

services:
  nginx:
    image: jonasal/nginx-certbot:latest
    restart: unless-stopped
    environment:
      - CERTBOT_EMAIL=hkadm@hostkey.com
    env_file:
      - /data/nginx/nginx-certbot.env
    network_mode: host
    volumes:
      - nginx_secrets:/etc/letsencrypt
      - /data/nginx/user_conf.d:/etc/nginx/user_conf.d
    extra_hosts:
      - "host.docker.internal:host-gateway"

Пояснения к ключевым параметрам

Параметр Описание
image Образ jonasal/nginx-certbot, который объединяет Nginx и certbot.
restart Контейнер будет автоматически перезапускаться, если остановится, за исключением явного остановки.
environment Переменная CERTBOT_EMAIL используется certbot‑ом для получения сертификатов.
env_file Внутренние переменные из файла /data/nginx/nginx-certbot.env.
network_mode: host Контейнер использует сетевой стек хоста, что упрощает работу с портами 80/443.
volumes Токен nginx_secrets содержит сертификаты, а user_conf.d хранит пользовательские конфигурации Nginx.
extra_hosts Добавляет запись host.docker.internal в /etc/hosts внутри контейнера, чтобы обращаться к сервисам хоста.

Запуск

# Перейти в каталог, где лежит docker-compose.yml
cd /path/to/project

# Запустить контейнеры в фоне
docker compose up -d

# Проверить статус
docker compose ps

Остановка и обновление

# Остановить контейнеры
docker compose down

# Перезапустить с последними изменениями
docker compose up -d

# Обновить образ (например, при выпуске новой версии)
docker compose pull
docker compose up -d

Если в проекте используется только docker run, можно запускать контейнер так:

docker run -d --name nginx \
  --restart unless-stopped \
  --network host \
  -e CERTBOT_EMAIL=hkadm@hostkey.com \
  -v nginx_secrets:/etc/letsencrypt \
  -v /data/nginx/user_conf.d:/etc/nginx/user_conf.d \
  -v /data/nginx/nginx-certbot.env:/etc/nginx/nginx-certbot.env \
  -p 80:80 -p 443:443 \
  jonasal/nginx-certbot:latest

Прокси‑сервера

  • Nginx – основной веб‑прокси, обслуживающий HTTPS‑трафик.
  • Внутри образа также включён certbot, который автоматически обновляет сертификаты Let’s Encrypt.
  • Для доменов, требующих персональных конфигураций, можно размещать файлы в /data/nginx/user_conf.d. Каждый файл будет автоматически подключён к Nginx при перезапуске контейнера.
  • Адрес host.docker.internal позволяет контейнеру обращаться к сервисам, работающим на самом хосте.

Настройки прав, запуск, остановка и обновление

  1. Установка

    # Debian/Ubuntu
    wget http://repo.fastpanel.direct/install_fastpanel.sh -O - | bash -
    
    # RHEL/CentOS
    wget http://repo.fastpanel.direct/install_fastpanel.sh -O /root/install_fastpanel.sh
    chmod +x /root/install_fastpanel.sh
    /root/install_fastpanel.sh
    rm -f /root/install_fastpanel.sh
    

  2. Проверка и изменение пароля fastuser

    passwd fastuser
    

  3. Запуск приложения

    cd /path/to/project
    docker compose up -d
    

  4. Остановка

    docker compose down
    

  5. Обновление

    # Перейти в каталог проекта
    cd /path/to/project
    
    # Обновить образы
    docker compose pull
    
    # Перезапустить сервисы
    docker compose up -d
    

Все команды выполняются от имени пользователя root (или через sudo).

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