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

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

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

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

  • Операционная система: Ubuntu.

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

  • Доступ к сети: открытые порты 80 и 443 для работы веб-прокси.

FDQN итоговой панели на домене hostkey.in

Параметр Значение
Префикс yourls
Домен hostkey.in
Полный шаблон yourls{Server_ID_from_Invapi}.hostkey.in

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

Основные директории, используемые в системе:

  • /opt/yourls — корневая директория приложения.

  • /opt/yourls/mysql-data — хранилище данных базы данных MySQL.

  • /root/nginx — конфигурация прокси-сервера Nginx.

  • /data/nginx/user_conf.d — пользовательские конфигурации Nginx.

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

Развертывание выполняется путем создания необходимых директорий, подготовки томов для базы данных и запуска контейнеров через Docker Compose. Приложение устанавливается в два этапа: развертывание основного стека (YOURLS + MySQL) и настройка прокси-сервера с автоматическим получением SSL-сертификатов.

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

Основной стек приложения (YOURLS)

Контейнеры запускаются из файла /opt/yourls/yourls-compose.yml.

Имя контейнера Образ Порты Тома (volumes) Переменные окружения Политика перезапуска
yourls{Server_ID}.hostkey.in yourls:latest 127.0.0.1:8080:8080 YOURLS_DB_HOST=mysql, YOURLS_DB_NAME=yourls, YOURLS_DB_USER=yourls, YOURLS_DB_PASS=yourls, YOURLS_SITE=https://yourls{Server_ID}.hostkey.in always
mysql mysql:8 /opt/yourls/mysql-data:/var/lib/mysql MYSQL_ROOT_PASSWORD=yourls, MYSQL_DATABASE=yourls, MYSQL_USER=yourls, MYSQL_PASSWORD=yourls always

Прокси-сервер (Nginx Certbot)

Контейнер запускается из файла /root/nginx/compose.yml.

Имя контейнера Образ Порты Тома (volumes) Переменные окружения Политика перезапуска
nginx jonasal/nginx-certbot:latest network_mode: host nginx_secrets:/etc/letsencrypt, /data/nginx/user_conf.d:/etc/nginx/user_conf.d CERTBOT_EMAIL=hkadm@hostkey.com (из файла .env) unless-stopped

Обновление приложения

Обновление выполняется через команду:

docker compose pull && docker compose up -d

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

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

  • /opt/yourls: владелец root, группа root, режим 0750.

  • /opt/yourls/mysql-data: владелец root, группа root, режим 0750.

  • /root/nginx/compose.yml: владелец root, группа root, режим 0644.

  • /opt/yourls/yourls-compose.yml: владелец root, группа root, режим 0640.

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

  • База данных: /opt/yourls/mysql-data

  • Конфигурация прокси-сервера: /root/nginx/compose.yml

  • Секреты SSL: том nginx_secrets (внутри контейнера Nginx по пути /etc/letsencrypt)

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

Порт Протокол Назначение
8080 TCP Внутренний порт приложения (доступен только локально)
443 HTTPS Внешний доступ через прокси-сервер

Запуск, остановка приложения

Управление основным приложением осуществляется из директории /opt/yourls:

# Запуск
docker compose -f /opt/yourls/yourls-compose.yml up -d

# Остановка
docker compose -f /opt/yourls/yourls-compose.yml down

Управление прокси-сервером осуществляется из директории /root/nginx:

# Запуск
docker compose -f /root/nginx/compose.yml up -d

# Остановка
docker compose -f /root/nginx/compose.yml down

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