Видеонаблюдение в частном доме своими руками

Когда возникло желание организовать видеонаблюдение на территории своего участка, я довольно долго и вдумчиво изучал существующее ПО и хочу поделиться результатами исследования.Требования к программе видеонаблюдения были следующие:локальная установка;работа на Linux;поддержка современных кодеков h264/h265;удобный интерфейс и гибкость настройки;желательно opensource;К сожалению, большинство программ отпали…

Безопасное общение с помощью Jabber (XMPP)

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

Настройка postfix для приема и пересылки почты на заданные адреса

Для правильного функционирования почтового сервера необходимо внести MX запись в DNS зону для доменного имени сервера, например: mydomain.ru. 3600 MX mydomain.ru. 10 Обновление зоны может занять какое-то время, проверить можно командой: $ dig mydomain.ru mx <....> ;; ANSWER SECTION: mydomain.ru. 3600 IN MX 10 mydomain.ru. <…

Автоматический backup с помощью rsync поверх SSH

Для автоматического удаления старых бекапов (в примере - старше 10 дней) можно использовать следующую команду для crontab (crontab -e): # start every day at 4:00 0 4 * * * find /path/to/folder/for/backup -mtime +10 -type f -exec rm -rf {} \; И непосредственно копирование на удаленное хранилище: # backup it every day…

Резервное копирование с помощью rsync по SSH

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

Запуск HTTP web сервера с помощью Python

Для целей отладки бывает удобно быстро запустить HTTP-сервер, раздающий статический контент из текущей директории. Сделать это можно встроенными средствами Python. Для Python2: python2 -m SimpleHTTPServer 8080 Для Python3: python3 -m http.server 8080…

Ограничение доступа к SSH по IP для firewalld

Один из возможных вариантов. Удаляем текущее правило: # firewall-cmd --zone=public --remove-service=ssh --permanent Добавляем нужный IP в список доверенных и открываем для него все порты: #firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="xx.xx.xx.xx" accept' Или ограничиваемся конкретным сервисом: #firewall-cmd --permanent…

Установка крышного вентилятора Vilpe на кровлю из гибкой черепицы

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

Добавление SSL сертификата в список доверенных для Java Runtime

Столкнулся с проблемой при работе с утилитой wsimport, которая служит для генерации Java-классов для Web Service Client из WSDL. Проявляется ошибкой: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target В моем случае,…

Добавление версии проекта в Java-код при использовании Spring Boot и Maven

Первое, что надо сделать, добавить следующие строки в файл application.properties: # Version application.name=@project.name@ build.version=@project.version@ Далее, можно делать инъекцию номера версии с помощью аннотации @Value. Я предпочитаю делать это с помощью специального сервиса: @Service public class VersionService { private static final Logger LOG = LoggerFactory.getLogger(VersionService.…