
Дзен — это ресурс, используемый мною до недавнего времени как площадка для личного блога и в качестве записной книжки, который стал совсем неадекватно себя вести и вот в чем это выражается:
- Блокировка статей под надуманным предлогом — незаконная информация
- Блокировка в продвижении материалов, был ежедневный серьезный рост просмотров, а через день и так на протяжении остального времени тишина — мне кажется эта площадка слишком перегружена блогерами и публикациями, лидирующую позицию естественно занимают копипастные новостные товарищи с бешенными просмотрами, куда уж там ленте до нас простых смертных, такими темпами никогда не охватишь все IT сообщество, тем более что из поисковых систем — посетителей блога раз в 10 больше, чем с ленты Дзен.
- Ревностное отношение Дзена к повторным публикациям, а также использование материала на сторонних площадках
- Левая техподдержка ничего не решающая и ничем не помогающая
Я давно уже задумываюсь по поводу личного блога на собственной vds машинке в связке с хорошим движком, подальше от всех запрещальщиков сверху и наверное пора уже запускать, напоминаю вам этот проект не преследует коммерческих целей, для меня важнее собственный опыт, знания и возможность делиться своими наработками и опытом с вами.
Мой основной и главный блог будет доступен по адресу:
Туда я планирую потихонечку мигрировать пока только новые статьи, материалы в статусе update(обновление в связи с выходом новых версий дистрибутивов) и заблокированные дзеном.
Канал на Дзене так и будет висеть — есть не просит и ладно, тем более там собран большой материал:
- Опубликовано: 115 статей
- В черновиках: 120+, причем многие готовы уже на 50%
В статье мною будет развернут образ Ubuntu 24.04LTS на VDS хостинге, установлен Docker, напишем сценарий развертывания контейнеров с такими компонентами как MariaDB, Nginx Proxy Manager, WordPress, описаны сопутствующие вопросы по регистрации сайта в поисковиках и резервному копированию.
Надеюсь подобная тематика вам нравится, приятного чтения.
Содержание статьи
- Мои требования к решению
- Что такое WordPress
- Почему стоит остановиться на этом варианте
- Компоненты в составе предлагаемого решения
- Системные требования
- Хостинговая площадка
- Настройка DNS записей
- Подготовка системы
- Установка Docker
- Создание папок под проект и написание конфигурационного файла
- Настройка решения
- Настройка обратного прокси сервера на nginx
- Получение SSL сертификатов
- Оптимизация производительности
- Резервное копирование и восстановление
- Заключение
Мои требования к решению
- Низкие системные требования
- Вся связка компонентов должна крутиться в Docker
- Надежный и функциональный движок для блога
- Удобный в настройке обратный прокси сервер
Что такое WordPress
WordPress — это бесплатная CMS с открытым исходным кодом написанная на php, первичное предназначение которой создание блогов и сайтов. Функционал системы наращивается за счет плагинов, также под систему написано огромное количество шаблонов тем.
WordPress одна из самых популярных CMS и используется более чем на 60 миллионах сайтов, мне кажется одно это уже является слишком весомым аргументом.
Почему стоит остановиться на этом варианте
- Стабильное и проверенное годами решение
- Есть как бесплатные так и платные видеокурсы, помимо документации и статей, которые научат вас всему от установки CMS до создания тем и плагинов
- Огромное количество плагинов и тем оформления
- Такого масштаба сообществу пользователей и разработчиков позавидует любая CMS
Компоненты в составе предлагаемого решения
- Контейнер с Nginx Proxy Manager — удобный обратный прокси сервер с удобным web интерфейсом управления, встроенной возможностью получения и автоматического продления сертификата SSL от Let’s Encrypt
- Контейнер MariaDB — сервер баз данных
- Контейнер с WordPress
Системные требования
- Процессор: от 2-х ядер
- Оперативная память: от 2ГБ
- Накопитель: от 10ГБ
Потребление ресурсов:


Хостинговая площадка
В качестве хостинг провайдера я пользуюсь услугами https://nuxt.cloud/ — оплата в рублях, хостинг площадки в Москве, Германии и Нидерландах.
В моем случае выбираю следующий тариф:

Кому не нравится идея с VDS и вы хотите развернуть решение внутри своей локальной сети, то вам потребуется:
- Статический ip адрес на порту Wan вашего маршрутизатора
- Пробросить 80 и 443 порты на вашем роутере с помощью правила типа dstNAT с указанием ip адреса хоста с прокси.
- В DNS панели администрирования вашего доменного хостинг провайдера прописать запись типа А с указанием внешнего ip адреса маршрутизатора
- На вашем гипервизоре или ПК создать виртуальную машинку и установить Ubuntu 24.04LTS, а уж затем по пунктам этой статьи добиваться задуманного.
Настройка DNS записей
В DNS панели управления вашего хостинг провайдера добавляем учетную запись типа А и в поле значение указываем ip адрес нашей VDS

Должно получиться так:

