Тюнинг Nextcloud [обновляемая]

После установки Nextcloud им можно сразу же пользоваться. (А если вы здесь по вопросу отключения техобслуживания Nextcloud, то вот команда — sudo -u www-data php /path/to/nextcloud/occ maintenance:mode —off (перед off ставьте два дефиса) )

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

Как и ранее я писал, Nextcloud стоит на Ubuntu 18.04 и работает под связкой nginx + php-fpm (версии 7.4) + mysql. Язык интерфейса — русский. Nextcloud установлен в /usr/share/nginx/nextcloud/

Читать далее

Загрузка Legacy Windows из UEFI Grub

Иногда бывает ситуация, когда есть несколько накопителей с установленными операционными системами. Одна из них, допустим, Linux, которая установлена на GPT раздел и, соответственно, загружается в UEFI режиме. И есть Windows, но установленная на диск с MBR. Это начальные условия. Теперь можно поговорить про проблему загрузки Windows из grub, которая заключается в том, что при установке Linux, не добавляется опция загрузки Windows в меню grub.


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

Для того, чтобы UEFI загрузчик смог загрузить legacy систему, в legacy системе нужно сформировать загрузочную конфигурацию. В Windows это делается так


bcdboot C:\Windows /s C: /f uefi


, где /s — параметр, определяющий букву тома, назначенную целевому системному разделу, в который копируются файлы среды загрузки. По умолчанию используется системный раздел, который определяется микропрограммой,
/f uefi — в сочетании с командой /s, это указание типа встроенного ПО целевого системного раздела.

Команда создаст EFI папку на диске C: и поместит туда файлы, необходимые для успешного чтения UEFI загрузчиком

Теперь осталось добавить пункт меню в grub. Раз через os-prober это не получается, то пишем в файл /etc/grub.d/40_custom следующую конфигурацию:


menuentry "Windows 10" --class windows --class os {
insmod ntfs
insmod chain
set root='hd0,2'
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}


где «set root=’hd0,2′» — выбор раздела на диске с Windows
chainloader — грузит загрузчик из выбранного раздела, а уже он будет грузить legacy систему.

После этого в списке выбора систем появится пункт про Windows 10 и при выборе этого пункта загрузиться система.

Приэльбрусье 2023

«Импровизация и преодоление«

Всё началось с выхода из поезда, когда мы все собрались и стали ждать отстающего… хм. Нет. Всё началось ещё раньше. На моменте покупки бутылки для воды в поход. Я хотел по традиции выбрать бутылку от Рычал-Су, такую длинную зелёную с длинным горлышком, а выбрал обычную литровую от Доброй Колы. Или может даже всё началось ещё раньше, на паковке еды в поход. Её было как-то много. Наверное, нет. Может всё началось, когда количество участников в чате стало быстро уменьшаться? Тоже нет. Такое всегда бывает и это не сюрприз. Ведь обычно за месяц перед походом становится ясен основной состав группы.

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

Читать далее

Ограничение размера логов Docker

Если встречается ситуация когда места на диске перестаёт хватать или оно куда-то девается, а контейнеров куча, то на помощь придёт переустановка системы. Шутка.

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

Через команду запуска контейнера

docker run --log-opt max-size=1k --log-opt max-file=5 ...

Через compose-файл

services:
  app:
    container_name: app
    image: node
    ... 
    logging:
      driver: "json-file"
      options:
        max-file: "5"   # количество файлов
        max-size: "10m" # размер файла лога

Через системные настройки

В файле /etc/docker/daemon.json вписать следующее: (по-умолчанию в системе его нет)

Внимание: не забудьте удалить комментарии из daemon.json

Содержимое:

{
  "live-restore": true, # параметр не сильно обязателен
  "storage-driver": "overlay2", # ещё один метод хранения логов
  "log-opts": {
    "max-file": "5",  # количество файлов
    "max-size": "10m" # само ограничение на размер логов
  }
}

После перезапустить сервис

systemctl restart docker

Хибины 2023

По следам заметок в телеграм канале

Всё началось с того, что на начало марта у меня был запланирован отпуск, чтобы вдоволь походить по заснеженным сопкам гор, что располагаются близ Кировска Мурманской области. Нам обещались легкие восхождения на вершины, баня и вообще полный культур-мультур. Сложно было не поддаться на такие обещания райских кущ, да и по снежным вершинах я ходил максимум в парке, когда катался на санках. Горы не считаются, я в это время ещё высоко не забирался, и максимум были снежники да н\к перевалы вперемешку с 1А (Иркиз например).Так что я забил на работе отпуск на указанное время и стал готовиться. Точнее даже не стал, а стали: выезжали в область на снежные тренировки в составе команды, кто пойдёт шагать по приэльбрусью в июле.

Для ленивых — программа минимум выполнена, я не пожалел, что побывал в Хибинах (хоть и в окультуренном варианте), и «незабываемые очучения» надолго останутся в памяти. Программа максимум наверное перенеслась на следующий год. До следующей зимы так сказать…

Читать далее

Почта с защитой соединения для многодоменных серверов

В сети можно найти много статей про создание и настройку своего почтового сервера. Так как рецептов и конфигурационных файлов может быть от каждого автора много, я всего лишь затрону тему работы почтового сервера с несколькими доменами, использующими tls сертификаты. За источник настройки сервера возьму эту инструкцию — https://serveradmin.ru/nastrojka-postfix-dovecot-postfixadmin-roundcube-dkim-na-debian/

В статье выше хорошо расписано как настроить свой собственный почтовый сервер на базе postfix и dovecot. Так что после корректно настроенного обмена почтой\приёмом и отправкой можно озадачиться и настройкой её для нескольких доменов при использовании не самоподписных сертификатов, а сертификатов от LetsEncrypt. Для этого редактируем конфигурацию postfix — файл main.cf

Обратите внимание, что postfix начал поддержку SNI (Server Name Indication) только начиная с версии 3.4. Для старых версий постфикса данная статья не применима.

Читать далее

Подключение OnlyOffice к Nextcloud

UPD 2024.03.01: Добавил решение, чтобы можно было редактировать документы и на телефоне

UPD 2023.04.11: Добавил ниже решение про ошибку, что токен безопасности документа имеет неправильный формат

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

Но недостаточно установить приложение OnlyOffice и пользоваться всеми преимуществами облачного офиса. Нужно ещё установить и сам пакет офиса. Вариантов установки несколько, но самый простой для меня — это установка OnlyOffice как docker образ и подключение его к Nextcloud. Этим и займёмся.

Читать далее

Горный поход. Архыз

Фототур: Безумие и отвага

Не прошло и месяца, как я снова отправился в поход. Но на этот раз не в пеший, а в горный, и не в Адыгею, а в Архыз. Сам поход проходил с 4 июня по 11 июня, но из-за того, что ехали на поезде растянулся он ещё на несколько дней: со 2 июня по 15 июня.

Три недели между походами — не то чтобы много, но всё же этого недостаточно для полноценного отдыха. Но график походов выбирать не приходиться, так что впереди нас ждал Архыз и увлекательный фототур, включающий в себя красивые виды гор, водопады, снежники и местами крутые склоны, которые мы успешно проходили (а куда деваться).

Предварительная нитка маршрута включала в себя около 130 км пути, кучу перевалов и вершин, но на деле многое пришлось сократить и реальный маршрут был такой: посёлок Нижний Архыз – долина реки Большой Зеленчук – траверс хребта Абишира-Ахуба (от перевала Генеровская Балка (н/к, 1600) через перевалы Зборовского (н/к, 2300), Каменистый Архызский (н/к, 2500), Кяфарский Малый (н/к, 2730), Баритовый (1А, 2809), Архыз (1А, 2970) — радиально вершина Джумароклы-Тюбе (ориентировочно 1А, 3180) — пик Пионеров (ориентировочно 1А, 3056) — посёлок Архыз — долина реки Большой Зеленчук — долина реки Псыш — поляна Таулу — долина реки София — долина реки Гаммеш-Чат — связка перевалов Кёльауш (Крутой) (н/к, 2866)+ перевал Иркиз (Иркис) (1А, 2871) — радиально перевал Столичный (Баш-джол)(3050, 1А) — долина реки Ак-Айры — долина реки София — долина реки Псыш — долина реки Большой Зеленчук — посёлок Архыз — долина ручья Ревунок — перевал Архызское Седло (н/к, 2200) — траверс хребта Морг-Сырты от перевала Озерный Архызский (н/к, 2620) через перевал Карабек (н/к, 2330) до астрономической обсерватории РАН)(ориентировочно 1А). Списано по следам сообщения в вк.

