ServerAdmin.ru
31.1K subscribers
573 photos
46 videos
22 files
2.83K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Регистрация в РКН: https://vk.cc/cG1Urj
Download Telegram
Назрел вопрос обновления рабочего ноутбука. У меня сейчас ThinkPad T480, но он уже довольно старый. Хочу купить новый, но совершенно не знаю, какой брать. Последние 10 лет у меня были ноуты ThinkPad, но сейчас уже не вижу смысла на них фокусироваться. Они ничем не лучше всех остальных.

В идеале, конечно, мне хотелось бы ноутбук с нормальной док станцией, чтобы пришёл, воткнул его в док и больше не тыкал никакие провода. У меня сейчас по Type-C док для периферии. Это неудобно. Надо постоянно глазами смотреть, чтобы в разъём попасть. Он за год уже разболтался немного. Плюс, потом ещё и питание отдельно подключать, тоже прицеливаться в разъём надо. Нужно поднимать экран, чтобы нажать на кнопку питания. Классические док станции, на которые ноутбук просто ставится с закрытыми глазами, намного удобнее. Но увы, непонятно почему, их не стало.

Решил спросить у вас, кто каким современным ноутбуком пользуется для работы, особенно если приходится его носить и подключать к стационарным рабочим местам, как это делаю я. У меня дома, на даче, в офисе стоят мониторы, клавиатуры, мышки. Я прихожу и подключаю туда ноутбук. Непосредственно за ним работаю нечасто, но бывает иногда, так что совсем маленький не подойдёт. Диагональ экрана нужна 14"+. В идеале 14", но это сильно сужает выбор.

Посмотрел в магазинах. Ноутов полно всяких-разных. Такое ощущение, что они все одинаковые при схожих характеристиках. Нет чего-то особенного, удобного, необычного. Много ультрабуков 14". Смотрю в их сторону, но там Ethernet нигде нет. Без него жить можно, но мне кажется, неудобно.

Кому не влом, опишите свои ноуты, если они вам нравятся и удобны. Может так будет проще определиться. Проскакивает мысль не ломать голову, а купить что-то опять от Lenovo, типа YogaPro 14S. По характеристикам устраивает. Цена высоковата, но если модель без явных косяков, то можно раскошелиться. Года 4 на нём поработать.

Удерживает от покупки Lenovo то, что на текущем ноуте проблемы с экраном. На нём въелись отпечатки от клавиш, которые остаются, когда закрываешь крышку ноута. Это какой-то эпический фейл инженеров. Экран протёрся в некоторых местах из-за этого. Плюс у Lenovo вечные проблемы с охлаждением и тротлингом. Устал с этим воевать на текущем и прошлом ноуте. Какие-то явные просчёты инженеров, которые напрочь убирают уверенность в том, что компания может создавать нормальные ноуты, которые просто покупаешь и потом не паришься из-за косяков.

#железо
▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересными/полезными. Как обычно, ниже те видео из моих подписок за последнее время (обычно беру период в 2 недели), что мне показались интересными и полезными.

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

🔥Как взломать 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
Давненько не было публикаций на тему почтовых серверов. Они сейчас как-будто в тень ушли. Ни выступлений по теме почты не вижу, ни обсуждений, настройки, каких-то значимых новостей, если не считать новости о новых уязвимостях Exim. Хотя это тот сервис, которым все по-прежнему пользуются и не собираются отказываться.

Всё чаще почту предпочитают отдавать на откуп готовым платным сервисам. Правда иногда смотрю на расценки по услугам, а это не так, чтобы дёшево. Хотя в настройке почтового сервера ничего особенного нет. Надо только один раз вникнуть в настройку, организовать корректные записи DNS и получить беспроблемные внешние IP адреса. А дальше почтовый сервер обычно большого внимания к себе не требует, после того как всё настроишь и отладишь.

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

Работал с одним проектом, который получил вал отправленных писем на ровном месте. Это было что-то вроде социальной сети, где можно друг другу отправлять сообщения и уведомления приходят на почту. Время от времени появлялись боты, которые массово начинали спамить по личкам и это вызывало вал отправленных писем. У нас сервер свой был и проблем это особо не доставляло. Причём я первый и узнавал об этом через мониторинг отправленных писем. Это быстро фиксили и не было проблем.