Подготовка системы
Все действия в системе я произвожу под root:
sudo -s
Обновляем систему:
apt update -y && apt upgrade -y
Устанавливаем имя нашему серверу:
hostnamectl set-hostname tuning-admina.ru
Устанавливаем дополнительные пакеты:
apt install mc net-tools git curl
apt-transport-https ca-certificates software-properties-common -y
Перезагружаем машинку:
reboot
Установка Docker Compose
Добавим GPG key от репозитория Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg —dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Добавим репозиторий Docker:
echo «deb [arch=$(dpkg —print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable» | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Обновим сведения о пакетах в репозиториях:
apt update
Устанавливаем Docker:
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Стартуем службу Docker:
systemctl start docker
Проверяем статус службы Docker:
systemctl status docker

Создание папок под проект и написание конфигурационного файла
Первым делом создаем корневой каталог Docker:
mkdir /Docker
Создаем папки под Nginx Proxy Manager:
mkdir /Docker/Nginx
mkdir /Docker/Nginx/{data,letsencrypt}
Создаем папку под WordPress:
mkdir /Docker/Wordpress
Создаем папку под MariaDB:
mkdir /Docker/MariaDB
Создаем конфигурационный файл для Docker Compose с описанием необходимых нам контейнеров с настройками:
nano /Docker/docker-compose.yml
services:
#Контейнер с Nginx Proxy Manager#
Proxy:
image: ‘jc21/nginx-proxy-manager:latest’
container_name: proxy_nginx
restart: unless-stopped
ports:
— ’80:80′
— ‘443:443’
— ’81:81′ # WEB Консоль управления Nginx Proxy Manager
volumes:
— ./Nginx/data:/data
— ./Nginx/letsencrypt:/etc/letsencrypt
#Контейнер с MariaDB#
MariaDB:
image: mariadb:latest
container_name: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root_pass
MYSQL_DATABASE: wordpress
MYSQL_USER: user
MYSQL_PASSWORD: pass
volumes:
— ./MariaDB:/var/lib/mysql
#Контейнер с WordPress#
WordPress:
image: wordpress:latest
container_name: wordpress
volumes:
— ./Wordpress:/var/www/html
ports:
— ‘8000:80’
— ‘8443:443’
restart: always
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_USER: user
WORDPRESS_DB_PASSWORD: pass
WORDPRESS_DB_NAME: wordpress
Сохраняем файл, выходим из редактора:
CTRL+O, CTRL+X
Запуск контейнеров
Запускаем процесс создания и запуска контейнеров согласно нашему конфигу:
docker compose up -d
Процесс пошел:

Дожидаемся окончания процесса создания и запуска:

Проверяем статус контейнеров:
docker compose ps

Настройка Nginx Proxy Manager
В браузере переходим по адресу:
http://ip_addresses:81
Нас встречает Nginx Proxy Manager, указываем свою учетную запись для дальнейшей авторизации в системе в качестве администратора и нажимаем Сохранить:

Так выглядит панель управления нашим прокси сервером:

В разделе Хосты —> Прокси Хосты нажимаем на кнопку Добавить новый хост:

В строку Домены вписываем свой и нажимаем Enter, выбираем протокол http в качестве хоста указываем ip адрес хоста с WordPress, даже если это тот же самый компьютер, что и прокси сервер, указываем порт перенаправления и переходим на вкладку SSL:

В вкладке SSL добавленного прокси хоста выбираем Получить новый сертификат, включаем тумблеры опций и нажимаем Сохранить:

В случае успешного получения сертификата и отсутствия ошибок, статус вашего прокси хоста должен выглядеть так:

Первичная настройка WordPress и вход в панель администрирования
Открываем браузер и переходим по адресу: http://tuning-admina.ru и попадаем на страницу установки:

Выбираем Русский язык и нажимаем Продолжить:

Нам предлагается указать Название сайта и ввести данные для создания своей учетной записи, после чего нажимаем Установить WordPress:

Процесс установки завершился благополучно и нам предлагается проследовать в панель администрирования, нажимаем Войти:

Авторизуемся в системе под только что созданной нами учётной записью:

Регистрация сайта в поисковой системе Яндекс
Для регистрации в поисковике у вас должна быть учетная запись Яндекс ID, если ее нет, зарегистрируйтесь это займет пару минут.
В браузере переходим по адресу:
Нажимаем на кнопку Добавить сайт:

Указываем адрес сайта и нажимаем Добавить:

В качестве метода подтверждения прав на ресурс, выбираем DNS запись и копируем блок кода:

Переходим в DNS панель управления вашего хостинг провайдера и создаем TXT запись, в параметре значение вставляем скопированный блок:

Должно получиться так:

Возвращаемся на страницу подтверждения прав и нажимаем Подтвердить:

Сайт добавлен в поиск по Яндексу:

На этом все, ожидаем индексации нашего сайта поисковиком и проверяем в поиске.
Регистрация сайта в Google
Для регистрации в поисковике Google у вас должна быть учетная запись, если ее нет, зарегистрируйтесь это займет пару минут.
В браузере переходим по адресу:
http://www.google.com/webmasters/tools/home?hl=ru
Нас приветствует веб консоль регистрации в поисковой системе Google, выбираем вариант Ресурс с префиксом в URL и вписываем адрес нашего ресурса, после чего нажимаем кнопку Продолжить:

Среди методов подтверждения прав собственности на ресурс, выбираем Провайдер доменных имен, нажимаем на кнопку Копировать:

Переходим в DNS панель управления вашего хостинг провайдера и создаем TXT запись, в параметре значение вставляем скопированный блок:

Должно получиться так:

Возвращаемся на страницу подтверждения прав собственности и нажимаем Подтвердить:

Как видно на скриншоте Право собственности подтверждено, нажимаем Перейти к ресурсу:

Мы попадаем в основное меню статистики по сайту:

На этом все, ожидаем индексации нашего сайта поисковиком и проверяем в поиске.
Попытки продвижения ресурса
Этот пункт я постепенно буду дописывать по мере попыток пробивания лбом стенки и продвижения ресурса в массы.
Резервное копирование и восстановление
В этом разделе мы рассмотрим интересное в своём роде решение для автоматизированного резервного копирования ваших данных в Docker volumes.
Заключение
Замечательный на мой взгляд движок для блогеров как для начинающих, так и для опытных блогеров, сочетая в себе простое и лаконичное решение с высокой производительностью и хорошим функционалом.
Успехов вам дорогие мои читатели на пути к серьезной публицистике
Спасибо за статью! Очень много полезного для себя почерпнул. Побольше бы таких публикаций.