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

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

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

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

Параметр Значение
Операционная система Ubuntu
Доступные порты (внутренние) 8080
Доступные порты (внешние) 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. Приложение состоит из основного сервиса управления короткими ссылками и базы данных MySQL. После поднятия основных контейнеров разворачивается прокси-сервер с поддержкой SSL.

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

Сервис yourls

  • Имя образа: yourls:latest

  • Имя контейнера: yourls{Server_ID_from_Invapi}.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_from_Invapi}.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

Сервис nginx

  • Имя образа: jonasal/nginx-certbot:latest

  • Переменные окружения:

    • CERTBOT_EMAIL: hkadm@hostkey.com
  • Тома (volumes):

    • nginx_secrets:/etc/letsencrypt

    • /data/nginx/user_conf.d:/etc/nginx/user_conf.d

  • Режим сети: host

  • Политика перезапуска: unless-stopped

Базы данных

База данных MySQL работает в отдельном контейнере. Данные хранятся локально на хосте в директории /opt/yourls/mysql-data. Приложение подключается к базе по имени сервиса mysql.

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

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

  • Директория приложения /opt/yourls: владелец root, группа root, режим 0750.

  • Директория данных MySQL /opt/yourls/mysql-data: владелец root, группа root, режим 0750.

  • Файл конфигурации yourls-compose.yml: владелец root, группа root, режим 0640.

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

Тип файла/директории Путь
Конфигурация Docker Compose (приложение) /opt/yourls/yourls-compose.yml
Данные MySQL /opt/yourls/mysql-data
Конфигурация Nginx /root/nginx/compose.yml

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

  • 443 (HTTPS) — внешний доступ через прокси-сервер.

  • 8080 (HTTP) — внутренний доступ к приложению (ограничен интерфейсом 127.0.0.1).

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

Управление контейнерами приложения осуществляется из директории /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 -C /root/nginx up -d

  • Остановка: docker compose -C /root/nginx down

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

Для обеспечения работы по протоколу HTTPS используется контейнер nginx-certbot. Он использует внешнее хранилище томов nginx_secrets для хранения сертификатов Let's Encrypt. Конфигурация прокси настроена на перенаправление трафика с порта 443 на внутренний порт приложения 8080.

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