Найти в Дзене
Тюнинг Админа

Свой блог в Docker на Ubuntu 24.04LTS + WordPress + Nginx proxy manager

Дзен - это ресурс, используемый мною до недавнего времени как площадка для личного блога и в качестве записной книжки, который стал совсем неадекватно себя вести и вот в чем это выражается: Я давно уже задумываюсь по поводу личного блога на собственной vds машинке в связке с хорошим движком, подальше от всех запрещальщиков сверху и наверное пора уже запускать, напоминаю вам этот проект не преследует коммерческих целей, для меня важнее собственный опыт, знания и возможность делиться своими наработками и опытом с вами. Мой основной и главный блог будет доступен по адресу: https://tuning-admina.ru Туда я планирую потихонечку мигрировать пока только новые статьи, материалы в статусе update(обновление в связи с выходом новых версий дистрибутивов) и заблокированные дзеном. Канал на Дзене так и будет висеть - есть не просит и ладно, тем более там собран большой материал: В статье мною будет развернут образ Ubuntu 24.04LTS на VDS хостинге, установлен Docker, напишем сценарий развертывания ко
Оглавление

Дзен - это ресурс, используемый мною до недавнего времени как площадка для личного блога и в качестве записной книжки, который стал совсем неадекватно себя вести и вот в чем это выражается:

  • Блокировка статей под надуманным предлогом - незаконная информация
  • Блокировка в продвижении материалов, был ежедневный серьезный рост просмотров, а через день и так на протяжении остального времени тишина - мне кажется эта площадка слишком перегружена блогерами и публикациями, лидирующую позицию естественно занимают копипастные новостные товарищи с бешенными просмотрами, куда уж там ленте до нас простых смертных, такими темпами никогда не охватишь все IT сообщество, тем более что из поисковых систем - посетителей блога раз в 10 больше, чем с ленты Дзен.
  • Ревностное отношение Дзена к повторным публикациям, а также использование материала на сторонних площадках
  • Слишком жесткая цензура
  • Левая техподдержка ничего не решающая и ничем не помогающая

Я давно уже задумываюсь по поводу личного блога на собственной vds машинке в связке с хорошим движком, подальше от всех запрещальщиков сверху и наверное пора уже запускать, напоминаю вам этот проект не преследует коммерческих целей, для меня важнее собственный опыт, знания и возможность делиться своими наработками и опытом с вами.

Мой основной и главный блог будет доступен по адресу:

https://tuning-admina.ru

Туда я планирую потихонечку мигрировать пока только новые статьи, материалы в статусе update(обновление в связи с выходом новых версий дистрибутивов) и заблокированные дзеном.

Канал на Дзене так и будет висеть - есть не просит и ладно, тем более там собран большой материал:

  • Опубликовано: 115 статей
  • В черновиках: 120+, причем многие готовы уже на 50%

В статье мною будет развернут образ Ubuntu 24.04LTS на VDS хостинге, установлен Docker, напишем сценарий развертывания контейнеров с такими компонентами как MariaDB, Nginx Proxy Manager, WordPress, описаны сопутствующие вопросы по регистрации сайта в поисковиках и резервному копированию.

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

https://tuning-admina.ru

Содержание статьи

  • Мои требования к решению
  • Что такое WordPress
  • Почему стоит остановиться на этом варианте
  • Компоненты в составе предлагаемого решения
  • Системные требования
  • Хостинговая площадка
  • Настройка DNS записей
  • Подготовка системы
  • Установка Docker
  • Создание папок под проект и написание конфигурационного файла
  • Запуск контейнеров
  • Настройка Nginx Proxy Manager
  • Первичная настройка WordPress и вход в панель администрирования
  • Оптимизация производительности
  • Резервное копирование и восстановление
  • Заключение

Мои требования к решению

  • Низкие системные требования
  • Вся связка компонентов должна крутиться в Docker
  • Надежный и функциональный движок для блога
  • Удобный в настройке обратный прокси сервер

Что такое WordPress