Далее краткий пересказ

Читать далее

Получение LetsEncrypt wildcard сертификата

По следам статьи с сайта — https://www.umgum.com/letsencrypt-wildcard-bind9
Я только актуализировал информацию и оставил только один DNS.

Для автоматического получения wildcard сертификата используемый ACME-клиент (в данном случае Certbot) запрашивает у сервера Let’s Encrypt уникальную строку-идентификатор, которую любым способом необходимо разместить в специальной TXT-записи нижеследующего формата, чтобы проверяющий сервер Let’s Encrypt мог считать её и удостовериться, что мы владеем или управляем указанным DNS-сервером:

_acme-challenge.example.net. 120 IN TXT "Sg0...oLc" 

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

Поэтому проще всего использовать дополнительно устанавливаемый certbot-плагин «dns-rfc2136«, автоматизирующий процедуры получения секретного ключа, публикующий его и удаляющий DNS-запись после завершения запроса, область действия которого, как правило, достаточно просто ограничивается настройками NS-сервера, как такового.
Плагин «dns-rfc2136» взаимодействует с DNS-сервером посредством протокола «Dynamic DNS (DDNS)» с подписанием команд посредством «Transaction SIGnature (TSIG)». Не все DNS-серверы поддерживают эту связку, но Bind9 в этом плане полностью функциональный.

Для начала подготовим необходимые файлы и настройки на DNS-сервере

Читать далее

Тайловый сервер OpenStreetMap

Обновлено 12.11.2022. Добавлены пометки для Ubuntu 22. Основной упор пока на Ubuntu 20. Добавлены источники информации.

OpenStreetMap (OSM) — это создаваемая пользователями, свободно редактируемая карта мира. Можно представить это как альтернативу Google Maps с открытым исходным кодом. Эта инструкция покажет, как создать свой собственный сервер тайлов (tiles) OpenStreetMap в Ubuntu 20.04, чтобы вам не пришлось использовать чужой картографический сервис.

В этой инструкции показано, как настроить сервер растровых плиток. Если вам нужен сервер векторных плиток, вместо этого нужно перейти к инструкции по настройке векторного сервера TileServer GL/OpenMapTiles. Не знаете, какой из них лучше? Просто выберите сервер векторных плиток, который намного быстрее, чем сервер растровых плиток

Требования для развёртывания карты всей планеты довольно высоки:
Минимум 32Гб ОЗУ
1ТБ пространства на SSD

Потребуется много места на диске, если захотите ещё предварительно отрисовывать плитки, чтобы ускорить загрузку карты в браузере. Например, если вы собираетесь предварительно отобразить плитки с уровня масштабирования 0 до уровня масштабирования 15 для карты всей планеты, потребуется дополнительное место на диске объемом 460 ГБ.

Поэтому если карта всей планеты не нужна, то можно скачать карты отдельных регионов или стран.

Читать далее

Пеший поход Адыгея (Тхачи)

С 23 апреля по 8 мая я в небольшой компании отправился в пеший поход по предгорьям Западного Кавказа. Маршрут предполагал посещение гор Малый и Большой Тхач, что расположены на территории республики Адыгея.

Поход всё же начинается не с места отправки по маршруту, а с места отъезда от дома. Так что 23 апреля я прибыл на Московский вокзал в Санкт-Петербурге, чтобы отправиться на поезде 135А направлением С-Петер-Гл — Махачкала с выходом на станции Армавир

Ну а для красивой первой фотографии вставлю вид на горы Западный и Восточный Ачешбоки.

Плацкартный вагон поезда оказался из новой серии, которая ну никак не располагает к тому, чтобы с большими рюкзаками расположиться в вагоне: третьих полок нет, вместо них какие-то обрубки для мелкой поклажи; под сиденьями также не нашлось много места. В итоге, чтобы нормально посидеть пришлось все рюкзаки складировать на боковые места, а на ночь складывать под стол и в пространство между нижними купейными местами. Зато есть занавесочки и деревянный бортик на верхних местах. Удобно ли? Для кого как. Но явно не для туристов или тех, кто путешествует с большим багажом или даже с велосипедами. Вот как и куда можно на такие полки воткнуть велосипед? (про багажный вагон в курсе, но кто ж знал про такую подставу в обычном). РЖД, хотя бы предупреждайте на сайте при выборе билетов.

Читать далее

Если логи аудита самбы сильно разрастаются

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

В файле syslog были видны примерно следующие строки

Could not find opname mkdir: logging all

Как оказалось, в самбе версии 4.13 синтаксис команд опции «full_audit:success» отличается от прошлой версии 4.11. Полный список опций можно найти тут.

Ладожское озеро

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

Путь начинался от станции Ладожское озеро, до которой можно добраться, сев на электричку на Финляндском вокзале. Сначала было решено ехать вдоль Дороги жизни, но потом путь поменялся. И за основу маршрута брался трек отсюда — https://www.alltrails.com/explore/map/map-e0a2095—37. Только в обратном направлении.

Вокзал на станции Ладожское озеро выглядит необычно. Он построен в 1974 году и очертаниями здания напоминает гигантский противотанковый надолб. Под сводами сходящихся вверху плоскостей размещен небольшой музей — филиал музея Октябрьской железной дороги.

Вокзал станции Ладожское озеро
Вокзал станции Ладожское озеро
Читать далее

A common libs для redmine 4.1

При установке плагинов от rmplus на новую версию redmine (4.1 на момент публикации) возникает ошибка при установке плагина

NoMethodError: undefined method `alias_method_chain' for SettingsController:Class

Основной плагин для корректной работы плагинов компании rmplus называется «A Common Libs». Новую версию redmine плагин не поддерживает, а значит можно остаться навсегда на относительно старой версии 4.0.

Чтобы всё заработало как надо необходимо скачать обновлённую версию плагина отсюда — https://github.com/karthickmadhiazhagan/a_common_libs

Кратко, как ставить: перейдите в папку плагинов, выполните команду

git clone https://github.com/karthickmadhiazhagan/a_common_libs
bundle exec rake redmine:plugins:migrate RAILS_ENV=production

Если миграция прошла успешно, можно устанавливать нужные плагины (зависит от способа их установки). Либо через git clone, либо через копирование в папку сервера.

P.S. Версия redmine 4.2 уже поддерживается. (2021.06.15)

Создание Storage Spaces

Для создания нового хранилища в Windows можно использовать Storage Spaces. Из описания этой технологии у Microsoft

Storage Spaces — это технология Windows и Windows Server, которая помогает защитить данные от сбоев.

Он концептуально напоминает технологию RAID, реализованную в программном обеспечении. Можно использовать дисковые пространства для объединения трех или более дисков в пул носителей, а затем использовать емкость из этого пула для создания дисковых пространств. Как правило, они хранят лишние копии данных, поэтому при сбое одного из дисков сохраняется неповрежденная копия данных. При нехватке емкости просто добавьте дополнительные диски в пул носителей

Таким образом Storage Spaces чем-то напоминает менеджер файловых систем поверх физических дисков. Что-то типа аналога LVM в Linux или ZFS в Solaris (ну или OpenZFS в Linux)

Собственно сама суть краткой статьи о том, как оптимально создать новое хранилище типа RAID0, чтобы данные равномерно распределялись по дискам.

Читать далее