Персональный почтовый сервер

Если у Вас онлайн магазин или блог или любой другой сайт, которому требуется рассылать почтовые сообщения клиентам и Вы хотите, чтобы почта отправлялась с вашего домена — Вам нужен собственный SMTP сервер, построенный с использованием правильно настроенных Postfix и DKIM. Вы можете воспользоваться уже готовыми многофункциональными SMTP серверами, которые предоставляют различные почтовые службы, например, GMAIL или Yandex.Почта, но если Вам нужен именно ваш собственный сервер, то эта небольшая, но полноценная инструкция для Вас!

Как всегда, инструкция состоит из простых коротких шагов с минимумом текста. По возможности, конечно же…

Будет рассмотрена установка почтового агента (SMTP) Postfix, а также DKIM, TLS и всех необходимых записей на NS-серверах, чтобы добиться результата в 10 баллов на mail-tester.com.

Все примеры показаны на базе ОС Debian. Они также должны подойти без изменения для Ubuntu. Также за основу берется настройка почты для моего домена denisbondar.com.

Читать далее Персональный почтовый сервер

Winbox в Wine как исправить кривой шрифт

Я работаю в Linux (KDE Neon) и единственное Windows-приложение, которое мне приходится использовать — это Winbox (утилита для управления оборудованием MikroTik). Раньше я работал в других дистрибутивах Linux и эта проблема присутствовала и в них тоже.

Те, кто работал с Winbox в Linux, а может быть и в MacOS, если там эта проблема также присутствует, не могли не заметить проблемы со шрифтом, которая очень сильно влияет на комфортную работу, не позволяя нормально управлять курсором при редактировании значений полей и при выделении части поля для копирования.

Кривой шрифт Winbox в Wine - проблемы с выделением
Выделен пароль, но размер выделения значительно превышает размер символов
Кривой шрифт Winbox в Wine - проблемы с курсором
При редактировании невозможно определить, где фактически находится курсор

После выхода Wine-5, я надеялся, что эту проблему исправят. Но нет. Пришлось разбираться сначала с причиной этой проблемы, а затем находить способы ее решения.

Читать далее Winbox в Wine как исправить кривой шрифт

Установка Docker и docker-compose в Linux за минуту

Вы ищите, как быстро установить Docker и docker-compose в Linux? Можете закрывать все остальные вкладки с результатами поиска. Вы нашли самую лучшую инструкцию, описывающую как это сделать!

Приведенные команды сработают в Ubuntu. Если у вас не Ubuntu, то, может быть, вы сами поймете, что изменить в этих командах. Вероятно, они могут вовсе вам не подойди, если у вас не Debian-like дистрибутив. Будьте внимательны!

Чтобы узнать последнюю доступную версию docker-compose, перейдите по адресу https://github.com/docker/compose/releases и запомните номер версии последнего релиза. На момент написания статьи это был номер 1.24.0. Этот номер релиза пригодится при загрузки docker-compose — подставьте его вместо устаревшего номера релиза.

Вы можете просто взять и построчно вставить приведенный ниже набор команд в командную строку терминала Linux. Не забудьте изменить номер версии docker-compose.

sudo apt remove docker docker-engine docker.io
sudo apt update && sudo apt install -y apt-transport-https lsb-release ca-certificates
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -sc) stable"
sudo apt update && sudo apt install -y docker-ce

# Чтобы управлять докером без sudo, добавим себя в группу docker
sudo groupadd docker
sudo usermod -aG docker ${USER}

# Теперь загрузим компоуз. Не забудьте про номер версии
sudo curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Вот и всё. Теперь ознакомьтесь со статьей о настройке окружения Docker для разработки и отладки и приступайте к разработке!

ZFS — Справочник команд

Данный справочник является переводом данной статьи. Авторы перевода: Евгений Ратников и Сгибнев Михаил. Огромное им спасибо за проделанную работу!

Данная информация представлена в интернете на множестве ресурсов. Оригинальная статья оформлена в виде таблицы, я же оформлю ее в привычном для моего блога формате — в формате пошагового обучения.

В любом случае не забывайте про страницы справки по командам работы с ZFS.

# man zpool
# man zfs
Читать далее ZFS — Справочник команд

Vagrant — единое окружение для разработки

Преамбула

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

В современном мире WEB-разработки, разработчики уже давно перестали устанавливать окружение для разработки: PHP, WEB-сервер, СУБД и т.д. на свой локальный компьютер, на котором производят разработку.

Во-первых, установка и настройка занимает драгоценное время и силы.

Во-вторых, если разработчик работает на нескольких компьютерах (компьютер в офисе, дома, ноутбук), то достаточно проблематично настроить идентичное окружение везде и синхронизировать его настройку между всеми своими компьютерами. Эта проблема называется проблемой идентичности состояния, когда предполагается, что состав, версии и конфигурация всего ПО должна быть максимально идентичной.

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

В четвертых, состояние окружения вашего рабочего компьютера скорее всего не совпадает и не может совпадать с состоянием окружения вашего боевого (продакшн) сервера. Ведь у вас же Windows со всеми его причудами в конфигурировании, а на боевом сервере что-то однозначно другое.

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

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

Также вам необходимо, чтобы ваш рабочий каталог с проектом отражался на каталог внутри виртуальной машины. Например, чтобы каталог локальной машины D:\myProjects, где хранятся ваши проекты, соответствовал каталогу виртуальной машины /var/myProjects или подобному.

Еще хотелось бы иметь возможность полноценно выполнять отладку с использованием PHP-Xdebug, причем приложение должно выполняться в виртуальной среде, на виртуальной машине, а управлять им вы могли с локальной. Уже нравится? Идем дальше!

Читать далее Vagrant — единое окружение для разработки

Как установить Debian без знаний и опыта

«Как установить Debian без знаний и опыта» — это довольно частый вопрос, который мне приходится слышать. Хоть я и не считаю себя специалистом в этой области, я все же накопил некоторые инструкции для себя, которые позволяют мне быстро установить или настроить то или иное приложение либо операционную систему.

В данной статье, как и в остальных статьях моего блога, будет показан пример установки со скриншотами и подробным описанием того, что при этом происходит и для чего это нужно. Даже будет затронута тема LVM. Инструкция довольно длинная и нудная. Больше подойдет тем, кто сталкивается с установкой Linux впервые и хочет найти ответы на большинство своих вопросов в одном месте, не гугля целый день. Хотя, учитывая объем инструкции, Вам придется потратить на нее целый день :) Шутка. На самом деле уже через час у Вас будет свой собственный Debian сервер, который Вы создали и настроили сами!

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

Читать далее Как установить Debian без знаний и опыта

Laravel homestead Windows не запускается? Есть решение!

При установке laravel/homestead под Win10 столкнулся с проблемой запуска виртуальной машины. В консоли VirtualBox красовалась надпись, говорящая об ожидании сетевого подключения:

[    ***] A start job is running for Raise network interfaces (40s / 5 min)

В командной строке Windows, из которой запустили vagrant up, через несколько минут после старта возникала ошибка:

Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.

Причем на этой же рабочей машине работают другие vagrant-коробки вполне успешно. Читать далее Laravel homestead Windows не запускается? Есть решение!

Установка Nginx 1.13, PHP 7, MySQL 5.7, MariaDB 10.1, PostgreSQL 11 в Debian и Ubuntu

Набор инструкций для установки последних версий Nginx, PHP, MySQL, MariaDB на компьютер (сервер) под управлением операционных систем Debian или Ubuntu. Инструкции описывают простое добавление альтернативных репозиториев в систему и установку приложений из них.

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

Описаны следующие приложения (версии указаны на момент написания статьи):

  1. Nginx (1.15)
  2. MySQL (5.7, 8.0)
  3. MariaDB (10.1)
  4. PostgreSQL (11)
  5. PHP (7.1, 7.2, 7.3)
  6. MongoDB (3.4)
  7. Elasticsearch (5.4)


Внимание! Здесь не описан атомарный процесс установки и настройки web-сервера! Не задавайте, пожалуйста, подобных вопросов в комментариях.

Читать далее Установка Nginx 1.13, PHP 7, MySQL 5.7, MariaDB 10.1, PostgreSQL 11 в Debian и Ubuntu

RedMine + BitBucket git

В данной статье будет описана связка системы управления проектами RedMine + BitBucket. Я опишу достаточно примитивный способ — подключение зеркала репозитория BitBucket, так как ни один из найденных мной плагинов для RedMine не заработал.

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

Также мы будем периодически выполнять git fetch --all -p, чтобы синхронизировать наше зеркало с репозиторием.

Итак. Приступим. Читать далее RedMine + BitBucket git

Установка Asterisk 13 + chan_dongle (E1550, E1750) на Debian 8

В предыдущей статье шла речь об установке системы Asterisk версии 11 на сервер под управлением Ubuntu. Основным поводом установки 11 версии было то, что под 13 версию не существовало модуля chan_dongle. Теперь такой модуль есть, поэтому есть смысл написать заново, теперь уже о Asterisk 13, Debian и некоторых других удобных полезных функциях.

Данная инструкция описывает процесс установки телефонной системы Asterisk с модулями DAHDI, LibPRI, PJSip, SpanDSP, chan_dongle и дополнительными кодеками Opus и g729. Никаких WEB-интерфейсов и прочих утилит для конфигурирования и мониторинга системы данная инструкция не предусматривает. Это связано с тем, что автору приходилось неоднократно разбираться с конфигурационными файлами, сгенерированными автоматически при помощи FreeBPX и прочих подобных систем, что вызывало у автора сильную ненависть к подобным оболочкам. Поэтому, друзья, настраивайте все руками в конфигурационных файлах. Это не так сложно, зато работает как часы и разобраться намного проще. Читать далее Установка Asterisk 13 + chan_dongle (E1550, E1750) на Debian 8