А если за почту платить, то можно влететь на ровном месте. Почта очень хорошо отправляется, производительность даже рядового сервера позволяет отправлять десятки тысяч писем за минуту. Если ломанут проект и начнут через него спамить, то очень быстро отправят миллионы писем, если не выставлены никакие лимиты.

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

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

▪️Свой почтовый сервер на базе Postfix + Dovecot. Статья не сильно старая. Написана пару лет назад, но осенью я её обновлял в соответствии с изменениями. В комментариях люди пишут, что всё ещё актуальна. Так что с её помощью можно почти в режиме copy-paste всё сделать.

Если ищите себе вариант готового бесплатного сервера, то у меня почти все популярные варианты были на канале:

▪️Mailcow
▪️Mail-in-a-Box
▪️hMailServer
▪️Tegu
▪️Iredmail
▪️Carbonio CE
▪️Poste.io
▪️docker-mailserver
▪️Modoboa

Вроде тут всё более-менее популярное. Если знаете какой-то удобный и функциональный почтовый сервер, то поделитесь информацией.

Ещё интересно было бы узнать, кто пользуется своими почтовыми серверами, и какими именно, а кто покупает как сервис, и где. Это была бы полезная информация. Я сейчас мало вижу информации о почтовых серверах. Даже не знаю, что сейчас наиболее популярное. По теме импортозамещения должно быть много новых имён. Последние несколько лет появилось много российских почтовых серверов. Как минимум от трёх российских вендоров я получал предложения о сотрудничестве. Но у меня не особо развит этот формат, так что отказывал. Тестировать почтовый сервер довольно хлопотно, хотя про астру и их RuPost я в своё время писал статью.

#mailserver
📩 Продолжая тему почтовых серверов. Есть очень старый и известный сервис для организации почтовых рассылок на базе своего почтового сервера – 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
Самой популярной 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. С её помощью можно делать как преднастройки новой установки, так и управлять уже работающим сайтом. Последнее я покажу в следующей заметке, а сейчас займёмся начальной установкой.

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

# 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.

Устанавливаем на сервер:

# 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
На днях в чате в обсуждении почтовых серверов, как обычно, поднялся вопрос прикрепления к письмам больших файлов. У облачных провайдеров типа Яндекса или Мейла есть возможность большие файлы прикреплять к письмам в виде ссылки, а сами файлы загружаются и хранятся на их файловых сервисах. Когда пользователей пересаживаешь с этих сервисов, они очень грустят и просят такую же функциональность на своих серверах.

В комментариях читатель упомянул плагин для популярного веб интерфейса Roundcube, который позволяет так же просто и удобно прикреплять к письмам большие файлы в виде ссылок на собственное хранилище NextCloud. Раньше я не встречал подобной функциональности. Её реально не хватает на настроенных у себя почтовых серверах.

Решил сразу же проверить, как это работает. Развернул быстро Nextcloud, поднял Roundcube и установил на него плагин Nextcloud Attachments for Roundcube. Никаких особых проблем не возникло. Работает просто и удобно. У меня сходу всё получилось настроить. Правда я хорошо знаю всю эту кухню, но тем не менее. Все файлы, что выходят за разрешённый лимит сервера, предлагается загрузить в Nextcloud.

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

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

Вообще, это очень крутая функциональность. Если обмен идёт неприватными файлами, то можно быстро поднять Nextcloud, сделать там одну учётку для всех своих пользователей и пусть они под ней прикрепляют туда свои большие файлы и отправляют. Получатели будут видеть только каждый свой файл из письма.

Из минусов – нет перевода на русский язык. Но там текста всего несколько фраз. Можно и вручную в исходниках перевести.

🌐 Исходники

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#mailserver #fileserver
📩 Расскажу про комбинированную схему работы своего почтового сервера, которая может оказаться простой и надёжной, но при этом очень бюджетной. Я об этом ранее упоминал в отдельных заметках, но не делал акцента.

Очевидные проблемы своего почтового сервера, которые нужно решать:

◽️Отказоустойчивость и доступность.
◽️Доверие к своему IP адресу, транспорт почты.
◽️Борьба со спамом.

Плюсы своего почтового сервера:

🟢 Дёшево на длинном интервале.
🟢 Ящики могут быть очень большого объёма, платите только за свои диски.
🟢 Накручиваете любую функциональность и интеграции, никаких ограничений.

Я предлагаю убрать проблемы следующим образом. У многих провайдеров есть услуга в виде почты. Она может продаваться как отдельно, так и в составе каких-то других услуг, например, виртуального хостинга. Вот пример такой услуги. Показываю не в качестве рекламы, а просто как пример, как это может выглядеть со стороны хостера.

Вы покупаете подобную услугу и настраиваете свой почтовый сервер где угодно. У хостера будут готовые инструкции, где и что надо настроить в DNS, чтобы почта доставлялась к нему. Вы настраиваете и вся почта улетает к провайдеру.

Настройка у провайдера может разниться. Я сталкивался с разными вариантами. Можно создать один почтовый ящик, куда будет сыпаться вся почта, адресованная на ящики домена. Это наиболее простой и удобный вариант. Один раз настроил и больше к провайдеру не обращаешься. Возможно придётся создать каждый почтовый ящик, куда вы хотите принимать почту.

⇨ Далее вы берёте свой почтовый сервер, добавляете туда пользователей. В настройках сервера указываете, что почту для пользователя нужно брать с внешнего сервера. Указываете учётные данные для доступа в ящик, где лежит почта. Также указываете в своём сервере, что отправку нужно делать через внешний релей провайдера.

Настройки серверов могут разниться. Я по такой схеме работал с Kerio и Postfix. В Kerio вообще всё просто. Он может забирать разом всю почту из общего ящика провайдера, куда валится почта для всего домена и раскладывать его по локальным ящикам пользователей на основе адреса получателя. Либо можно для каждого конкретного ящика указать ящик у провайдера, откуда он будет забирать почту. Ну и в качестве сервера для отправки указывается почтовый сервер провайдера.

У Postfix принцип такой же, но больше ручной работы. Забирать почту у провайдера можно через Fetchmail. Настраивать можно конфигами в консоли, либо с помощью RoundCube или PostfixAdmin. У них есть интеграция с Fetchmail. Ну а отправка настраивается на сервере через параметр relayhost. Более того, если вы хотите для разных доменов использовать разные сервера для отправки, то используете параметр transport_maps, которому можно указать список доменов и соответствие внешних smtp серверов, через которые будет отправка.

❗️Обращаю внимание на последний момент с transport_maps. Меня не раз спрашивали, как в рамках одного почтового сервера и нескольких доменов делать отправку так, чтобы не было видно, что они связаны между собой. С помощью внешних почтовых серверов и Postfix это легко настраивается. Арендуете разные услуги внешнего сервера SMTP и настраиваете на своём почтовом сервере отправку через них, используя разный сервер для каждого домена.

📌 Итак, что мы получаем на выходе:

1️⃣ Почта с сервера провайдера забирается по протоколу POP3 с удалением после получения. За место нам платить не надо. Это существенно уменьшает стоимость.
2️⃣Провайдер сам отправляет почту и организует доступность сервера. Даже если у нас что-то сломается или нам нужно будет заменить свой сервер, вся почта будет прилетать на сервер провайдера. А когда наш оживёт, заберёт почту. Нам не нужно решать вопросы доступности. Мы не теряем почту в случае своих аварий.
3️⃣ Локально мы можем сколько угодно хранить почту, не переживая за занимаемое место.

Существенный минус один – нужно в двух местах делать настройки: на своем сервере и провайдерском.

Схема 100% рабочая и эффективная. Я не раз использовал.

#mailserver
Please open Telegram to view this post
VIEW IN TELEGRAM
На днях рассказывал про то, как быстро запустить уже настроенный сайт на Wordpress. Решил немного развить эту тему и подготовить docker compose, который позволит сразу запустить сайт с HTTPS, чтобы его можно было полноценно использовать для публикации в интернете.

Для этой задачи взял веб сервер Angie, который имеет встроенный модуль ACME, позволяющий автоматически получить сертификаты от Let's Encrypt. Причём настройка очень простая. Пример посмотрел в документации. Достаточно добавить в раздел http:

http {
    resolver 62.76.76.62 62.76.62.76 1.1.1.1;
    acme_client wordpress https://acme-v02.api.letsencrypt.org/directory;
............
}

и в раздел server:

server {
    listen 443 ssl;
    http2 on;
    server_name 337153.simplecloud.ru;
    acme wordpress;

    ssl_certificate $acme_cert_wordpress;
    ssl_certificate_key $acme_cert_key_wordpress;
.....................
}

В данном случае значение параметра acme_client и acme в виде wordpress может быть любым. Это я его так обозвал. Лучше его привязать к домену и сделать таким же как server_name. Но у меня в примере поддомен, а параметр после точки не воспринимает значение, поэтому обозвал просто wordpress. Если сайтов будет несколько, то эти параметры тоже должны различаться.

После запуска Angie, он сам получит сертификаты на указанное доменное имя, положит их у себя в контейнере в директорию /var/lib/angie/acme/ и будет автоматически обновлять. Организовано очень удобно. Не нужны никакие дополнительные программы типа certbot или acme.sh.

Упаковал всё это в отдельный репозиторий. Достаточно его клонировать:

# git clone https://gitflic.ru/project/serveradmin/wordpress-angie-tls.git
# cd wordpress-angie-tls

Указать своё имя домена в файлах angie_default.conf и configure-wp.sh, установить Docker и запустить:

# curl https://get.docker.com | bash -
# docker compose up

О том, что из себя представляет файл configure-wp.sh и как выполняется начальная настройка Worpdress, я писал в предыдущей заметке.

В репозитории конфигурация Angie немного расширена помимо стандартных настроек. Сначала хотел туда добавить всё, что я использую: мониторинг, разные форматы логов, лимиты, веб консоль angie и т.д. Но потом передумал. Всё это бездумно добавлять нельзя. Для того же мониторинга и консоли нужно настраивать ограничения доступа, для лимитов нужно тоже понимать, что это и зачем, а то можно поисковых ботов заблокировать.

Думаю, что подробно про настройку Angie напишу отдельно. Я его уже повсеместно использую вместо Nginx. Он лучше и функциональнее. Бесплатная версия Nginx после продажи почти не развивается. Такое ощущение, что продукт просто решили похоронить.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#wordpress #angie
У меня на канале выходит много заметок с использованием Docker. Хочу высказать своё мнение по поводу его использования. Где-то считаю его уместным, а где-то не очень. Расскажу, как к этому отношусь.

Оставляю за скобками ситуацию, когда речь идёт о разработке приложений на базе микросервисов с деплоем в разные среды. Там понятно и очевидно использование контейнеров в силу самой архитектуры информационной системы. Хотя там тоже есть свои нюансы, но я сейчас не об этом, а о запуске каких-то одиночных служб типа веб сервера, мониторинга, почтового сервера и т.д..

В таких ситуациях я воспринимаю Docker как некое подобие пакетного менеджера, который упрощает установку и запуск софта, но привносит свои особенности в эксплуатацию. Какие бы ни были там небольшие накладные расходы в плане производительности, тем не менее он добавляет свой слой абстракции и усложняет этим архитектуру (сетевые бриджи, правила файрвола, управление запуском и т.д.).

Возьмём к примеру сервер мониторинга Zabbix. Он что через Docker контейнер ставится в пару действий, что через пакетный менеджер. То есть использование контейнера не упрощает установку, поэтому я не вижу смысла его ставить в прод через Docker. Он ставится и обновляется в одно действие:

# apt install zabbix-server-mysql
# apt update zabbix-server-mysql

И через Docker:

# docker run --name zabbix-server-mysql -e DB_SERVER_HOST="some-mysql-server" -e MYSQL_USER="some-user" -e MYSQL_PASSWORD="some-password" --init -d zabbix/zabbix-server-mysql:tag

Зачем тут лишняя сущность в виде Docker? Он будет иметь смысл для каких-то тестовых сборок из набора контейнеров, чтобы быстро запускать в разных средах, что-то тестировать, удалять и т.д. Тогда да, можно собрать compose и использовать. Но если нужно будет поставить в прод, то я поставлю из пакетов. Мне так проще и удобнее в эксплуатации.

То же самое относится к Nginx, Angie, Mysql, Php-fpm, Prometheus и т.д. То, что по сути состоит из пакета или бинарника и файла конфигурации к нему не вижу смысла запускать в постоянную эксплуатацию в контейнере. Если у разработчиков есть собранные пакеты, то буду использовать их.

Другое дело более сложный в плане установки софт, для которого пакетов нет. Тогда вручную его собирать, устанавливать, обновлять и поддерживать может быть очень хлопотно. Наглядные примеры, с которыми сталкивался сам - Onlyoffice, Webpagetest. У первого хоть и есть пакеты, но с ними много проблем с зависимостями. Часто нельзя обновиться без ошибок. У второго вообще пакетов нет, его ставить вручную – пуд соли съесть. Причём я ставил, вопрос решаемый, но очень трудоёмкий. Не хочется этим заниматься.

