Обзор развертывания YOURLS на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры и условия:
-
Операционная система: Ubuntu.
-
Права доступа: Права суперпользователя (root) для установки пакетов и управления контейнерами.
-
Порты:
-
8080— внутренний порт приложения (доступен локально). -
443— внешний порт для HTTPS трафика.
FDQN итоговой панели на домене hostkey.in¶
Для доступа к приложению используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | yourls |
| Домен | hostkey.in |
| Полный шаблон | yourls{Server_ID}.hostkey.in |
Структура файлов и каталогов¶
Основные директории, используемые в системе:
-
/opt/yourls— основная рабочая директория приложения. -
/opt/yourls/mysql-data— хранилище данных базы данных MySQL. -
/root/nginx— конфигурация прокси-сервера Nginx. -
/data/nginx/user_conf.d— пользовательские конфигурации Nginx.
Процесс установки приложения¶
Развертывание выполняется в несколько этапов:
-
Подготовка окружения: Создание необходимых директорий (
/opt/yourls,/opt/yourls/mysql-data) с установленными правами доступа0750и0750. -
Развертывание контейнеров приложения:
-
Подготовка конфигурационного файла
yourls-compose.yml. -
Загрузка необходимых образов Docker.
-
Запуск сервисов через Docker Compose.
-
Настройка проксирования и SSL:
-
Создание директории
/root/nginx. -
Генерация конфигурации для Nginx с поддержкой автоматического получения сертификатов.
-
Запуск контейнера Nginx Certbot.
Контейнеры Docker и их запуск¶
Приложение функционирует в составе нескольких контейнеров.
Сервисы приложения (через yourls-compose.yml)¶
Контейнер YOURLS
-
Имя образа:
yourls:latest -
Имя контейнера:
yourls{Server_ID}.hostkey.in -
Порты:
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 -
YOURLS_USER:root -
YOURLS_PASS: (пароль администратора) -
Политика перезапуска:
always
Контейнер MySQL
-
Имя образа:
mysql:8 -
Переменные окружения:
-
MYSQL_ROOT_PASSWORD:yourls -
MYSQL_DATABASE:yourls -
MYSQL_USER:yourls -
MYSQL_PASSWORD:yourls -
Тома (volumes):
/opt/yourls/mysql-data:/var/lib/mysql -
Политика перезапуска:
always
Прокси-сервер (через compose.yml)¶
Контейнер Nginx Certbot
-
Имя образа:
jonasal/nginx-certbot:latest -
Сеть:
host(использует сетевой стек хоста) -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d -
Переменные окружения:
-
CERTBOT_EMAIL:hkadm@hostkey.com -
Политика перезапуска:
unless-stopped
Базы данных¶
Для работы приложения используется база данных MySQL, развернутая в Docker-контейнере.
-
Имя базы данных:
yourls -
Место хранения данных:
/opt/yourls/mysql-dataна хост-машине. -
Пользователь БД:
yourls(с паролемyourls).
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить следующие действия:
-
Перейти в директорию с конфигурацией:
cd /opt/yourls. -
Выполнить обновление образов и перезапуск контейнеров:
Расположение конфигурационных файлов и данных¶
-
Конфигурация Docker Compose приложения:
/opt/yourls/yourls-compose.yml -
Данные базы данных:
/opt/yourls/mysql-data -
Конфигурация прокси-сервера:
/root/nginx/compose.yml -
Сертификаты SSL: в томе
nginx_secrets.
Доступные порты для подключения¶
| Порт | Назначение | Доступность |
|---|---|---|
443 | HTTPS (через Nginx) | Внешний доступ |
8080 | Приложение YOURLS | Только локально (127.0.0.1) |
Запуск, остановка приложения¶
Управление контейнерами осуществляется через Docker Compose:
Запуск/Перезапуск:
Остановка: