Основной вопрос, который возникает при включении прокола HTTPv3 для сайта: "А какая разница с прошлым протоколом? Зачем включать?". Я решил провести некоторые тесты на своём реальном сайте, включая и отключая h3. Для тестов взял хорошо известный мне инструмент WebPageTest и запустил у себя.
Как обычно, он не собрался без ошибок, пришлось поковыряться. Если кому-то интересен этот локальный сервис для теста производительности сайтов, дайте знать. Сделаю по нему свежую заметку, как собрать и запустить самую свежую версию сервера и агента. Его удобно использовать, так как можно запускать локально и исключать влияние сторонних факторов, которые обязательно будут в публичных сервисах.
Запустил я локальную версию WebPageTest на своём сервере и прогнал серию тестов с отключенным h3 и включенным. Для каждого прогона делал по 9 тестов с двумя запусками, когда второй использует кэш после первого запуска. И сравнил результаты, как между одинаковыми тестами в рамках h2 и h3, так и между ними. Различия между однотипными тестами были минимальны. И между h2 и h3 разница была стабильная.
Результаты получились неоднозначными. Поленился поднять локальную копию сайта. Тестировал на рабочем, который опубликован в интернет. Интересно увидеть практические результаты, а не лабораторные. В итоге разница получилась незначительная в пользу h2. Можно сказать в пределах погрешности, кроме одного значения - Time To first Byte и как его следствие - время начала отрисовки Time to Start Render. В режиме h3 она неизменно была выше, чем в h2. То есть дольше приходил ответ на первый запрос, и позже начиналась отрисовка. Параметр TTFB важный с точки зрения СЕО, так что даже не знаю, как реагировать на эти измерения. По идее надо отключать h3.
Внимательно смотрел на результаты и сравнивал. H3 даёт по всем параметрам результаты не хуже h2, а где-то даже лучше. DNS Lookup одинаковый, то есть проседания на DNS запросы нет, Total Connection Time у h3 неизменно ниже, загрузка всех элементов чуть быстрее, но Time to First Byte, за который по идее отвечает непосредственно сервер, всегда у h3 выше и из-за этого едут все остальные метрики, так как и отрисовка, и полная загрузка начинают отставать. Такое ощущение, что причина в реализации h3 в самом веб сервере. Надо тестировать с другими, но это довольно хлопотно, если разворачивать реальный сайт, а не синтетические странички.
Внизу показал результат сравнения, где получилась наиболее усреднённая картинка. Думаю, что разверну сайт отдельно локально и потестирую. Надо понять, в каком режиме всё же лучше оставлять сайты. В целом, с обоими версиями HTTP у меня результат получился хорошим, ниже рекомендованного порога, который считается хорошим результатом. Но всё равно, чем меньше, тем лучше. HTTPv3 пока отключил.
Было бы интересно узнать, если кто-то делал подобные тесты или видел где-то результаты. Нет возможности посвятить много времени этому вопросу, чтобы окончательно разобраться. Один сайт и веб сервер - не показатель. Надо массовые тесты делать.
#webserver #webpagetest
Как обычно, он не собрался без ошибок, пришлось поковыряться. Если кому-то интересен этот локальный сервис для теста производительности сайтов, дайте знать. Сделаю по нему свежую заметку, как собрать и запустить самую свежую версию сервера и агента. Его удобно использовать, так как можно запускать локально и исключать влияние сторонних факторов, которые обязательно будут в публичных сервисах.
Запустил я локальную версию WebPageTest на своём сервере и прогнал серию тестов с отключенным h3 и включенным. Для каждого прогона делал по 9 тестов с двумя запусками, когда второй использует кэш после первого запуска. И сравнил результаты, как между одинаковыми тестами в рамках h2 и h3, так и между ними. Различия между однотипными тестами были минимальны. И между h2 и h3 разница была стабильная.
Результаты получились неоднозначными. Поленился поднять локальную копию сайта. Тестировал на рабочем, который опубликован в интернет. Интересно увидеть практические результаты, а не лабораторные. В итоге разница получилась незначительная в пользу h2. Можно сказать в пределах погрешности, кроме одного значения - Time To first Byte и как его следствие - время начала отрисовки Time to Start Render. В режиме h3 она неизменно была выше, чем в h2. То есть дольше приходил ответ на первый запрос, и позже начиналась отрисовка. Параметр TTFB важный с точки зрения СЕО, так что даже не знаю, как реагировать на эти измерения. По идее надо отключать h3.
Внимательно смотрел на результаты и сравнивал. H3 даёт по всем параметрам результаты не хуже h2, а где-то даже лучше. DNS Lookup одинаковый, то есть проседания на DNS запросы нет, Total Connection Time у h3 неизменно ниже, загрузка всех элементов чуть быстрее, но Time to First Byte, за который по идее отвечает непосредственно сервер, всегда у h3 выше и из-за этого едут все остальные метрики, так как и отрисовка, и полная загрузка начинают отставать. Такое ощущение, что причина в реализации h3 в самом веб сервере. Надо тестировать с другими, но это довольно хлопотно, если разворачивать реальный сайт, а не синтетические странички.
Внизу показал результат сравнения, где получилась наиболее усреднённая картинка. Думаю, что разверну сайт отдельно локально и потестирую. Надо понять, в каком режиме всё же лучше оставлять сайты. В целом, с обоими версиями HTTP у меня результат получился хорошим, ниже рекомендованного порога, который считается хорошим результатом. Но всё равно, чем меньше, тем лучше. HTTPv3 пока отключил.
Было бы интересно узнать, если кто-то делал подобные тесты или видел где-то результаты. Нет возможности посвятить много времени этому вопросу, чтобы окончательно разобраться. Один сайт и веб сервер - не показатель. Надо массовые тесты делать.
#webserver #webpagetest
Коротенькая заметка про небольшой полностью бесплатный полезный сервис, который я стал использовать - newreleases.io. Добавляешь туда ссылку на какой-то проект, и он начинает следить за выходом обновлений. Поддерживаются различные источники информации - репозитории GitHub, GitLab, хранилище контейнеров Docker Hub и многие другие. Я по факту использовал только ссылки на guthub и docker hub, так как всё, что меня интересует, живёт там.
Сервис отображает все добавленные проекты в своём интерфейсе с номерами свежих версий, где можно быстро посмотреть историю версий и изменения, если они описаны.
Плюс, newreleases отправляет с настроенной периодичностью письма на почту со всеми обновлениями. Сделано просто и удобно.
Например, мне регулярно приходится обновлять Rocket.Chat. Каждый раз я иду в репозиторий, смотрю, какая там вышла свежая стабильная версия, меняю версию в инвентаре и обновляю контейнеры, перезапускаю. С newreleases задача упрощается.
Я наполнил список интересующими меня проектами. Теперь в едином интерфейсе с уведомлениями на почту могу следить за обновлениями. Да и просто список смотрится наглядно. Удобно быстро найти номер свежей версии интересующего тебя продукта.
У меня получился такой список:
- Rocket.Chat
- Joplin
- Gatus
- Docker-volume-backup
- Prometheus
- Php-src
- Zabbix
- Localsend
- Grafana
- Angie
- NXS-backup
- Roundcube
- Postfixadmin
- Lynis
- PeerTube
- ExplorerPatcher
- Scrcpy
- WebPageTest
- WG-easy
- Teamgram-server
- Cdebug
- Labean
- Pupirka
- Zabbix-in-Telegram
Скорее всего будет дополняться. Это только что, что вспомнил, когда принял решение пользоваться.
#сервис
Сервис отображает все добавленные проекты в своём интерфейсе с номерами свежих версий, где можно быстро посмотреть историю версий и изменения, если они описаны.
Плюс, newreleases отправляет с настроенной периодичностью письма на почту со всеми обновлениями. Сделано просто и удобно.
Например, мне регулярно приходится обновлять Rocket.Chat. Каждый раз я иду в репозиторий, смотрю, какая там вышла свежая стабильная версия, меняю версию в инвентаре и обновляю контейнеры, перезапускаю. С newreleases задача упрощается.
Я наполнил список интересующими меня проектами. Теперь в едином интерфейсе с уведомлениями на почту могу следить за обновлениями. Да и просто список смотрится наглядно. Удобно быстро найти номер свежей версии интересующего тебя продукта.
У меня получился такой список:
- Rocket.Chat
- Joplin
- Gatus
- Docker-volume-backup
- Prometheus
- Php-src
- Zabbix
- Localsend
- Grafana
- Angie
- NXS-backup
- Roundcube
- Postfixadmin
- Lynis
- PeerTube
- ExplorerPatcher
- Scrcpy
- WebPageTest
- WG-easy
- Teamgram-server
- Cdebug
- Labean
- Pupirka
- Zabbix-in-Telegram
Скорее всего будет дополняться. Это только что, что вспомнил, когда принял решение пользоваться.
#сервис
Не знаю, зачем может пригодиться сервис, о котором пойдёт дальше речь. Просто мне он показался необычным и прикольным – seashells.io. С его помощью можно через pipe отправить вывод любой консольной команды в браузер в режиме реального времени.
Идём по ссылке и смотрим на свой htop в режиме реального времени. Соответственно, можно придумать различные трюки с ним. Например, отправлять все новые команды консоли в браузер:
Можно логи туда направить:
Можно какой-то цикл запустить и смотреть на его выполнение:
Сервис бесплатный, опенсорсный. Если сильно хочется, можно собрать и запустить у себя серверную часть:
По умолчанию запустится на порту 8888. Можно идти по IP адресу в веб интерфейс: http://10.20.1.36:8888/
Отправляем команду на свой сервер:
В ссылке меняете seashells.io на 10.20.1.36, либо в локальном DNS назначаете seashells.io адрес своего сервера. А можно просто в исходниках поправить имя домена. В корне репозитория открываете файл main.go и меняете там baseUrl на свой. Тут же и ограничения на 5 одновременных подключений указано, можете тоже поменять. Я попробовал, пересобрал, всё получилось.
Если работать с этой штукой постоянно, то можно установить специальный клиент:
Такая необычная и простенькая программа уровня курсовой работы студента-программиста. Можете код посмотреть, что-то поменять там. Он простой и легко читается.
⇨ 🌐 Сайт / Исходники
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#remote
# htop | nc seashells.io 1337
serving at https://seashells.io/v/f45rYSeF
Идём по ссылке и смотрим на свой htop в режиме реального времени. Соответственно, можно придумать различные трюки с ним. Например, отправлять все новые команды консоли в браузер:
# exec > >(nc seashells.io 1337) 2>&1
Можно логи туда направить:
# tail -f /var/log/syslog | nc seashells.io 1337
Можно какой-то цикл запустить и смотреть на его выполнение:
# while true; do date +'%d-%b-%Y-%H:%M:%S'; sleep 1; done | nc seashells.io 1337
Сервис бесплатный, опенсорсный. Если сильно хочется, можно собрать и запустить у себя серверную часть:
# apt install golang git
# git clone https://github.com/anishathalye/seashells-server
# cd seashells-server
# go build
# cp env.sample env
# ./run.bash
По умолчанию запустится на порту 8888. Можно идти по IP адресу в веб интерфейс: http://10.20.1.36:8888/
Отправляем команду на свой сервер:
# htop | nc 10.20.1.36 1337
serving at https://seashells.io/v/Nuns8eRT
В ссылке меняете seashells.io на 10.20.1.36, либо в локальном DNS назначаете seashells.io адрес своего сервера. А можно просто в исходниках поправить имя домена. В корне репозитория открываете файл main.go и меняете там baseUrl на свой. Тут же и ограничения на 5 одновременных подключений указано, можете тоже поменять. Я попробовал, пересобрал, всё получилось.
Если работать с этой штукой постоянно, то можно установить специальный клиент:
# apt install python3-pip python3.11-venv
# python3 -m venv ~/seashells
# cd ~/seashells/bin/pip
# ./pip3 install seashells
# htop | ./seashells -i 10.20.1.36 -p 1337 --delay 5
serving at http://10.20.1.36:8888/v/uJe2XRUQ
Такая необычная и простенькая программа уровня курсовой работы студента-программиста. Можете код посмотреть, что-то поменять там. Он простой и легко читается.
⇨ 🌐 Сайт / Исходники
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#remote
У меня в канале в разное время выходили разборы рекомендаций по безопасности от проекта CIS — Center for Internet Security. Кто не видел их, рекомендую. Я почерпнул оттуда некоторые настройки для своих установок. Сами документы объёмные. Постарался взять из них самую суть, которая пригодится в среднестатистическом применении:
▪️ Nginx
▪️ MySQL 5.7
▪️ Apache 2.4
▪️ Debian 11
▪️ Docker
▪️ Ubuntu 22.04 LTS
▪️ PostgreSQL 16
Софт с тех пор уже обновился, вышли новые рекомендации на основе старых, но я не прорабатывал обновления. Базовые настройки чаще всего остаются те же самые с минимальными изменениями.
Отдельно отмечу проект Docker Bench for Security, который автоматически проверяет образы Docker на соответствие рекомендациям CIS.
Сегодня хочу развить эту тему и познакомить вас с проектом CIS Debian 10/11/12 Hardening от известного международного хостера OVH, который когда-то сильно горел. Этот проект состоит из bash скриптов для проверки вашей системы на базе Debian на соответствие рекомендациям по безопасности.
Проект сделан для автоматизации и гибкой, выборочной проверки. Тесты настраиваются, есть возможность исключать какие-то проверки. Можно проводить только аудит, а можно сразу применять изменения для приведения системы в заданные соответствия.
Покажу кратко, как пользоваться этими скриптами. Клонируем репозиторий:
Создаём файл
Теперь можно запускать как по отдельности проверки, так и все разом. Проверки находятся в директории
Я проверку провалил. У меня
Для того, чтобы запустить все тесты разом, можно использовать отдельный скрипт в папке
Будут выполнены все проверки, результат вывалится в консоль. Это неудобно, так как он может быть огромным. Лучше сразу направить вывод в текстовый файл:
Потом файл можно спокойно посмотреть, осмыслить. Смотреть удобно в less с подсветкой:
В конце увидите итоговый результат:
Его можно получить в json:
Для каждой проверки есть свой конфиг в
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#cis #security
▪️ Nginx
▪️ MySQL 5.7
▪️ Apache 2.4
▪️ Debian 11
▪️ Docker
▪️ Ubuntu 22.04 LTS
▪️ PostgreSQL 16
Софт с тех пор уже обновился, вышли новые рекомендации на основе старых, но я не прорабатывал обновления. Базовые настройки чаще всего остаются те же самые с минимальными изменениями.
Отдельно отмечу проект Docker Bench for Security, который автоматически проверяет образы Docker на соответствие рекомендациям CIS.
Сегодня хочу развить эту тему и познакомить вас с проектом CIS Debian 10/11/12 Hardening от известного международного хостера OVH, который когда-то сильно горел. Этот проект состоит из bash скриптов для проверки вашей системы на базе Debian на соответствие рекомендациям по безопасности.
Проект сделан для автоматизации и гибкой, выборочной проверки. Тесты настраиваются, есть возможность исключать какие-то проверки. Можно проводить только аудит, а можно сразу применять изменения для приведения системы в заданные соответствия.
Покажу кратко, как пользоваться этими скриптами. Клонируем репозиторий:
# git clone https://github.com/ovh/debian-cis.git && cd debian-cis
Создаём файл
/etc/default/cis-hardening
и добавляем туда информацию о директории, из которой мы будем запускать скрипты:# cp debian/default /etc/default/cis-hardening
# sed -i "s#CIS_LIB_DIR=.*#CIS_LIB_DIR='$(pwd)'/lib#" /etc/default/cis-hardening
# sed -i "s#CIS_CHECKS_DIR=.*#CIS_CHECKS_DIR='$(pwd)'/bin/hardening#" /etc/default/cis-hardening
# sed -i "s#CIS_CONF_DIR=.*#CIS_CONF_DIR='$(pwd)'/etc#" /etc/default/cis-hardening
# sed -i "s#CIS_TMP_DIR=.*#CIS_TMP_DIR='$(pwd)'/tmp#" /etc/default/cis-hardening
Теперь можно запускать как по отдельности проверки, так и все разом. Проверки находятся в директории
bin/hardening
. На каждый тест – отдельный bash скрипт с осмысленным названием. Например, 1.1.11_var_log_partition.sh
. Запускаем:# ./1.1.11_var_log_partition.sh
1.1.11_var_log_partition [INFO] Working on 1.1.11_var_log_partition
1.1.11_var_log_partition [INFO] [DESCRIPTION] /var/log on separate partition.
1.1.11_var_log_partition [INFO] Checking Configuration
1.1.11_var_log_partition [INFO] Performing audit
1.1.11_var_log_partition [INFO] Verifying that /var/log is a partition
1.1.11_var_log_partition [ KO ] /var/log is not a partition
1.1.11_var_log_partition [ KO ] Check Failed
Я проверку провалил. У меня
/var/log
находится на корневом разделе. С точки зрения безопасности и стабильности работы системы это не очень хорошо. Во-первых, логи могут заполнить весь корневой раздел. Во-вторых, отдельный раздел под логи можно смонтировать для большей безопасности с некоторыми дополнительными настройками, типа noexec, nosuid, noatime и т.д. Я всё это понимаю, но мне чаще всего удобнее с одним общим разделом для всего.Для того, чтобы запустить все тесты разом, можно использовать отдельный скрипт в папке
bin
:# ./hardening.sh --audit
Будут выполнены все проверки, результат вывалится в консоль. Это неудобно, так как он может быть огромным. Лучше сразу направить вывод в текстовый файл:
# ./hardening.sh --audit > ~/cis.txt
Потом файл можно спокойно посмотреть, осмыслить. Смотреть удобно в less с подсветкой:
# less -R ~/cis.txt
В конце увидите итоговый результат:
Total Passed Checks : [ 102/243 ]
Total Failed Checks : [ 141/243 ]
Enabled Checks Percentage : 100.00 %
Conformity Percentage : 41.97 %
Его можно получить в json:
# ./hardening.sh --audit --summary-json
Для каждой проверки есть свой конфиг в
etc/conf.d
, где её можно настроить или отключить. По проверкам можно делать либо аудит, либо вносить изменения в систему.❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#cis #security
Небольшой полезный проект на тему WireGuard, который в простых случаях заменяет веб интерфейс – wg-cmd. С его помощью можно в консольном режиме настроить сервер, добавить пользователей и прямо с консоли через QR-код настроить клиентов. Удобно, если сами настраиваете клиентов, к примеру, для своей семьи и прочих родственников, чьи смартфоны у вас под рукой.
Сразу предугадывая сообщения на тему того, что WG блокируют и т.д., скажу, что использовать WG надо внутри РФ на VPS. Это не заметка про то, как обходить блокировки и прочие ограничения. К этой VPS можно подключаться откуда-то извне (не наоборот) любым способом, который доступен. И на этой VPS решать все свои задачи, не трогая клиентские устройства.
Сразу напишу готовую инструкцию, чтобы можно было быстро воспроизвести. Делать всё буду на Debian 12.
Запустится консольный установщик. Можно на все вопросы ответить по умолчанию, ничего не меняя. Программа создаст все необходимые конфигурационные файлы, добавит правила в iptables, создаст wg интерфейс и юнит systemd.
После конфигурации откроется интерфейс управления сервером, где можно добавить клиента и тут же в консоли посмотреть QR код для него. В основном для этого обычно используется какой-то простенький веб интерфейс, типа wg-easy. Маленькая программа wg-cmd его заменяет. Можно добавлять и удалять пользователей, и считывать QR-коды. Больше она ничего не умеет. При желании можно руками в конфигурационных файлах клиентов что-то поправить, добавив дополнительные настройки.
Я лично проверил, всё завелось без проблем. Единственное, пришлось шрифт терминала немного уменьшить, чтобы QR-код поместился. Экрана ноута не хватило по высоте. Это самый простой и быстрый способ настроить WG и подключить клиента. И не надо веб интерфейс наружу выставлять и потом думать, чем его закрыть.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#wireguard #vpn
Сразу предугадывая сообщения на тему того, что WG блокируют и т.д., скажу, что использовать WG надо внутри РФ на VPS. Это не заметка про то, как обходить блокировки и прочие ограничения. К этой VPS можно подключаться откуда-то извне (не наоборот) любым способом, который доступен. И на этой VPS решать все свои задачи, не трогая клиентские устройства.
Сразу напишу готовую инструкцию, чтобы можно было быстро воспроизвести. Делать всё буду на Debian 12.
# apt update && apt install wireguard-tools iptables
# curl -SL https://github.com/andrianbdn/wg-cmd/releases/download/v0.1.6/wg-cmd-0.1.6-linux-amd64 -o /usr/local/bin/wg-cmd
# chmod 755 /usr/local/bin/wg-cmd
# wg-cmd
Запустится консольный установщик. Можно на все вопросы ответить по умолчанию, ничего не меняя. Программа создаст все необходимые конфигурационные файлы, добавит правила в iptables, создаст wg интерфейс и юнит systemd.
После конфигурации откроется интерфейс управления сервером, где можно добавить клиента и тут же в консоли посмотреть QR код для него. В основном для этого обычно используется какой-то простенький веб интерфейс, типа wg-easy. Маленькая программа wg-cmd его заменяет. Можно добавлять и удалять пользователей, и считывать QR-коды. Больше она ничего не умеет. При желании можно руками в конфигурационных файлах клиентов что-то поправить, добавив дополнительные настройки.
Я лично проверил, всё завелось без проблем. Единственное, пришлось шрифт терминала немного уменьшить, чтобы QR-код поместился. Экрана ноута не хватило по высоте. Это самый простой и быстрый способ настроить WG и подключить клиента. И не надо веб интерфейс наружу выставлять и потом думать, чем его закрыть.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#wireguard #vpn
Назрел вопрос обновления рабочего ноутбука. У меня сейчас ThinkPad T480, но он уже довольно старый. Хочу купить новый, но совершенно не знаю, какой брать. Последние 10 лет у меня были ноуты ThinkPad, но сейчас уже не вижу смысла на них фокусироваться. Они ничем не лучше всех остальных.
В идеале, конечно, мне хотелось бы ноутбук с нормальной док станцией, чтобы пришёл, воткнул его в док и больше не тыкал никакие провода. У меня сейчас по Type-C док для периферии. Это неудобно. Надо постоянно глазами смотреть, чтобы в разъём попасть. Он за год уже разболтался немного. Плюс, потом ещё и питание отдельно подключать, тоже прицеливаться в разъём надо. Нужно поднимать экран, чтобы нажать на кнопку питания. Классические док станции, на которые ноутбук просто ставится с закрытыми глазами, намного удобнее. Но увы, непонятно почему, их не стало.
Решил спросить у вас, кто каким современным ноутбуком пользуется для работы, особенно если приходится его носить и подключать к стационарным рабочим местам, как это делаю я. У меня дома, на даче, в офисе стоят мониторы, клавиатуры, мышки. Я прихожу и подключаю туда ноутбук. Непосредственно за ним работаю нечасто, но бывает иногда, так что совсем маленький не подойдёт. Диагональ экрана нужна 14"+. В идеале 14", но это сильно сужает выбор.
Посмотрел в магазинах. Ноутов полно всяких-разных. Такое ощущение, что они все одинаковые при схожих характеристиках. Нет чего-то особенного, удобного, необычного. Много ультрабуков 14". Смотрю в их сторону, но там Ethernet нигде нет. Без него жить можно, но мне кажется, неудобно.
Кому не влом, опишите свои ноуты, если они вам нравятся и удобны. Может так будет проще определиться. Проскакивает мысль не ломать голову, а купить что-то опять от Lenovo, типа YogaPro 14S. По характеристикам устраивает. Цена высоковата, но если модель без явных косяков, то можно раскошелиться. Года 4 на нём поработать.
Удерживает от покупки Lenovo то, что на текущем ноуте проблемы с экраном. На нём въелись отпечатки от клавиш, которые остаются, когда закрываешь крышку ноута. Это какой-то эпический фейл инженеров. Экран протёрся в некоторых местах из-за этого. Плюс у Lenovo вечные проблемы с охлаждением и тротлингом. Устал с этим воевать на текущем и прошлом ноуте. Какие-то явные просчёты инженеров, которые напрочь убирают уверенность в том, что компания может создавать нормальные ноуты, которые просто покупаешь и потом не паришься из-за косяков.
#железо
В идеале, конечно, мне хотелось бы ноутбук с нормальной док станцией, чтобы пришёл, воткнул его в док и больше не тыкал никакие провода. У меня сейчас по Type-C док для периферии. Это неудобно. Надо постоянно глазами смотреть, чтобы в разъём попасть. Он за год уже разболтался немного. Плюс, потом ещё и питание отдельно подключать, тоже прицеливаться в разъём надо. Нужно поднимать экран, чтобы нажать на кнопку питания. Классические док станции, на которые ноутбук просто ставится с закрытыми глазами, намного удобнее. Но увы, непонятно почему, их не стало.
Решил спросить у вас, кто каким современным ноутбуком пользуется для работы, особенно если приходится его носить и подключать к стационарным рабочим местам, как это делаю я. У меня дома, на даче, в офисе стоят мониторы, клавиатуры, мышки. Я прихожу и подключаю туда ноутбук. Непосредственно за ним работаю нечасто, но бывает иногда, так что совсем маленький не подойдёт. Диагональ экрана нужна 14"+. В идеале 14", но это сильно сужает выбор.
Посмотрел в магазинах. Ноутов полно всяких-разных. Такое ощущение, что они все одинаковые при схожих характеристиках. Нет чего-то особенного, удобного, необычного. Много ультрабуков 14". Смотрю в их сторону, но там Ethernet нигде нет. Без него жить можно, но мне кажется, неудобно.
Кому не влом, опишите свои ноуты, если они вам нравятся и удобны. Может так будет проще определиться. Проскакивает мысль не ломать голову, а купить что-то опять от Lenovo, типа YogaPro 14S. По характеристикам устраивает. Цена высоковата, но если модель без явных косяков, то можно раскошелиться. Года 4 на нём поработать.
Удерживает от покупки Lenovo то, что на текущем ноуте проблемы с экраном. На нём въелись отпечатки от клавиш, которые остаются, когда закрываешь крышку ноута. Это какой-то эпический фейл инженеров. Экран протёрся в некоторых местах из-за этого. Плюс у Lenovo вечные проблемы с охлаждением и тротлингом. Устал с этим воевать на текущем и прошлом ноуте. Какие-то явные просчёты инженеров, которые напрочь убирают уверенность в том, что компания может создавать нормальные ноуты, которые просто покупаешь и потом не паришься из-за косяков.
#железо
dns-shop.ru
Купить 14.5" Ноутбук Lenovo YogaPro 14S серый в интернет-магазине DNS. Характеристики, цена Lenovo YogaPro 14S | 5458672.
Купить с гарантией качества 14.5" Ноутбук Lenovo YogaPro 14S серый в интернет-магазине DNS. Выгодные цены на Lenovo YogaPro 14S в сети магазинов DNS. Можно купить в кредит или рассрочку.
Не забывайте писать благодарственные комментарии авторам и лайкать их видео. Это очень вдохновляет и мотивирует, не меньше денежных компенсаций затраченного времени.
🔥Как взломать Linux-машину #STRUTTED средней сложности на #HackTheBox
🔥HackTheBox: SUPPORT.HTB | Вскрываем машину Windows в Active Directory | Пошаговое руководство
Очень интересный автор вернулся к созданию роликов. Выпустил сразу 2 прохождения заданий на взлом систем на публичной платформе HackTheBox. Если не смотрели его предыдущие ролики, рекомендую. Очень интересно и познавательно.
⇨ JetKVM: Promises Made, Promises Kept?
Маленький удобный IP-KVM для удалённого управления сервером или компьютером, у которых нет такой штатной функциональности. Стоит всего $69, но не знаю, можно ли заказать в РФ.
⇨ Тестирую 13 ЛУЧШИХ нейросетей в реальной задаче разработчика
Автор протестировал топовые нейросети на задаче по написанию кода приложения на python по заданному промту. Интересное исследование. 4 нейросети написали полностью корректное приложение по заданному запросу. Как думаете, программистам уже стоит переживать по этому поводу? Хорошо, что нейросети пока не умеют ремонтировать компьютерные стулья. Системным администраторам можно не переживать за свои рабочие места.
⇨ Private Photo Cloud with Powerful Features - Immich!
Immich – одно из самых популярных open source решений для хостинга фотографий и видеороликов. На него регулярно делают обзоры. Этот очень подробный, где большая часть – демонстрация возможностей системы, чего я не видел в других подобных видео. Если интересна тема – посмотрите.
⇨ Утилиты DNS host и dig | Компьютерные сети 2025 - 23
Очередной обновлённый урок бесплатного курса по сетям от Созыкина Андрея. В нём он рассказывает про утилиты в Linux host и dig. Я, кстати, именно их обычно и использую, а не nslookup. Добавил ссылки на мои заметки по ним.
⇨ FASTEST Way to Host Your Website with Linux and Docker!
Описание настройки веб сервера на арендованном VPS на Linux. Всё запускается в контейнерах Docker. Схема описанного проекта следующая: Cloudflare -> Traefik -> Nginx. Половина видео - реклама хостера, но с другой стороны там наглядно видно, как он настраивает DNS записи, Firewall через веб интерфейс хостера. Может быть полезно тем, кто не очень представляет, как всё это делается на практике.
⇨ Теперь у меня тоже есть mini pc
Обзор немного необычного MiniPC с 4-мя ethernet портами. Автор рассказал, зачем ему эта штука и как он её будет использовать.
⇨ Mini PCs with 128 GB of RAM in Home Lab with new RAM kit!
Рядом размещу ещё один обзор на MiniPC со 128 ГБ памяти!
🔥Proxmox Swap and Memory Hack for Home Labs!
Любопытная рекомендация автора – компенсировать недостаток оперативной памяти в сервере использованием очень быстрого SSD диска Intel Optane под SWAP. Он воткнул такой диск в свой Proxmox, отдал его полностью под SWAP, затюнил параметры ядра под более активное использование подкачки и потестировал. Запустил виртуалок с суммарным потреблением памяти больше, чем есть на сервере. Ну и в целом всё заработало. Виртуалки не умерли, хост не завис и в целом всё работало.
⇨ Dashboards for NGINX/Apache Web Logs - GoAccess
Очередной обзор на goaccess – простую и удобную программу для анализа логов веб сервера. Если не знакомы с ней, рекомендую познакомиться.
#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Как взломать Linux-машину #STRUTTED средней сложности на #HackTheBox
Друзья, создание каждого выпуска — это большое вложение времени и сил. Если вам нравится то, что я делаю, и хочется поддержать, буду рад вашей помощи!
Так же, если вы хотите прокачать свои навыки, буду рад, если вы зарегистрируетесь на HackTheBox по моей…
Так же, если вы хотите прокачать свои навыки, буду рад, если вы зарегистрируетесь на HackTheBox по моей…
Давненько не было публикаций на тему почтовых серверов. Они сейчас как-будто в тень ушли. Ни выступлений по теме почты не вижу, ни обсуждений, настройки, каких-то значимых новостей, если не считать новости о новых уязвимостях Exim. Хотя это тот сервис, которым все по-прежнему пользуются и не собираются отказываться.
Всё чаще почту предпочитают отдавать на откуп готовым платным сервисам. Правда иногда смотрю на расценки по услугам, а это не так, чтобы дёшево. Хотя в настройке почтового сервера ничего особенного нет. Надо только один раз вникнуть в настройку, организовать корректные записи DNS и получить беспроблемные внешние IP адреса. А дальше почтовый сервер обычно большого внимания к себе не требует, после того как всё настроишь и отладишь.
Я к чему эту подводку написал. Недавно просто увидел у одного провайдера новую услугу по отправке почты. Не буду называть название, чтобы не начали писать, что это скрытая реклама и т.д. Вроде и не особо дорого, можно купить и не заморачиваться. Но тут есть один нюанс, как это обычно бывает с сервисами. Можно легко попасть на приличные бабки.
Работал с одним проектом, который получил вал отправленных писем на ровном месте. Это было что-то вроде социальной сети, где можно друг другу отправлять сообщения и уведомления приходят на почту. Время от времени появлялись боты, которые массово начинали спамить по личкам и это вызывало вал отправленных писем. У нас сервер свой был и проблем это особо не доставляло. Причём я первый и узнавал об этом через мониторинг отправленных писем. Это быстро фиксили и не было проблем.
А если за почту платить, то можно влететь на ровном месте. Почта очень хорошо отправляется, производительность даже рядового сервера позволяет отправлять десятки тысяч писем за минуту. Если ломанут проект и начнут через него спамить, то очень быстро отправят миллионы писем, если не выставлены никакие лимиты.
Я вообще изначально хотел написать про очень старый и известный сервис для рассылок, но оформлю его вечером отдельной публикацией, а то как-то сумбурно получилось обо всём понемногу. Смешал в одной публикации почтовый сервер как службу для пользователей и сервис для рассылок.
Если надумаете поднимать свой почтовый сервер, а это по идее сейчас актуально стало, так как бесплатных сервисов, типа тех, что были у Яндекса или Мейла, больше нет. Я вообще не знаю, где можно бесплатно поднять почту на своём домене. То вот вам пару наводок:
▪️Свой почтовый сервер на базе Postfix + Dovecot. Статья не сильно старая. Написана пару лет назад, но осенью я её обновлял в соответствии с изменениями. В комментариях люди пишут, что всё ещё актуальна. Так что с её помощью можно почти в режиме copy-paste всё сделать.
Если ищите себе вариант готового бесплатного сервера, то у меня почти все популярные варианты были на канале:
▪️Mailcow
▪️Mail-in-a-Box
▪️hMailServer
▪️Tegu
▪️Iredmail
▪️Carbonio CE
▪️Poste.io
▪️docker-mailserver
▪️Modoboa
Вроде тут всё более-менее популярное. Если знаете какой-то удобный и функциональный почтовый сервер, то поделитесь информацией.
Ещё интересно было бы узнать, кто пользуется своими почтовыми серверами, и какими именно, а кто покупает как сервис, и где. Это была бы полезная информация. Я сейчас мало вижу информации о почтовых серверах. Даже не знаю, что сейчас наиболее популярное. По теме импортозамещения должно быть много новых имён. Последние несколько лет появилось много российских почтовых серверов. Как минимум от трёх российских вендоров я получал предложения о сотрудничестве. Но у меня не особо развит этот формат, так что отказывал. Тестировать почтовый сервер довольно хлопотно, хотя про астру и их RuPost я в своё время писал статью.
#mailserver
Всё чаще почту предпочитают отдавать на откуп готовым платным сервисам. Правда иногда смотрю на расценки по услугам, а это не так, чтобы дёшево. Хотя в настройке почтового сервера ничего особенного нет. Надо только один раз вникнуть в настройку, организовать корректные записи DNS и получить беспроблемные внешние IP адреса. А дальше почтовый сервер обычно большого внимания к себе не требует, после того как всё настроишь и отладишь.
Я к чему эту подводку написал. Недавно просто увидел у одного провайдера новую услугу по отправке почты. Не буду называть название, чтобы не начали писать, что это скрытая реклама и т.д. Вроде и не особо дорого, можно купить и не заморачиваться. Но тут есть один нюанс, как это обычно бывает с сервисами. Можно легко попасть на приличные бабки.
Работал с одним проектом, который получил вал отправленных писем на ровном месте. Это было что-то вроде социальной сети, где можно друг другу отправлять сообщения и уведомления приходят на почту. Время от времени появлялись боты, которые массово начинали спамить по личкам и это вызывало вал отправленных писем. У нас сервер свой был и проблем это особо не доставляло. Причём я первый и узнавал об этом через мониторинг отправленных писем. Это быстро фиксили и не было проблем.
А если за почту платить, то можно влететь на ровном месте. Почта очень хорошо отправляется, производительность даже рядового сервера позволяет отправлять десятки тысяч писем за минуту. Если ломанут проект и начнут через него спамить, то очень быстро отправят миллионы писем, если не выставлены никакие лимиты.
Я вообще изначально хотел написать про очень старый и известный сервис для рассылок, но оформлю его вечером отдельной публикацией, а то как-то сумбурно получилось обо всём понемногу. Смешал в одной публикации почтовый сервер как службу для пользователей и сервис для рассылок.
Если надумаете поднимать свой почтовый сервер, а это по идее сейчас актуально стало, так как бесплатных сервисов, типа тех, что были у Яндекса или Мейла, больше нет. Я вообще не знаю, где можно бесплатно поднять почту на своём домене. То вот вам пару наводок:
▪️Свой почтовый сервер на базе Postfix + Dovecot. Статья не сильно старая. Написана пару лет назад, но осенью я её обновлял в соответствии с изменениями. В комментариях люди пишут, что всё ещё актуальна. Так что с её помощью можно почти в режиме copy-paste всё сделать.
Если ищите себе вариант готового бесплатного сервера, то у меня почти все популярные варианты были на канале:
▪️Mailcow
▪️Mail-in-a-Box
▪️hMailServer
▪️Tegu
▪️Iredmail
▪️Carbonio CE
▪️Poste.io
▪️docker-mailserver
▪️Modoboa
Вроде тут всё более-менее популярное. Если знаете какой-то удобный и функциональный почтовый сервер, то поделитесь информацией.
Ещё интересно было бы узнать, кто пользуется своими почтовыми серверами, и какими именно, а кто покупает как сервис, и где. Это была бы полезная информация. Я сейчас мало вижу информации о почтовых серверах. Даже не знаю, что сейчас наиболее популярное. По теме импортозамещения должно быть много новых имён. Последние несколько лет появилось много российских почтовых серверов. Как минимум от трёх российских вендоров я получал предложения о сотрудничестве. Но у меня не особо развит этот формат, так что отказывал. Тестировать почтовый сервер довольно хлопотно, хотя про астру и их RuPost я в своё время писал статью.
#mailserver
Server Admin
Настройка почтового сервера на Debian: postfix + dovecot + web...
Подробная пошаговая установка и настройка почтового сервера на Debian (postfix + dovecot): от подготовки DNS записей до запуска служб.
📩 Продолжая тему почтовых серверов. Есть очень старый и известный сервис для организации почтовых рассылок на базе своего почтового сервера – Mailman (GNU Mailing List Manager). Скорее всего вы его где-то встречали или даже пользовались. Это очень старый, известный продукт, который поддерживается и актуален до сих пор. Не так давно вышла новая 3-я версия.
Часто можно встретить этот продукт либо на поддомене какого-то известного бренда, либо в виде алиаса. Например, на Mailman работают рассылки Nginx: mailman.nginx.org. Ещё пример – рассылки Proxmox: lists.proxmox.com/cgi-bin/mailman/listinfo/. Примеров можно найти очень много. Mailman любят использовать различные open source проекты.
При этом Mailman относительно легко настроить, если у вас, к примеру, есть свой сервер на Postfix. Для управления непосредственно рассылками есть веб интерфейс, а в почтовом сервере достаточно будет создать отдельный домен для рассылок и указать, что транспортом по этому домену занимается Mailman. Продукт старый и известный, в сети много инструкций. Настроить будет не трудно и не долго. При условии, что у вас есть почтовый сервер и вы умеете с ним работать. Если нет, то лучше выбрать что-то другое.
📌 Mailman закрывает следующие потребности:
🟢 Публичная рассылка. Примеры я привёл в начале. Любой пользователь может подписаться или отписаться.
🔴 Закрытая рассылка. Подписывает людей администратор. Назначаются ответственные лица, которые могут рассылать сообщения. Типичная история для офиса.
🟡 Модерируемая рассылка. Подписаться или отправить сообщение в рассылку может любой пользователь. При этом все отправляемые сообщения проверяются и одобряются модератором или группой модераторов.
Одно из удобств Mailman – добавлять и удалять пользователей в рассылки можно через консоль. Это актуально для тех, кто любит писать какие-то свои велосипеды из скрипов. Например, если речь идёт об офисе, то с помощью Mailman можно организовать рассылки внутри компании. Сделать рассылки по отделам, по направлениям, общую для всей компании. Добавлять туда пользователей, назначать тех, кто может отправлять письма на общие рассылки и т.д. К созданию пользователя можно добавить скрипт по добавлению его в те или иные рассылки.
В завершении добавлю, что если у вас потребность в рассылках очень простая, а сами списки и управление осуществляются каким-то сторонним софтом, например, движком сайта или cmr, то можно использовать простой почтовый сервер, рассчитанный именно на отправку. Его и настраивать быстрее, проще, и обслуживать почти не надо. Примеры таких серверов:
- Cuttlefish
- Postal
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#mailserver
Часто можно встретить этот продукт либо на поддомене какого-то известного бренда, либо в виде алиаса. Например, на Mailman работают рассылки Nginx: mailman.nginx.org. Ещё пример – рассылки Proxmox: lists.proxmox.com/cgi-bin/mailman/listinfo/. Примеров можно найти очень много. Mailman любят использовать различные open source проекты.
При этом Mailman относительно легко настроить, если у вас, к примеру, есть свой сервер на Postfix. Для управления непосредственно рассылками есть веб интерфейс, а в почтовом сервере достаточно будет создать отдельный домен для рассылок и указать, что транспортом по этому домену занимается Mailman. Продукт старый и известный, в сети много инструкций. Настроить будет не трудно и не долго. При условии, что у вас есть почтовый сервер и вы умеете с ним работать. Если нет, то лучше выбрать что-то другое.
📌 Mailman закрывает следующие потребности:
🟢 Публичная рассылка. Примеры я привёл в начале. Любой пользователь может подписаться или отписаться.
🔴 Закрытая рассылка. Подписывает людей администратор. Назначаются ответственные лица, которые могут рассылать сообщения. Типичная история для офиса.
🟡 Модерируемая рассылка. Подписаться или отправить сообщение в рассылку может любой пользователь. При этом все отправляемые сообщения проверяются и одобряются модератором или группой модераторов.
Одно из удобств Mailman – добавлять и удалять пользователей в рассылки можно через консоль. Это актуально для тех, кто любит писать какие-то свои велосипеды из скрипов. Например, если речь идёт об офисе, то с помощью Mailman можно организовать рассылки внутри компании. Сделать рассылки по отделам, по направлениям, общую для всей компании. Добавлять туда пользователей, назначать тех, кто может отправлять письма на общие рассылки и т.д. К созданию пользователя можно добавить скрипт по добавлению его в те или иные рассылки.
В завершении добавлю, что если у вас потребность в рассылках очень простая, а сами списки и управление осуществляются каким-то сторонним софтом, например, движком сайта или cmr, то можно использовать простой почтовый сервер, рассчитанный именно на отправку. Его и настраивать быстрее, проще, и обслуживать почти не надо. Примеры таких серверов:
- Cuttlefish
- Postal
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#mailserver
Самой популярной CMS в мире является Wordpress. Если не ошибаюсь, то в интернете и самих сайтов в целом больше всего именно на ней, а не только среди CMS. Сейчас не уверен, что это так, не проверял специально. Но лет 5 назад видел такую статистику.
У меня и свои сайты всегда были на Wordpress, и кучу проектов на них вёл и веду. Да и вообще, большинство блогов сделаны на WP. Это реально удобный движок. Ему приписывают проблемы с безопасностью и общую тормознутость. Но это всё мимо кассы претензии. Проблемы с безопасностью обычно в плагинах, не надо ставить всё подряд. А вопросы производительности хорошо решаются кэшированием. Контентные сайты вообще полностью в кэш загоняются и напрямую статические html отдаёт веб сервер. И всё это средствами самого движка WP. Удобно и просто в настройке.
У меня давно подготовлен набор инструментов для быстрого запуска и настройки этого движка через Docker Compose. Была когда-то давно серия статей на сайте, но они устарели, не обновлялись, поэтому ссылки на них не даю. Я на днях обновил весь этот стек и делюсь с вами информацией.
У меня будет 4 контейнера:
▪️mysql:8.4 - база данных;
▪️nginx:latest - веб сервер;
▪️wordpress:php8.3-fpm - образ с php-fpm от wordpress;
▪️wordpress:cli - консольный инструмент для управления конфигурацией wordpress.
Отдельно остановлюсь на wp-cli. Это консольная утилита, с помощью которой можно автоматизировать управление Wordpress. С её помощью можно делать как преднастройки новой установки, так и управлять уже работающим сайтом. Последнее я покажу в следующей заметке, а сейчас займёмся начальной установкой.
Я положил все необходимые файлы в отдельный репозиторий. Сделал это, чтобы вы могли их скопировать из этой заметки. Я не буду поддерживать и развивать этот проект, поэтому и с выбором репозитория не заморачивался:
В директории 3 файла:
- docker-compose.yml
- nginx_default.conf
- configure-wp.sh
С первыми двумя всё стандартно, не буду на них задерживаться. Остановлюсь подробно только на последнем файле. Это bash скрипт для wp-cli, который:
1. Устанавливает WP с заданной настройкой url и учёткой админа.
2. Устанавливает новую тему и удаляет стандартные.
3. Устанавливает и удаляет плагины.
4. Устанавливает русский язык.
Показал эти действия для примера. Туда же можно добавить какие-то материалы в виде xml файлов и через импорт их туда загнать. Это может быть удобно, если вы на потоке создаёте или тестируете какие-то темы, плагины с набором данных. Делается это примерно так:
Эти команды надо добавить в конец configure-wp.sh. Этот файл - простой набор консольных команд с wp-cli.
Перед запуском измените имя домена в
Через пару минут получите настроенный сайт wordpress с заданными параметрами и наполнением. В директориях ./db и ./wp будут лежать файлы СУБД и сайта. Возможно вам будет удобнее хранить их в volumes. Мне в директории как-то привычнее.
Если вы разработчик и работаете с Wordpress, то просто клонируйте этот проект, меняйте url, настраивайте CMS через конфиг wp-cli и всегда будете иметь возможность очень быстро развернуть свой проект в любом месте.
Данный проект не предусматривает настройку TLS, так как я подразумеваю, что входящие соединения приходят куда-то на прокси и оттуда уже летят на эти контейнеры, либо это локальный запуск для разработки. Для запуска в работу в таком виде нужно будет добавить ещё что-то для настройки сертификатов. Можно взять другой образ с Nginx, где это уже сделано. Таких образов полно. Например, linuxserver/swag. Кстати, интересный контейнер. Можно о нём отдельно рассказать.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#wordpress
У меня и свои сайты всегда были на Wordpress, и кучу проектов на них вёл и веду. Да и вообще, большинство блогов сделаны на WP. Это реально удобный движок. Ему приписывают проблемы с безопасностью и общую тормознутость. Но это всё мимо кассы претензии. Проблемы с безопасностью обычно в плагинах, не надо ставить всё подряд. А вопросы производительности хорошо решаются кэшированием. Контентные сайты вообще полностью в кэш загоняются и напрямую статические html отдаёт веб сервер. И всё это средствами самого движка WP. Удобно и просто в настройке.
У меня давно подготовлен набор инструментов для быстрого запуска и настройки этого движка через Docker Compose. Была когда-то давно серия статей на сайте, но они устарели, не обновлялись, поэтому ссылки на них не даю. Я на днях обновил весь этот стек и делюсь с вами информацией.
У меня будет 4 контейнера:
▪️mysql:8.4 - база данных;
▪️nginx:latest - веб сервер;
▪️wordpress:php8.3-fpm - образ с php-fpm от wordpress;
▪️wordpress:cli - консольный инструмент для управления конфигурацией wordpress.
Отдельно остановлюсь на wp-cli. Это консольная утилита, с помощью которой можно автоматизировать управление Wordpress. С её помощью можно делать как преднастройки новой установки, так и управлять уже работающим сайтом. Последнее я покажу в следующей заметке, а сейчас займёмся начальной установкой.
Я положил все необходимые файлы в отдельный репозиторий. Сделал это, чтобы вы могли их скопировать из этой заметки. Я не буду поддерживать и развивать этот проект, поэтому и с выбором репозитория не заморачивался:
# git clone https://gitflic.ru/project/serveradmin/wordpress.git
# cd wordpress
В директории 3 файла:
- docker-compose.yml
- nginx_default.conf
- configure-wp.sh
С первыми двумя всё стандартно, не буду на них задерживаться. Остановлюсь подробно только на последнем файле. Это bash скрипт для wp-cli, который:
1. Устанавливает WP с заданной настройкой url и учёткой админа.
2. Устанавливает новую тему и удаляет стандартные.
3. Устанавливает и удаляет плагины.
4. Устанавливает русский язык.
Показал эти действия для примера. Туда же можно добавить какие-то материалы в виде xml файлов и через импорт их туда загнать. Это может быть удобно, если вы на потоке создаёте или тестируете какие-то темы, плагины с набором данных. Делается это примерно так:
curl -O https://raw.githubusercontent.com/manovotny/wptest/master/wptest.xml
wp import wptest.xml --authors=create
Эти команды надо добавить в конец configure-wp.sh. Этот файл - простой набор консольных команд с wp-cli.
Перед запуском измените имя домена в
nginx_default.conf
и configure-wp.sh
. А также название сайта, имя пользователя и пароль в configure-wp.sh
. Больше ничего менять не надо. Запускаем:# docker compose up
Через пару минут получите настроенный сайт wordpress с заданными параметрами и наполнением. В директориях ./db и ./wp будут лежать файлы СУБД и сайта. Возможно вам будет удобнее хранить их в volumes. Мне в директории как-то привычнее.
Если вы разработчик и работаете с Wordpress, то просто клонируйте этот проект, меняйте url, настраивайте CMS через конфиг wp-cli и всегда будете иметь возможность очень быстро развернуть свой проект в любом месте.
Данный проект не предусматривает настройку TLS, так как я подразумеваю, что входящие соединения приходят куда-то на прокси и оттуда уже летят на эти контейнеры, либо это локальный запуск для разработки. Для запуска в работу в таком виде нужно будет добавить ещё что-то для настройки сертификатов. Можно взять другой образ с Nginx, где это уже сделано. Таких образов полно. Например, linuxserver/swag. Кстати, интересный контейнер. Можно о нём отдельно рассказать.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#wordpress
Продолжаю тему с Wordpress. Покажу несколько практических примеров с wp-cli. Напомню для тех, кто не читал предыдущие публикации по этой теме. Это консольный инструмент для управления CMS Wordpress. Его удобно использовать для различных прикладных задач. Ниже я покажу несколько практических примеров использования.
Утилиту wp-cli можно установить напрямую на сервер, где работают сайты. Если они в контейнерах, то удобнее запускать рядом контейнер wordpress:cli сразу в составе docker compose. По своей сути это скрипт на php, как и сам движок Wordpress.
Устанавливаем на сервер:
Или запускаем сразу из контейнера в составе docker compose:
Разберу прикладной пример анализа производительности WP. Не всегда бывает просто узнать, почему он внезапно начал тормозить. В общем случае нужно запустить профилирование php чем то наподобие xhprof или xdebug и смотреть, в чём проблема. Но это длинный путь, для того чтобы по нему пройти, необходимы знания и работа с кодом сайта. Есть путь проще с помощью wp-cli и profile-command.
Устанавливаем профайлер wp-cli/profile-command от пользователя, под которым работает сайт:
Если через compose запускаете, о пользователе переживать не надо. Там всё под одним работает.
Запускаем профилировщик, указывая ему путь к директории с сайтом.
Вы увидите разные стадии загрузки сайта. Если явно видно, что какая-то из них работает медленно, можно погрузиться в подробности. Посмотрим подробнее на загрузку плагинов, тем и хуков движка на этапе bootstrap:
Смотрим глубже на загрузку плагинов и выделяем некоторые поля:
Если какой-то плагин тормозит, вы увидите это в таблице. Более подробно про работу wp profile можно посмотреть в моей статье.
Другие примеры с wp-cli. Я опущу указание пользователя и директории сайта, чтобы команды были короче. Установка или удаление темы:
Установка, удаление плагинов:
Бэкап базы данных:
Импорт базы данных:
Удобно использовать wp-cli для бэкапа и загрузки дампа базы данных. Там используется обычный mysqldump, но тебе не нужно заботиться об учётных данных для доступа к базе. Wp-cli берёт их из настроек WP.
С помощью docker compose, wp-cli и небольших скриптов можно быстро переносить свою заготовку сайта. Вы можете описать установку нужных плагинов и тем, сохранить их настройки и в целом состояние движка в sql дампе. Потом развернуть где-то в другом месте и через команды wp-cli с импортом дампа получить нужное состояние нового сайта.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#wordpress
Утилиту wp-cli можно установить напрямую на сервер, где работают сайты. Если они в контейнерах, то удобнее запускать рядом контейнер wordpress:cli сразу в составе docker compose. По своей сути это скрипт на php, как и сам движок Wordpress.
Устанавливаем на сервер:
# curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
# chmod +x wp-cli.phar
# mv wp-cli.phar /usr/local/bin/wp
# wp --info
Или запускаем сразу из контейнера в составе docker compose:
# docker-compose run --rm wp-cli wp --info
Разберу прикладной пример анализа производительности WP. Не всегда бывает просто узнать, почему он внезапно начал тормозить. В общем случае нужно запустить профилирование php чем то наподобие xhprof или xdebug и смотреть, в чём проблема. Но это длинный путь, для того чтобы по нему пройти, необходимы знания и работа с кодом сайта. Есть путь проще с помощью wp-cli и profile-command.
Устанавливаем профайлер wp-cli/profile-command от пользователя, под которым работает сайт:
# sudo -u nginx wp package install wp-cli/profile-command:@stable
Если через compose запускаете, о пользователе переживать не надо. Там всё под одним работает.
Запускаем профилировщик, указывая ему путь к директории с сайтом.
# sudo -u nginx wp profile stage --path=/web/www
Вы увидите разные стадии загрузки сайта. Если явно видно, что какая-то из них работает медленно, можно погрузиться в подробности. Посмотрим подробнее на загрузку плагинов, тем и хуков движка на этапе bootstrap:
# sudo -u nginx wp profile stage bootstrap --path=/web/www
Смотрим глубже на загрузку плагинов и выделяем некоторые поля:
# sudo -u nginx wp profile hook plugins_loaded --fields=callback,location,time,cache_ratio,request_time --path=/web/www
Если какой-то плагин тормозит, вы увидите это в таблице. Более подробно про работу wp profile можно посмотреть в моей статье.
Другие примеры с wp-cli. Я опущу указание пользователя и директории сайта, чтобы команды были короче. Установка или удаление темы:
# wp theme install astra --activate
# wp theme uninstall twentytwentyfive
Установка, удаление плагинов:
# wp plugin install wordpress-seo --activate
# wp plugin uninstall akismet
Бэкап базы данных:
# wp-cli wp db export --add-drop-table
Импорт базы данных:
# wp-cli wp db import wp_base.sql
Удобно использовать wp-cli для бэкапа и загрузки дампа базы данных. Там используется обычный mysqldump, но тебе не нужно заботиться об учётных данных для доступа к базе. Wp-cli берёт их из настроек WP.
С помощью docker compose, wp-cli и небольших скриптов можно быстро переносить свою заготовку сайта. Вы можете описать установку нужных плагинов и тем, сохранить их настройки и в целом состояние движка в sql дампе. Потом развернуть где-то в другом месте и через команды wp-cli с импортом дампа получить нужное состояние нового сайта.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#wordpress
Server Admin
WordPress тормозит! Как быстро найти причину? | serveradmin.ru
# cd ~ # curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar Делаем исполняемым и копируем в системную директорию, откуда он будет вызываться. # chmod +x wp-cli.phar...
На днях в чате в обсуждении почтовых серверов, как обычно, поднялся вопрос прикрепления к письмам больших файлов. У облачных провайдеров типа Яндекса или Мейла есть возможность большие файлы прикреплять к письмам в виде ссылки, а сами файлы загружаются и хранятся на их файловых сервисах. Когда пользователей пересаживаешь с этих сервисов, они очень грустят и просят такую же функциональность на своих серверах.
В комментариях читатель упомянул плагин для популярного веб интерфейса Roundcube, который позволяет так же просто и удобно прикреплять к письмам большие файлы в виде ссылок на собственное хранилище NextCloud. Раньше я не встречал подобной функциональности. Её реально не хватает на настроенных у себя почтовых серверах.
Решил сразу же проверить, как это работает. Развернул быстро Nextcloud, поднял Roundcube и установил на него плагин Nextcloud Attachments for Roundcube. Никаких особых проблем не возникло. Работает просто и удобно. У меня сходу всё получилось настроить. Правда я хорошо знаю всю эту кухню, но тем не менее. Все файлы, что выходят за разрешённый лимит сервера, предлагается загрузить в Nextcloud.
Roundcube и Nextcloud можно настроить в стороне от вашего сервера, никак его не трогая. Потестировать эту связку нет никаких проблем. Отдельным вопросом стоит сквозная аутентификация. Но даже если её вообще не настраивать, то при первом прикреплении пользователю выскочит предложение пройти аутентификацию в Nextcloud и разрешить Roundcube загружать туда файлы.
В репозитории автора есть описание доступных настроек и картинка с примером, как это работает. Если честно, я по картинке ничего не понял. Ниже мои скрины, которые отражают весь процесс добавления вложения: предложение аутентификации, ссылка на файл в теле письма, как это письмо со ссылкой выглядит у получателя, и как этот файл выглядит, когда перейдёшь по ссылке.
Вообще, это очень крутая функциональность. Если обмен идёт неприватными файлами, то можно быстро поднять Nextcloud, сделать там одну учётку для всех своих пользователей и пусть они под ней прикрепляют туда свои большие файлы и отправляют. Получатели будут видеть только каждый свой файл из письма.
Из минусов – нет перевода на русский язык. Но там текста всего несколько фраз. Можно и вручную в исходниках перевести.
⇨ 🌐 Исходники
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#mailserver #fileserver
В комментариях читатель упомянул плагин для популярного веб интерфейса Roundcube, который позволяет так же просто и удобно прикреплять к письмам большие файлы в виде ссылок на собственное хранилище NextCloud. Раньше я не встречал подобной функциональности. Её реально не хватает на настроенных у себя почтовых серверах.
Решил сразу же проверить, как это работает. Развернул быстро Nextcloud, поднял Roundcube и установил на него плагин Nextcloud Attachments for Roundcube. Никаких особых проблем не возникло. Работает просто и удобно. У меня сходу всё получилось настроить. Правда я хорошо знаю всю эту кухню, но тем не менее. Все файлы, что выходят за разрешённый лимит сервера, предлагается загрузить в Nextcloud.
Roundcube и Nextcloud можно настроить в стороне от вашего сервера, никак его не трогая. Потестировать эту связку нет никаких проблем. Отдельным вопросом стоит сквозная аутентификация. Но даже если её вообще не настраивать, то при первом прикреплении пользователю выскочит предложение пройти аутентификацию в Nextcloud и разрешить Roundcube загружать туда файлы.
В репозитории автора есть описание доступных настроек и картинка с примером, как это работает. Если честно, я по картинке ничего не понял. Ниже мои скрины, которые отражают весь процесс добавления вложения: предложение аутентификации, ссылка на файл в теле письма, как это письмо со ссылкой выглядит у получателя, и как этот файл выглядит, когда перейдёшь по ссылке.
Вообще, это очень крутая функциональность. Если обмен идёт неприватными файлами, то можно быстро поднять Nextcloud, сделать там одну учётку для всех своих пользователей и пусть они под ней прикрепляют туда свои большие файлы и отправляют. Получатели будут видеть только каждый свой файл из письма.
Из минусов – нет перевода на русский язык. Но там текста всего несколько фраз. Можно и вручную в исходниках перевести.
⇨ 🌐 Исходники
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#mailserver #fileserver