❗️Отдельно выделю софт, который может быть полностью сконфигурирован через переменные окружения при запуске контейнера и не требует подключения файлов конфигурации. Тут без вопросов, запустить в одну команду с ключами проще, чем ставить и отдельно готовить файл конфигурации. Пример - Traefik. У него доступно динамическое управление конфигурацией через переменные. Это удобно.

☝️ Подвожу итог. Всё, что не касается микросервисов, я запускаю в Docker только если установка из пакетов невозможна, либо слишком трудоёмка. Продукты, для которых у разработчиков есть репозитории под Debian, будут установлены из репозиториев. Речь идёт именно о промышленной эксплуатации, а не тестовых запусках.

Если речь идёт о связке нескольких продуктов в единое целое, то тоже буду смотреть на сложность установки и обновления. Если связку можно поставить по отдельности и потом через apt upgrade обновлять, то скорее всего соберу из пакетов. Если нужны будут дополнительные действия после обновления пакетов, то скорее всего буду использовать предоставленный docker compose.

А вы что думаете по этому поводу? Знаю популярное мнение, что абсолютно всё запускается в Docker из-за стандартизации и единообразия. Как по мне, это сомнительный аргумент, так как единая система и общий репозиторий к ней это такая же стандартизация.

#docker #мнение
На днях в комментариях промелькнул бесплатный почтовый сервер Mox с открытым исходным кодом. Про него не слышал ранее, поэтому решил посмотреть, что это такое. Я его развернул и немного попользовался. Перейду сразу к конкретике, перечислив плюсы и минусы.

Плюсы:

1️⃣ Простая и быстрая установка. Весь сервер – это один скомпилированный бинарник, написанный на Go. Во время первого запуска нужно указать почтовый ящик администратора на том домене, где он будет работать. Сервер автоматически создаст все конфигурационные файлы, dkim ключ, покажет все необходимые DNS записи, которые нужно добавить. Там речь пойдёт не только про MX, SPF, DKIM, DMARC. Также будут показаны необходимые записи для работы MTA-STS, автообнаружения конфигурации почтовыми клиентами и некоторые другие.

То есть просто запускаете сервер и по его инструкции добавляете DNS. Всё, больше ничего делать не надо.

2️⃣ Сервер включает в себя все современные протоколы и технологии, публичные списки репутации IP адресов (лучше отключить), некоторые алгоритмы для борьбы со спамом с обучением, а также Greylisting.

3️⃣ Сервер сам получает, обновляет и использует TLS сертификаты от Let's Encrypt. Ничего настраивать по этой теме не надо.

4️⃣ Сервер включает в себя очень простой веб интерфейс для админки и веб клиента. Скриншоты в конце статьи. Веб клиент, конечно, выглядит уныло. Но он хотя бы есть. Никто не мешает использовать любой другой - локальный Thunderbird или тот же RoundCube, настроенный отдельно или тут же на сервере.

5️⃣ Встроенный мониторинг в виде экспорта метрик в формате Prometheus с примерами готовых правил для триггеров.

🔴 Минусы:

1️⃣ Это проект одного человека. И хотя он очень продуктивен, проекту уже несколько лет, активная разработка продолжается, но тем не менее.

2️⃣ Никакую дополнительную функциональность к серверу не добавить. Что есть, тем и пользуешься. Никакого Sieve, Milter тут пока нет, хотя автор обещает реализовать если судить по roadmap.

3️⃣ Нет и не будет поддержки POP3. Мне кажется для таких небольших серверов его поддержка была бы актуальна для каких-то своих небольших или нестандартных задач.

Почта хранится в формате maildir. Это не плюс и не минус, а скорее стандарт для такого рода серверов. Можно просто зайти на сервер и посмотреть все письма в ящиках в текстовом формате.

В целом, решение мне понравилось своей простотой и скоростью настройки. Проще я вообще не видел. Чем-то похож на бесплатный Tegu, который тоже представляет из себя один бинарник на Go. У последнего нет поддержки ACME для автоматического получения сертификатов и работы с TLS. Нет такой удобной автонастройки, но по функциональности и возможностям настроек в админке он выигрывает. Тот же Milter поддерживает, Fail2ban.

Mox хорошо подойдёт для личного сервера, для разовых или простых задач, типа отправка почты с сайта, когда не хочется заморачиваться с настройкой, для небольшого коллектива. Поднял сервер, добавил пользователя и вперёд. Ставится он так:

# useradd -m -d /home/mox mox
# cd /home/mox
# wget https://beta.gobuilds.org/github.com/mjl-/mox@v0.0.14/linux-amd64-go1.24.1/0Ip8URcp-Eig5CZORoGnm25XVWMo/mox-v0.0.14-go1.24.1
# mv mox-v0.0.14-go1.24.1 mox
# ./mox quickstart you@example.com

В консоли увидите всю дальнейшую информацию по настройке DNS, а так же созданные учётные записи администратора и пользователя почты. Веб интерфейс отвечает только на localhost, поэтому для доступа туда надо сделать проброс портов по SSH со своей машины:

# ssh -L 8080:localhost:80 root@212.193.58.29

И далее идите по ссылкам localhost:8080/admin/ и localhost:8080/webmail/. Перед этим надо добавить службу в systemd:

# chmod 644 mox.service
# systemctl enable $PWD/mox.service
# systemctl start mox.service

Это полная инструкция по настройке. Достаточно добавить предложенные DNS записи и Thunderbird будет автоматически настраивать ящик по введённому логину и паролю.

🌐 Сайт / Исходники

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#mailserver
Media is too big
VIEW IN TELEGRAM
В прошлую пятницу обсуждали выбор ноутбука. Как говорится, порвали три баяна. На первых 300 комментариях я ещё следил за ними, потом перестал. Работать надо было. Так что всё не читал. Обсуждение напомнило старую песенку

Научно-технический рэп - Надо было ставить линукс:
▶️ https://www.youtube.com/watch?v=W87wOCSPA08

На удивление, линуксоиды в этот раз вели себя тише всех остальных. Если кому-то интересно, что я в итоге решил, то скажу. Пока надумал взять какой-то старенький Macbook на M1 и просто попробовать его. Ни разу не работал на macOS. Почему хотя бы не попробовать? Если понравится, буду думать о чём-то новом и современном. Если нет – отдам кому-нибудь из семейных. У меня нет проблем с утилизацией старой техники. Всё находит применение. Могу отдать жене, родителям, детям.

Другое дело, что времени сейчас особо нет всем этим заниматься. У меня довольно плотный график всевозможных дел. Просто так сесть и начать ковыряться с новой системой, а тем более переносить туда какие-то настройки, подбирать ПО и т.д. тупо некогда. Так что тема пока подвисла в воздухе. Это не то же самое, что клонировать хард на новый ноут с виндой.

У меня на повестке дня переезд всем своим семейством из квартиры в дом в Подмосковье. Там срочно всё доделывается. До этого я несколько лет туда ездил в основном что-то поделать и побыть одному в тишине. Переезд постоянно откладывался из-за рождения малышей. Мне первого этажа хватало, а семьёй мы обычно у родителей на даче время проводили. Теперь надо всё привести в порядок, доделать детские комнаты на втором этаже и купить туда мебель. В свой кабинет, кстати, хочу вот такую штуку купить для работы. Пока это только мысли, так и не доехал в выставочный зал чтобы попробовать.

#разное
Вместо того, чтобы от скуки втыкать в ленты соц. сетей или ютуба на смартфоне, предлагаю поиграть в викторину с вопросами на тему Linux:

🎮 Linux Master (google play)

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

Засыпался постоянно на вопросах с cd. Например, не знал, что cd без аргументов отправляет тебя в домашнюю директорию. Всегда для этого cd ~ набирал. Также не ответил на вопрос, что делает команда cd . Для cd - тоже выбрал неправильный ответ. Викторину про Navigation раз 5 проходил, пока не ответил правильно на все вопросы.

Игра простая и занимательная. Знать Linux надо хорошо, чисто для линуксоидов игрушка. Если не знаешь, то интереса никакого. Сначала открыты первые 3 уровня. После успешного прохождения хотя бы двух, открываются следующие.

Если кто-то будет играть, напишите честно, какой результат получили в первый заход без подсказок. Я в первой викторине знал все ответы. Одну ошибку сделал, тыкнув не вчитавшись в ответы. А в других уже по сути ошибался.

#игра