Обзор развертывания 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 |
Обновление приложения¶
Обновление выполняется через команду:
Настройки прав¶
Для обеспечения безопасности установлены следующие права на директории:
-
/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: