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

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

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

  • Сервер с дистрибутивом Ubuntu (поддерживается версия 20.04 и новее).
  • Установленная система управления пакетами apt.
  • Установлен docker и docker‑compose (пакет docker-compose — отдельный сервис).
  • В сети доступ к внешнему интернету, чтобы можно было скачивать пакеты, репозитории и сертификаты.

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

/root/nginx
├── compose.yml            # docker‑compose‑файл
└── .env?                  # переменные окружения, если используются
/data/nginx/user_conf.d
└── <domain>.conf          # конфигурации nginx для конкретных доменов
/root/nginx содержит шаблонный compose‑файл, который создаётся после копирования шаблона compose.yml.j2.
В /data/nginx/user_conf.d размещаются конфигурационные файлы, которые подключаются Nginx‑контейнером.

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

  • /root/nginx и /root/nginx/compose.yml принадлежат пользователю root и доступны только ему (0755/0644).
  • /data/nginx/user_conf.d также создаётся как собственность root, так как используется контейнером, запущенным от имени root.
  • Секреты LetsEncrypt хранятся в томе nginx_secrets, экспортированном как /etc/letsencrypt внутри контейнера.
  • Контейнер Nginx работает в режиме сети host, поэтому его порты напрямую видны из сети.

Базы данных

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

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

Nginx‑certbot

Контейнер jonasal/nginx-certbot:latest выполняет две роли:
1. Реверс‑прокси для aaPanel.
2. Автоматическое получение/обновление сертификатов LetsEncrypt через Certbot.

Контейнер подключается к сети хоста и имеет доступ к порту 80 и 443, а также к порту internal_port (порт aaPanel, по умолчанию 3000).

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

# Перейти в каталог с compose‑файлом
cd /root/nginx

# Запустить сервисы в фоновом режиме
docker compose up -d
Контейнер автоматически проверит конфигурацию Nginx (docker exec nginx-nginx-1 nginx -t) и будет перезапущен, пока не будет валидна.

Как остановить контейнеры

docker compose down
или
docker stop nginx-nginx-1

Как обновить образ

docker compose pull
docker compose up -d

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

Nginx‑certbot (главный прокси)

  • HTTP (80): используется только для прохождения шага проверки Let’s Encrypt. После получения сертификата автоматически включается HTTPS.
  • HTTPS (443): сертификаты берутся из тома /etc/letsencrypt.

Конфигурация для пользовательского домена

Файл <domain>.conf (шаблон nginx_custom_domain.conf.j2) создаётся автоматически после установки.
Основные блоки:

Блок Описание
listen 80; Сервер обслуживает запросы HTTP.
location /.well-known/acme-challenge/ Путь для проверки Let’s Encrypt.
location / Реверс‑прокси к aaPanel (https://127.0.0.1:<internal_port>).
listen 443 ssl; Включает HTTPS и указывает путь к сертификату.

Если пользователь задали custom_domain, сначала создаётся конфигурация без HTTPS, после получения сертификата добавляется блок с listen 443 ssl.

Как добавить собственный домен вручную

  1. Создайте файл /data/nginx/user_conf.d/<домен>.conf со следующим содержимым:
    server {
        server_name <домен>;
        listen 80;
        ...
    }
    
  2. Перезапустите контейнер Nginx‑certbot:
    docker exec nginx-nginx-1 nginx -s reload
    
  3. Получите сертификат (можно использовать Certbot в контейнере вручную).

Настройки прав, запуск, остановка и обновление (docker или docker‑compose)

Запуск

cd /root/nginx
docker compose up -d

Остановка

docker compose down

Перезапуск

docker compose restart

Обновление образов

docker compose pull
docker compose up -d

Настройки aaPanel после установки

  • После скачивания и запуска установочного скрипта aaPanel (install_7.0_en.sh) создаётся сервис bt.
  • Порт панели меняется на 3000 (команда bt #8).
  • По умолчанию имя пользователя – aaPanel, пароль – aaPanel123 (команды bt #5 и #6).
  • Адрес входа можно получить командой bt 14 (выводит строку вида http://<IP>:3000).
  • Для удобства панель автоматически перезапускается (bt 1).

Проверка статуса

systemctl status bt
Должен выводить active (running).

Важные замечания

  • После установки aaPanel убедитесь, что в настройках сети вашего хоста разрешён порт 3000.
  • Если вы используете кастомный домен, убедитесь, что DNS‑записи (A или CNAME) указывают на IP вашего сервера.
  • При первом запуске Nginx‑certbot создаст сертификаты только для указанных доменов; другие домены не защищены.

Эта схема развертывания обеспечивает стабильную работу aaPanel через безопасный HTTPS‑прокси и автоматическое обновление сертификатов.

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