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

Обзор развертывания 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.

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

Развертывание выполняется в несколько этапов:

  1. Подготовка окружения: Создание необходимых директорий (/opt/yourls, /opt/yourls/mysql-data) с установленными правами доступа 0750 и 0750.

  2. Развертывание контейнеров приложения:

  3. Подготовка конфигурационного файла yourls-compose.yml.

  4. Загрузка необходимых образов Docker.

  5. Запуск сервисов через Docker Compose.

  6. Настройка проксирования и SSL:

  7. Создание директории /root/nginx.

  8. Генерация конфигурации для Nginx с поддержкой автоматического получения сертификатов.

  9. Запуск контейнера 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).

Инструкция по обновлению приложения

Для обновления основного приложения необходимо выполнить следующие действия:

  1. Перейти в директорию с конфигурацией: cd /opt/yourls.

  2. Выполнить обновление образов и перезапуск контейнеров:

    docker compose pull && docker compose up -d
    

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

  • Конфигурация 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:

Запуск/Перезапуск:

docker compose -f /opt/yourls/yourls-compose.yml up -d

Остановка:

docker compose -f /opt/yourls/yourls-compose.yml down

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