Обзор развертывания FASTPANEL на сервере¶
Предпосылки и предварительные требования¶
- Сервер должен работать под управлением Debian (APT) или Red Hat/CentOS (YUM).
- На машине должен быть пользователь с правами root (или пользователь, получивший права sudo).
- Необходимо наличие сетевого доступа к внешнему миру, чтобы загрузить установочный скрипт с
http://repo.fastpanel.direct. - На сервере должен быть установлен пакет
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позволяет контейнеру обращаться к сервисам, работающим на самом хосте.
Настройки прав, запуск, остановка и обновление¶
-
Установка
-
Проверка и изменение пароля
fastuser
-
Запуск приложения
-
Остановка
-
Обновление
Все команды выполняются от имени пользователя root (или через sudo).