WordPress - это бесплатная CMS с открытым исходным кодом написанная на php, первичное предназначение которой создание блогов и сайтов. Функционал системы наращивается за счет плагинов, также под систему написано огромное количество шаблонов тем.

WordPress одна из самых популярных CMS и используется более чем на 60 миллионах сайтов, мне кажется одно это уже является слишком весомым аргументом.

Почему стоит остановиться на этом варианте

  • Стабильное и проверенное годами решение
  • Есть как бесплатные так и платные видеокурсы, помимо документации и статей, которые научат вас всему от установки CMS до создания тем и плагинов
  • Огромное количество плагинов и тем оформления
  • Такого масштаба сообществу пользователей и разработчиков позавидует любая CMS

Компоненты в составе предлагаемого решения

  • Контейнер с Nginx Proxy Manager - удобный обратный прокси сервер с удобным web интерфейсом управления, встроенной возможностью получения и автоматического продления сертификата SSL от Let's Encrypt
  • Контейнер MariaDB - сервер баз данных
  • Контейнер с WordPress

Системные требования

  • Процессор: от 2-х ядер
  • Оперативная память: от 2ГБ
  • Накопитель: от 10ГБ

Потребление ресурсов:

-2
-3

Хостинговая площадка

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

В моем случае выбираю следующий тариф:

-4

Кому не нравится идея с VDS и вы хотите развернуть решение внутри своей локальной сети, то вам потребуется:

  • Статический ip адрес на порту Wan вашего маршрутизатора
  • Пробросить 80 и 443 порты на вашем маршрутизаторе провилом типа datnat с указанием ip адреса хоста с прокси.
  • В DNS панели администрирования вашего доменного хостинг провайдера прописать запись типа А с указанием внешнего ip адреса маршрутизатора
  • На вашем гипервизоре или пк создать виртуальную машинку и установить Ubuntu 24.04LTS

После перечисленного двигаться согласно статьи

Настройка DNS записей

В DNS панели управления вашего хостинг провайдера добавляем учетную запись типа А и в поле значение указываем ip адрес нашей VDS

-5

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

-6

Подготовка системы

Все действия в системе я произвожу под 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

Добавим 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

-7

Создание папок под проект и написание конфигурационного файла

Первым делом создаем корневой каталог 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

Процесс пошел:

-8

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

-9

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

docker compose ps

-10

Настройка Nginx Proxy Manager

В браузере переходим по адресу:

http://ip_addresses:81

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

-11

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

-12

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

-13

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

-14

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

-15

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

-16

Первичная настройка WordPress и вход в панель администрирования

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

-17

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

-18

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

-19

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

-20

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

-21

Все, теперь можно долго и упорно дрючить систему для получения желаемого результата:

-22

Регистрация сайта в поисковой системе Яндекс

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

В браузере переходим по адресу:

https://webmaster.yandex.ru

Нажимаем на кнопку Добавить сайт:

-23

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

-24

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

-25

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

-26

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

-27

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

-28

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

-29

На этом все, ожидаем индексации нашего сайта поисковиком и проверяем в поиске.

Регистрация сайта в Google

Для регистрации в поисковике Google у вас должна быть учетная запись, если ее нет, зарегистрируйтесь это займет пару минут.

В браузере переходим по адресу:

http://www.google.com/webmasters/tools/home?hl=ru

Нас приветствует веб консоль регистрации в поисковой системе Google, выбираем вариант Ресурс с префиксом в URL и вписываем адрес нашего ресурса, после чего нажимаем кнопку Продолжить:

-30

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

-31

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

-32

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

-33

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

-34

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

-35

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

-36

На этом все, ожидаем индексации нашего сайта поисковиком и проверяем в поиске.

Попытки продвижения ресурса

Этот пункт я постепенно буду дописывать по мере попыток пробивания лбом стенки и продвижения ресурса в массы.

Резервное копирование и восстановление

<< В процессе написания >>

Заключение

Замечательный на мой взгляд движок для блогеров как для начинающих, так и для опытных блогеров, сочетая в себе простое и лаконичное решение с высокой производительностью и хорошим функционалом.

Успехов вам дорогие мои читатели на пути к серьезной публицистике