ServerAdmin.ru
31.3K subscribers
664 photos
55 videos
22 files
2.86K links
Авторская информация о системном администрировании.

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

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

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

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

Возвращаясь к контрольной точке. Там сервер довольно крупный. За это время расхождение со снимком набежало почти на 150 Гб. Смержить это всё быстро не получится. Немного запереживал, так как сервер там в целом нагружен. Дождался позднего вечера, сделал бэкап и потушил машину. На выключенной виртуалке удалил контрольную точку. Слияние минут 15-20 длилось. Прошло успешно.

Не люблю такие моменты. Затяжное слияние контрольных точек потенциально небезопасная процедура, поэтому не рекомендуется накапливать большие расхождения. Сделал контрольную точку, накатил изменения, убедился, что всё в порядке, удаляй. Нельзя оставлять их надолго. В этот раз обошлось. Я уже не первый раз так забываю. Как то раз целый год у меня провисела контрольная точка. Тоже благополучно объединилась с основой.

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

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

#виртуализация
👍110👎3
Для тех, кто работает с 1С, могу порекомендовать сайт Кухара Богдана. Я давно его знаю, подписан на его ютуб канал, смотрю выпуски. Не могу сказать, что там прям что-то очень нужное и полезное. Обычная базовая информация для системного администратора. Много рекламы его курса, куда он выносит наиболее интересные моменты из своих материалов.

Привлекло моё внимание его небольшой bat скрипт для бэкапа файловых баз в Windows, который он недавно анонсировал. Я много раз настраивал различным заказчикам файловые базы где-то на выделенном сервере. Это хорошее и экономное решение для работы 2-3 человек с базой. Актуально для аутсорсеров, где каждый бухгалтер ведёт кучу баз клиентов, и при этом работает там в основной один или с помощником.

- Описание скрипта
- Видео обзор

Файловая база представляет из себя обычный файл на диске, но при этом внутри там полноценная база данных. Не всегда простым копированием можно получить рабочий бэкап. Если во время копирования с базой работали пользователи, база может оказаться битой. То же самое с выгрузкой в dt. Она не является полноценным бэкапом, так как нет 100% гарантии, что из неё получится развернуть базу.

Самым надёжным способом сделать бэкап файловой базы - выгнать всех пользователей, запретить им вход и базу и после этого скопировать файл 1Cv8.1CD. Именно это и делает указанный скрипт, и не только. Он умеет:

▪️ Выгонять всех пользователей из базы и завершать работу платформы.
▪️ Если платформа зависла и штатно не завершила работу, завершает её принудительно.
▪️ Если база опубликована через Apache 2.4 на этом же сервере, то завершает сеансы 1С в веб сервере.
▪️ Жать бэкап базы с помощью 7zip.
▪️ Вести лог файл своей работы.
▪️ Запускаться через планировщик Windows.
▪️ Автоматически удалять старые копии.

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

Отдельно советую на сайте посмотреть раздел Администратору 1С. Там много полезных материалов, в том числе свежая инструкция:

PostgreSQL 16 + Cервер 1С x64 и 1С 8.3.23 на Ubuntu 22.04

#1С
👍86👎22
​​Я привык вместе с почтовыми серверами настраивать веб интерфейс на базе RoundCube. Простой и удобный интерфейс, написанный на php. Основной его минус - он почти не развивался последние лет 10. Недавно его под своё крыло взяла Nextcloud GmbH и пообещала добавить разработчиков, чтобы оживить панельку и вдохнуть в неё новую жизнь. Времени прошло немного, так что каких-то изменений пока нет. Выкатили один релиз с исправлением известных ошибок.

Много раз видел рекомендации на SnappyMail, это форк RainLoop, который больше не развивается. Решил посмотреть на SnappyMail и подключил к одному из почтовых серверов. Напишу то, на что обратил внимание сам по сравнению с RoundCube:

🔹SnappyMail имеет очень простой и быстрый веб интерфейс. Я, честно говоря, прям кайфую, когда вижу лёгкие и быстрые интерфейсы. Сейчас это редкость. Не сказать, что RoundCube тяжёлый, но SnappyMail легче и отзывчивее.

🔹Если вам не нужна общая адресная книга, то для работы SnappyMail не нужна СУБД. Она все настройки хранит в файлах. Написана тоже на php, так что для установки достаточно просто исходники положить в директорию веб сервера. Все дальнейшие настройки через веб интерфейс. Не нужно руками править конфиги. В RoundCube придётся по конфигам полазить, чтобы настроить.

🔹Как и RoundCube, SnappyMail поддерживает работу фильтров sieve. Из коробки стандартная тема поддерживает мобильные устройства.

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

🔹Для SnappyMail, как и RoundCube, есть много дополнительных плагинов. Но в отличие от круглого куба, в Snappy вся установка и настройка выполняется через веб интерфейс администратора. Не надо руками качать плагины и править конфиги. Это очень удобно. Набор плагинов тоже понравился.

🔹У SnappyMail есть готовые фильтры для Fail2ban, которые пресекают перебор учёток через веб интерфейс.

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

Единственное, что не понравилось - не увидел в SnappyMail плагин, который позволяет пользователю самостоятельно поставить отбойник, когда он уходит в отпуск. В RoundCube я в обязательном порядке его ставлю, пользователи активно используют. Можно это реализовывать с помощью фильтров, но отдельный плагин только под это дело удобнее.

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

#mailserver
👍88👎3
​​Если вам иногда приходится работать в Wireshark, а любому админу рано или поздно приходится это делать, то у меня для вас есть полезный репозиторий. Даже если он вам сейчас не нужен, сохраните его. Пригодится, когда расчехлите Wireshark.

https://github.com/amwalding/wireshark_profiles

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

1️⃣ Скачиваете из репозитория zip файл нужного вам профиля. Например, DNS.

2️⃣ В Wireshark идёте в раздел Edit ⇨ Configuration Profiles. Жмёте Import from zip files и импортируете скачанный профайл в zip файле. Выбираете его.

3️⃣ Выбираете сетевой интерфейс, с которого хотите собирать пакеты. Откроется основной интерфейс программы с готовыми настройками фильтров.

4️⃣ Потом загруженные фильтры можно быстро переключать в правом нижнем углу программы.

Ничего особенного тут нет, можно и самому набросать себе нужные фильтры. Но тут всё сделали за нас, упростив задачу. Как минимум, не помешают базовые фильтры на DNS, DHCP, HTTP, ARP, SMB, VLAN и т.д.

#network #wireshark
👍228👎2
​​В Linux относительно просто назначить выполнение того или иного процесса на заданном количестве ядер процессора. Для этого используется утилита taskset. Она может "сажать" на указанные ядра как запущенный процесс, так и запустить новый с заданными параметрами.

1️⃣ Покажу сразу на примерах. Допустим, у вас есть какой-то процесс, который по умолчанию может занимать ресурсы всех ядер процессора. Допустим, вы хотите разрешить ему работать только на первых двух. Для того, чтобы это сделать, нам необходимо узнать pid процесса:

# ps ax | grep mc
# ps -T -C mc | awk '{print $2}' | grep -E '[0-9]'
# pidof mc

Выбирайте любой способ, какой больше нравится. Смотрим, какие у нас процессоры и ядра в системе:

# lscpu | grep -i CPU\(s\)
# lscpu | grep -i numa
NUMA node(s):            1
NUMA node0 CPU(s):         0-3

Видим четыре CPU с 0 по 3. Посадим наш процесс на первые два ядра:

# taskset -pc 0-1 927
pid 927's current affinity list: 0-3
pid 927's new affinity list: 0,1

Где 927 - это pid процесса. Видим, что привязка изменилась с 0-3 на 0,1.

2️⃣ Менять привязку уже запущенных процессов мне кажется не таким полезным, как иметь возможность запустить процесс с заданными параметрами. Это более практичная возможность, для которой нетрудно придумать реальный пример.

Я активно использую архиватор pigz, который умеет жать всеми доступными ядрами. Ему можно задать ограничение на использование ядер, но он будет случайным образом занимать ядра и почти всегда нулевое будет занято. А его желательно оставить свободным для остальных задач. Особенно если вы снимаете дампы СУБД и сразу жмёте в каком-то нагруженном сервере. В таком случае можно явно во время запуска указать pigz, какие ядра использовать.

Для этого нужно запустить программу через taskset, указав ядра, на которых она будет работать. К сожалению, для этого не получится использовать простой список ядер, типа 1,2,3. Нужно использовать bitmask в полном или сокращённом виде. Например, использование только 0-го ядра будет выглядеть вот так:

# taskset 0x00000001 pigz testfile
или просто
# taskset 1 pigz testfile

Pigz будет жать только одним, нулевым ядром. Я до конца не разобрался, как быстро понять, какая маска тебе нужна. Самый простой способ это узнать, проверить на каком-то работающем процессе. Ему можно задать список ядер не маской, а явно. Допустим, нам нужна запустить архиватор только на 2 и 3 ядре. Для этого назначим, к примеру, эти ядра для htop и посмотрим нужную маску:

# taskset -pc 2-3 `pidof htop`
pid 984's current affinity list: 0-3
pid 984's new affinity list: 2,3
Смотрим маску:
# taskset -p `pidof htop`
pid 984's current affinity mask: c

Маска c. Запускаем pigz с этой маской, чтобы он жал только на 2 и 3 ядрах, оставив первые два свободными:

# taskset c pigz testfile

Я взял для примера именно pigz, потому что на нём наглядно видны все настройки. Какие ядра задал, такие он и использует. Для этого достаточно создать небольшой тестовый файл и понаблюдать через htop его поведение:

# dd if=/dev/zero of=/tmp/testfile bs=1024 count=2000000
# taskset 6 pigz testfile

Список масок, которые имеют отношение к первым 4-м ядрам:

1 - ядро 0
2 - ядро 1
3 - ядра 0,1
4 - ядро 2
5 - ядра 0,2
6 - ядра 1,2
7 - ядра 1,2,3
8 - ядро 3
9 - ядра 0,3
a - ядра 1,3
b - ядра 0,1,3
с - ядра 2,3
d - ядра 0,2,3

#linux #system
👍105👎2
​​Для бэкапа серверов под управлением Linux существует отличное бесплатное решение - Veeam Agent for Linux FREE. Я очень давно его знаю, но конкретно для Linux давно не пользовался. У меня есть статья по работе с ним:

Бэкап и перенос linux (centos, debian, ubuntu) сервера с помощью Veeam Agent for Linux

Она написана давно, поэтому я решил проверить, насколько актуален тот метод восстановления, что там описан. Забегая вперёд скажу, что актуален. Изменились некоторые детали, но в основном всё то же самое.

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

1️⃣ Скачал с сайта Veeam файл с репозиторием для Debian veeam-release-deb_1.0.8_amd64.deb и загрузочный ISO для восстановления Veeam Linux Recovery Media. Для загрузки нужна регистрация.

2️⃣ Скопировал файл с репозиторием на целевой сервер и подключил его:
# dpkg -i veeam-release-deb_1.0.8_amd64.deb

3️⃣ Установил veeam и дополнительные пакеты:
# apt install blksnap veeam cifs-utils

4️⃣ К сожалению, понадобилась перезагрузка сервера. Без перезагрузки не создавался бэкап. Veeam ругался, что не загружен модуль для снепшота диска. У меня так и не получилось его загрузить вручную. Вроде всё делал, что надо, но не заработало. Пришлось перезагрузиться и проблема ушла.

5️⃣ Так как на сервере у нас только один диск, мы не можем на него же класть бэкап, когда будем делать образ всей системы. Я решил использовать сетевой smb диск с другой виртуальной машины, которая запущена на целевом Proxmox, куда буду переносить систему. Для этого на ней поднял и настроил ksmbd, затем с помощью ssh настроил VPN туннель между машинами. Всё делал прям по инструкциям из указанных заметок. Заняло буквально 5-10 минут.

6️⃣ Запустил на целевой машине veeam:
# veeam
И с помощью псевдографического интерфейса настроил задание для бэкапа в сетевую папку smb. Там всё просто. Немного затупил с правильностью указания настроек для smb, так как не сразу понял формат, в котором надо записать путь к серверу (на картинке снизу скриншот правильных настроек). Но быстро разобрался. И ещё важный момент. На smb шару у вас должны быть права на запись. Если их нет, получите неинформативную ошибку. Я с этим проковырялся немного, пока не догадался проверить. Оказалось, что забыл дать права на запись в директорию, которая монтировалась по smb.

7️⃣ Запустил задание бэкапа и убедился, что он прошёл без ошибок.

8️⃣ Сделал на Proxmox новую виртуальную машину с диском, у которого размер не меньше исходной машины, которую бэкапили. Это важно. Даже если на диске занято очень мало места, перераспределить его при восстановлении на меньший диск не получится. Veeam просто не умеет этого делать.

9️⃣ Загрузил новую виртуалку с Veeam Linux Recovery Media, подключил туда по smb тот же сетевой диск, куда делал бэкап и успешно выполнил восстановление. Всё прошло без сучка и задоринки. Виртуалка сразу же загрузилась с восстановленного диска и заработала без каких-то дополнительных действий.

Такой вот полезный инструмент. Если локально ещё есть разные варианты, чем забэкапить машину, то с арендованными VPS всё не так просто. Veeam Agent for Linux позволяет из без проблем бэкапить и в случае необходимости восстанавливать локально.

#backup #veeam
1👍152👎8
​​Я одно время перепробовал кучу программ для ведения личных заметок. После этого собрал их все в одну публикацию (13 программ) и бросил это дело, потому что надоело. Таких программ море. Пробовать их, только время тратить. Сам сижу на Joplin + Singularity (недавно перешёл).

В закладках с тех пор остались некоторые варианты. Решил посмотреть кое-что и остановился на Memos. Эта штука мне прям понравилась. Покидал туда несколько заметок из Joplin. Формат один и тот же - Markdown, так что можно спокойно заметки переносить. Я где-то час погонял Memos, попробовал, почитал документацию.

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

🟢 Сразу понравился дизайн и оформление. Это чистая субъективщина. Когда увидел, сразу захотелось попробовать, потому что понравился минималистичный дизайн и хороший отклик. Приложение написано на Go + React.js. Работает очень шустро.

🟢 Memos поддерживает многопользовательскую работу со свободной регистрацией. То есть в целом это инструмент командной работы. Есть поддержка SSO с готовыми шаблонами для Github, Gitlab, Google, либо свой сервис через OAUTH2. Также встроена поддержка Keycloak. К общим заметкам можно оставлять комментарии.

🟢 По умолчанию используется база SQLite. В большинстве случаев этого за глаза хватит для текстовых заметок. Если сильно захочется, можно в MySQL или PostgreSQL перенести. Вложения могут храниться в базе, в файловой системе или в S3. Настраивается очень просто в веб интерфейсе. Я сразу на файловую систему переключил.

🟢 Простая интеграция с Telegram. Делаете своего бота, подключаете к Memos и создаёте заметки обычными сообщениями в телеге.

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

🟢 Записи упорядочены либо тэгами, либо календарём. Разбивки по проектам нет. То есть вся навигация по тэгам и датам. Мне лично это не понравилось. Я привык к проектам. Но сразу скажу, что по тэгам навигация сделана удобно. Они как проекты всегда на виду с правой стороны в интерфейсе.

🟢 Ставится, как и переносится очень быстро и просто. Это обычный Docker контейнер с базой данных и вложениями в виде файлов.
# docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:stable
Соответственно, достаточно бэкапить паочку .memos.

🟢 Memos умеет в один клик выгружать все заметки единым архивом в виде .md файлов. Это если куда-то перенести надо будет или сохранить бэкап.

🟢 Есть поддержка вебхуков, но я так и не понял, к каким событиям их можно привязать. В документации написано, что к созданию заметки, но я не понял, как это работает. Через хук передаётся создатель заметки, время и текст (это ихз документации).

🟢 Есть поддержка API с доступом по токенам. Правда в документации не увидел описание возможностей. По идее заметки можно создавать. Что там ещё делать.

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

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

#заметки
👍115👎1
​​Для администраторов Windows существует небольшая программа, написанная на каком-то стародавнем языке, потому что работает очень быстро и весит всего 4,2 Мб, которая помогает управлять терминальными серверами Windows. Хотя подойдёт не только для них, но и для любых серверов и рабочих станций, но писалась она именно для терминальников.

Называется Terminal Services Manager от компании LizardSystems. Это платная программа, но существует бесплатная версия без ограничений для персонального использования. Кто и как её в итоге использует – не проверяется. Лицензия получается автоматически через специальную форму на сайте. Заполняешь и сразу получаешь лицензионный ключ на почту. Я проверил, всё работает. Свою лицензию получил сразу же после отправки формы.

Terminal Services Manager умеет:

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

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

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

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

Программа простая, удобная, разбираться с настройкой не надо. Всё интуитивно понятно, настраивается сходу. Можно считать, что она бесплатна, так как использование никто не проверяет. Авторы не из России. Так и не понял, откуда они. Плюс, у них есть неплохой набор бесплатных программ: LanSpy, LanWhois, Remote Shutdown (эту программу я когда-то использовал), LanLoad.

#windows
👍163👎4
Просматривал на днях на reddit r/Sysadminhumor, где встретил любопытный комикс. Сходил на сайт автора, а их там полно. Мне лично понравился формат и его какой-то душевный подход. Переведу для тех, кто не очень знает английский, то, что написано на комиксе выше. Он получился поучительный.

- Это Боб. Боб - обычный процесс в Linux.
- Как и большинство процессов, Боб имеет свои потоки, с которыми он делит контекст, общую память и любовь.
- Как и любой процесс, он рано или поздно будет уничтожен. Когда мы аккуратно завершаем процесс с помощью SIGTERM,
- мы даём ему шанс пообщаться с потомками об этом, так что они успевают завершить все свои дела
- и попрощаться друг с другом. Такова жизнь процесса.
- С другой стороны, когда мы прибиваем процесс через SIGKILL, мы не даём ему возможности закончить свои дела и попрощаться.
- И это ужасно.
- Так что, пожалуйста, не используйте SIGKILL. Позвольте потомкам спокойно завершить свою работу.


Мораль такова. Прибивайте процесс так:
# kill <process_id>

а не так:
# kill -9 <process_id>


⇨ Сайт автора с комиксами: https://turnoff.us

#мем
👍140
​​🎓 Мне давно скидывали ссылку на небольшой курс по GIT на youtube для начинающих. Там с самых азов даётся инфа для тех, кто с GIT никогда не работал. Только сейчас дошли руки посмотреть. Вроде неплохо сделано, послушал введение. Комментарии хорошие, просмотров много. Весь материал разбит на небольшие ролики по 5-7 минут, где разбирается одна тема. Если вы совсем нулёвый по этой теме, то это для вас:

Базовый курс по Git

Заодно решил подбить всю эту тему с обучением GIT.

▪️ Обзорное видео по GIT от авторского ютуб канала Артема Матяшова - Git. Большой практический выпуск. Автор очень хорошо объясняет. Если прям ничего про GIT не знаете, рекомендую начать с него. Хороший монтаж, подача, оформление. Я почти все его видео с удовольствием смотрел. У него их немного.

🔥Очень прикольная визуальная обучалка по основам GIT - LearnGitBranching. Она поддерживается, регулярно обновляется. Качественно сделана. Есть русский язык.

▪️ Ещё одна игра по обучению GIT - Oh My Git! Она попроще learnGitBranching, но в целом тоже неплохая.

▪️ Бесплатный курс по основам от Слёрм - Git для начинающих.

▪️ Бесплатные курсы по основам GIT на Stepik: Основы работы с Git и Самоучитель по GIT.

▪️ Более продвинутый курс с погружением в нюансы, ориентированный на разработчиков - Git курс от сообщества javascript.ru.

▪️ Бесплатная книга на русском языке - Pro Git book.

В завершении добавлю мотивирующий текст, который я написал ещё 3 года назад здесь на канале, если вы всё ещё сомневаетесь, надо ли вам разбираться с GIT или нет:

Хочу посоветовать всем системным администраторам, кто это еще не сделал, обратить пристальное внимание на git. Сам я давно пользуюсь этой системой контроля версий, но только недавно дошел до того, что стал там хранить практически все текстовые данные. 

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

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

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

С тех пор я неизменно верен себе. Все нужные скрипты, конфиги в обязательном порядке хранятся в репозиториях git, как локально на ноуте, так и на удалённых сервисах.

#обучение #git #подборка
👍114👎3
​​Когда мне нужно было быстро поднять smb сервер, чтобы разово перекинуть какие-то файлы, раньше я устанавливал samba и делал для неё простейший конфиг.

Потом в Linux появилась поддержка протокола smb и сервера на его основе в ядре в виде пакета ksmbd. Стал использовать его. Хотя принципиально ни по времени настройки, ни по удобству он особо не выигрывает у самбы. Настройка плюс-минус такая же. В нём основное преимущество в скорости по сравнению с samba, что для разовых задач непринципиально.

На днях в комментариях поделились информацией о том, что есть простой smb сервер на базе python. Решил его попробовать. Он реализован в отдельном пакете python3-impacket.

# apt install python3-impacket

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

# cd /usr/share/doc/python3-impacket/examples/
# python3 smbserver.py share /mnt/share -smb2support

share - имя шары
/mnt/share - директория для smb сервера, не забудьте на неё сделать права 777, так как доступ анонимный
smb2support - использовать 2-ю версию протокола, если это не добавить, то с Windows 11 подключиться не получится.

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

Если нужна аутентификация, то её можно добавить:

# python3 smbserver.py share /mnt/share -smb2support -username user -password 123

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

Если подключаться с Linux, то таких проблем нет. Смотрим информацию о сетевых папках сервера:

# smbclient -L 172.20.204.133 --user user --password=123

Подключаемся к настроенной шаре:

# smbclient //172.20.204.133/share --user user --password=123

Такой вот инструмент. В принципе, удобно. Можно использовать наравне с веб сервером.

#python #fileserver
👍139👎3
​​Расскажу про необычный и полезный сервис, который позволяет создать зашифрованные HTML странички, которые могут быть расшифрованы полностью на стороне клиента за счёт возможностей современных браузеров и JavaScript. То есть это полностью client side шифрование. На веб сервере лежит обычная html страничка. Никакой поддержки шифрования со стороны сервера не требуется.

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

Исходники сервера открыты:

https://github.com/robinmoisson/staticrypt

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

https://robinmoisson.github.io/staticrypt/

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

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

Вот пример зашифрованной странички, которую я создал с помощью этого сервиса: https://serveradmin.ru/files/encrypted.html Пароль - serveradmin. Можете скачать html код и посмотреть, что он из себя представляет. В репозитории проекта описан принцип работы по шифрованию и расшифровке.

Напомню, что ранее я рассказывал про сервис link-loc, который похожим образом шифрует не саму страницу, а ссылку на неё. В связке с этим сервисом получается вообще полное шифрование и ссылки, и самой страницы.

#security
👍94👎4
​​Для получения бесплатных TLS сертификатов от Let's Encrypt существуют два набора скриптов: certbot и acme.sh. Может ещё какие-то есть, но эти самые популярные. Certbot написан на python, acme.sh полностью на bash.

Я всегда использовал certbot. Просто привычка. Начал с него и всегда пользуюсь именно им. Много раз слышал, что acme.sh более удобен и функционален. Плюс, не привязан к версии python. Он вообще не нужен, хотя для базовых систем это не принципиально. Python обычно есть на всех полноценных системах Linux.

Решил я посмотреть на acme.sh и сравнить с certbot. Устанавливается он просто:

# curl https://get.acme.sh | sh -s [email protected]

Обязательно измените email. С указанным доменом example потом ничего выпустить не получится. Установщик делает 3 вещи:

1️⃣ Копирует скрипт acme.sh и некоторые конфиги в домашнюю директорию ~/.acme.sh/
2️⃣ Подключает в .bashrc окружение из ~/.acme.sh/acme.sh.env. По сути просто делает алиас alias acme.sh="/root/.acme.sh/acme.sh".
3️⃣ Добавляет в cron пользователя задачу на ежедневную попытку обновления сертификатов.

После этого можно сразу пробовать получить сертификат. Acme.sh поддерживает разные CA, поэтому надо явно указать letsencrypt:

# acme.sh --issue --server letsencrypt -d 329415.simplecloud.ru -w /var/www/html

Если всё прошло без ошибок, то в директории ~/.acme.sh появится папка с именем домена, где будет лежать сертификат, ключ и некоторые настройки для этого домена. Теперь можно куда-то скопировать этот сертификат с ключом и перезапустить веб сервер. Например, в директорию /etc/nginx/certs/. Можно это сделать вручную, а можно через тот же acme.sh:

acme.sh --install-cert -d 329415.simplecloud.ru \
--key-file    /etc/nginx/certs/key.pem \
--fullchain-file /etc/nginx/certs/cert.pem \
--reloadcmd   "service nginx force-reload"

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

В целом, по использованию плюс-минус то же самое, что и в certbot. Какого-то явного удобства не увидел. Плюс только один - простая установка, так как это обычный bash скрипт без зависимостей. Но я по-прежнему буду использовать certbot, потому что мне больше нравится делать вот так:

# apt install certbot
а не так:
# curl https://get.acme.sh | sh -

Если кто-то пользуется acme.sh и знает его явные преимущества, прошу поделиться информацией.

Исходники

#webserver
👍125👎2
​​В ОС на базе Linux есть разные способы измерить время выполнения той или иной команды. Самый простой с помощью утилиты time:

# time curl https://127.0.0.1/server-status
Active connections: 1 
server accepts handled requests
 6726 6726 4110 
Reading: 0 Writing: 1 Waiting: 0 

real 0m0.015s
user 0m0.006s
sys 0m0.009s

Сразу показал на конкретном примере, как я это использовал в мониторинге. Через curl обращаюсь на страницу со статистикой веб сервера Nginx. Дальше распарсиваю вывод и забираю в том числе метрику real, которая показывает реальное выполнение запроса. Сама по себе в абсолютном значении эта метрика не важна, но важна динамика. Когда сервер работает штатно, то эта метрика плюс-минус одна и та же. И если начинаются проблемы, то отклик запроса страницы растёт. А это уже реальный сигнал, что с сервером какие-то проблемы.

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

# apt install hyperfine

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

Например, в hyperfine можно обернуть какую-то команду и получить информацию по её выполнению. Покажу на примере создания дампа mysql базы:

# hyperfine --runs 1 --export-json mysqldump.json 'mysqldump --opt -v --no-create-db db01 -u'user01' -p'pass01' > ~/db01.sql'

На выходе получаем файл mysqldump.json с информацией:

{
 "results": [
  {
   "command": "mysqldump --opt -v --no-create-db db01 -u'user01' -p'pass01' > ~/db01.sql",
   "mean": 2.7331184105,
   "stddev": null,
   "median": 2.7331184105,
   "user": 2.1372425799999997,
   "system": 0.35953332,
   "min": 2.7331184105,
   "max": 2.7331184105,
   "times": [
    2.7331184105
   ],
   "exit_codes": [
    0
   ]
  }
 ]
}

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

Точно так же можно собирать информацию о реальном отклике сайта:

# hyperfine --runs 3 'curl -s https://github.com/'

Можно раз в минуту прогонять по 3 теста с нужной вам локации, записывать результат и сравнивать со средним или с заданным пределом.

Я привел примеры только для мониторинга. Так то hyperfine многофункционален. Так что берите на вооружение.

#linux #мониторинг #perfomance
👍93👎4
Давно не было заметок на тему почтовых серверов. Год назад тема была очень живая, когда Яндекс объявил, что бесплатная почта для доменов перестаёт быть бесплатной. Судя по всему он на этом неплохо заработал. Часть знакомых мне людей в итоге оплатила услугу и продолжает с тех пор пользоваться уже за деньги.

Сегодня хотел не об этом. Попался на глаза очередной готовый почтовый сервер на базе известных open source компонентов, упакованных в Docker - docker-mailserver. На первый взгляд всё это очень сильно похоже на Mail-in-a-Box или Mailcow, которые уже давно известны и на слуху. У них даже количество звёзд на гитхабе примерно одинаковое.

Основные компоненты и особенности этой сборки:

 Postfix + Dovecot + Amavis
 Rspamd и SpamAssassin
 Clamav + Fail2ban
 OpenDKIM и OpenDMARC
 Postscreen + Postgrey
🔥SASLauthd с поддержкой LDAP
 Не используются базы данных, только конфигурационные файлы.

Стек очень стандартный и лично у меня к нему претензий никаких. Если собираю почтовик сам, то использую примерно эти же компоненты. Так что если вы любитель Docker и вам непременно нужен почтовый сервер в контейнерах, то это как минимум стандартный вариант без экзотики. Можно брать и пользоваться. Даже если что-то заглючит, можно залезть и поправить, потому что по каждому из этих компонентов есть масса инструкций и руководств.

У продукта неплохая документация: описание структуры, какие DNS записи нужны, как настроить окружение, пример рабочего docker-compose для запуска и т.д. В общем, я почитал, впечатление хорошее. Подробная документация обычно признак зрелого продукта. В этом плане он выглядит более привлекательно, чем Mail-in-a-Box.

С другой стороны, docker-mailserver ориентирован на максимальную простоту и снижение требований по ресурсам. По сути это минимальное ядро для реализации современного почтового сервера. Для запуска достаточно 1 vCore и 512MB RAM. Рекомендуется: 1 vCore 2GB RAM. У этой сборки нет ни интерфейса для администрирования, ни веб интерфейса для почты. Пользователи создаются консольными командами или берутся из LDAP.

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

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

Подборка бесплатных почтовых серверов

Надо бы её обновить. Уже есть чем дополнить. Того же Mail-in-a-Box там нет, или Modoboa. Думаю, организую в ближайшее время.

Отдельное внимание обращаю на бесплатную версию Tegu. Я давно себе поднял для технических нужд и пользуюсь. Очень простой в настройке почтовый сервер. Состоит из одного бинарника на Go и конфига. Уже имеет встроенный веб интерфейс для управления. То есть просто рисуете конфиг, запускаете бинарник и у вас готовый почтовый сервер, где реализованы все основные возможности стандартного почтового сервера. Для тех, кто не хочет заморачиваться по этой теме, а нужен просто работающий сервер - идеальный вариант. У меня есть заметка, где я Tegu упаковал в deb пакет сразу вместе со службами для systemd.

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

#mailserver
👍96👎4
​​Я когда-то давно уже рассказывал про сервис мониторинга UptimeRobot. Хочу лишний раз про него напомнить, так как сам с тех пор им так и пользуюсь для личных нужд.

По своей сути это простая пинговалка, проверка открытых TCP портов и доступности сайтов. У неё есть бесплатный тарифный план на 50 проверок с периодичностью не чаще одного раза в 5 минут. Для личных нужд этого за глаза.

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

Я туда загнал всякие свои личные проверки типа интернета в квартире и на даче, личные VPS и т.д. Для работы как-то особо не надо. Там и так везде разные мониторинги. А для себя просто по кайфу этим приложением пользоваться.

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

#мониторинг #бесплатно
👍87👎6
​​Расскажу вам про один любопытный инструмент, который часто используют либо пентестеры, либо хакеры, чтобы закрепиться в чужой инфраструктуре. А так как это всё напрямую связано с системным администрированием, то инструмент может пригодиться и в обычных делах. Благо он очень простой для использования и освоения, поэтому относительно популярный. По нему много информации в англоязычном интернете.

Речь пойдёт про Chisel — это TCP/UDP туннель, который работает поверх HTTP с использованием SSH. Причём представляет он из себя один бинарник, написанный на GO. Один и тот же файл и для сервера, и для клиента, работает под всеми популярными системами. То есть вы можете поднять сервер на Windows, а подключиться клиентом с Linux и наоборот. Благодаря тому, что chisel работает поверх HTTP, вы очень быстро и просто можете поднять необходимый туннель там, где этот протокол открыт. Покажу сразу на примерах.

1️⃣ Пример, который в настоящее время очень актуален. Быстро поднимаем SOCKS5 прокси, через который будем выходить в интернет. Качаем бинарник под свою систему из репозитория:
# wget https://github.com/jpillora/chisel/releases/download/v1.9.1/chisel_1.9.1_linux_amd64.gz
Делаем его исполняемым и запускаем сервер:
# ./chisel server --port 80 --socks5
Подключаемся с Windows машины:
> chisel.exe client https://<server-ip>:80 socks
Теперь идём в браузер и настраиваем socks прокси: адрес - 127.0.0.1, порт 1080. Проверяем на любом сервисе для определения ip адреса. Браузер должен выходить в интернет через IP адрес сервера. Можно добавить аутентификацию:
# ./chisel server --port 80 --socks5 --auth user123:password321
> chisel.exe client --auth user123:password321 https://188.227.57.126:80 socks
Очень просто и быстро. Не нужны никакие VPN туннели. Оставляем отдельный браузер под эту прокси и выходим по мере нужды в интернет через него.

2️⃣ Ещё пример. Допустим, мы хотим подключиться по SSH к машине, к которой нет доступа извне, но сама она может по HTTP стучаться наружу. Очень часто HTTP протокол открыт хотя бы для того, чтобы качать обновления на сервер или для каких-то других нужд. Берём любой свой сервер, к которому есть прямой доступ через интернет и запускаем там chisel. Если свободен 80-й порт, можно прямо на нём. Если нет, то выбираем любой другой.
# ./chisel server -p 80 --reverse
Теперь идём на закрытый сервер, качаем туда бинарник под свою систему и подключаемся как клиент к серверу, где мы до этого запустили chisel:
# ./chisel client https://<server-ip>:80 R:2222:localhost:22
При подключении клиента будет создан обратный туннель с 2222 порта сервера на 22-й порт клиента. Теперь, чтобы подключиться по SSH к клиенту, достаточно выполнить на сервере:
# ssh -p 2222 [email protected]
и ввести учётные данные от клиента. Таким образом, не имея прямого доступа к клиенту, мы подключились по SSH к нему с использованием обратного туннеля по HTTP, который клиент инициировал сам.

3️⃣ Обратный пример, когда мы хотим не с сервера подключиться к клиенту, а с клиента подключиться к какому-то сервису на сервере, доступ к которому напрямую закрыт. Допустим, на сервере крутился mysql на 127.0.0.1:3306. Мы хотим к нему напрямую подключиться с клиента. Запускаем так же сервер:
# ./chisel server -p 80 --reverse
Подключаемся к нему клиентом:
# ./chisel client https://<server-ip>:80 33306:localhost:3306
Теперь с клиента вы можете подключиться к mysql серверу:
# mysql -h 127.0.0.1 -P 33306 -u root
Попадёте в консоль сервера, к которому подключились клиентом.

Те, кто активно пользуются возможностями SSH, думаю, уже поняли, что это все те же возможности протокола SSH, только обёрнутые в HTTP через chisel. Про то, как то же самое делать напрямую через SSH я писал ранее:

⇨ SOCKS-прокси через ssh и переадресация портов

Chisel умеет маскировать себя. Для этого есть ключ --backend Если на сервер приходит обычный HTTP запрос, не от клиента, он может перенаправить его на web сервер.

Исходники

#vpn #ssh
👍159👎2
Небольшая шпаргалка с командами, которая пригодится, когда у вас закончилось свободное место на дисках на сервере под управлением Linux.

🟢 Смотрим, что у нас вообще по занимаемому месту:

# df -h

🟢 Если в какой-то точке монтирования занято на 100% свободное место, можно быстро посмотреть, в каких конкретно директориях оно занято. Тут может быть много разных вариантов:

# du -h -d 1 / | sort -hr
# du -hs /* | sort -hr
Ограничиваем вывод:
# du -h -d 1 / | sort -hr | head -10
Смотрим топ 20 самых больших директорий:
# du -hcx --max-depth=6 / | sort -rh | head -n 20
Смотрим топ 20 самых больших файлов:
# find / -mount -ignore_readdir_race -type f -exec du -h "{}" + 2>&1 \
> | sort -rh | head -n 20

🟢 На всякий случай проверяем inodes. Иногда свободное место заканчивается из-за них:

# df -ih

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

# lsof | grep '(deleted)'
# lsof +L1

Если увидите там файлы большого размера, то посмотрите, какая служба их держит открытыми и перезапустите её. Обычно это помогает. Если служба зависла, то грохните её принудительно через kill -9 <pid>.

🟢 Ещё один важный момент. Может получиться так, что du оказывает, что всё место занято. В файловой системе напрямую вы не можете найти, чем оно занято, так как сумма всех файлов и директорий явно меньше, чем занято места. Среди удалённых файлов тоже ничего нет. Тогда проверяйте свои точки монтирования. Бывает так, что у вас, к примеру, скриптом монтируется сетевой диск в /mnt/backup и туда копируются бэкапы. А потом диск отключается. Если по какой-то причине в момент бэкапа диск не подмонтируется, а данные туда скопируются, то они все лягут на корневую систему, хоть и в папку /mnt/backup. Если после этого туда смонтировать сетевой диск, то ранее скопированные файлы будут не видны, но они будут занимать место. Ситуация хоть и кажется довольно редкой, но на самом деле она иногда случается и я сам был свидетелем такого. И читатели писали такие же истории. Вот одна из них. Поэтому если скриптом подключаете диски, то всегда проверяйте, успешно ли они подключились, прежде чем копировать туда файлы. Вот примеры, как это можно сделать.

#bash #terminal
👍193👎3
​​Нравятся тенденции последних лет по принятию разных полезных современных утилит в базовые репозитории популярных дистрибутивов. Недавно рассказывал про hyperfine и bat. К ним можно теперь добавить утилиту duf, как замену df. Она теперь тоже переехала в базовый репозиторий:

# apt install duf

Когда первый раз про неё писал, её там не было. Качал бинарник вручную. Рассказывать про неё особо нечего. Так же, как и df, duf показывает использование диска разных устройств и точек монтирования. Вывод более наглядный, чем в df. Плюс, есть несколько дополнительных возможностей, которые могут быть полезны:

▪️ Умеет делать вывод в формате json:
# duf -json

▪️ Умеет сразу сортировать по разным признакам:
# duf -sort size
# duf -sort used
# duf -sort avail

▪️ Умеет группировать и сортировать устройства:
# duf --only local
# duf --only network
# duf --hide local
# duf --only-mp /,/mnt/backup
и т.д.

То есть эта штука удобна не только для визуального просмотра через консоль, но и для использования в различных костылях, велосипедах и мониторингах. Не нужно парсить регулярками вывод df, а можно отфильтровать, выгрузить в json и обработать jq. Написана duf на GO, работает шустро. Хороший софт, можно брать на вооружение.

#linux #terminal
👍202👎3
▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересными/полезными. Как обычно к выходным.

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

Meet LocalSend - A Cross-Platform, Open Source Alternative to AirDrop and Quick Share!
Я уже рассказывал ранее про программу LocalSend. С тех пор, как узнал про неё, постоянно пользуюсь на всех семейных устройствах. Больше всего оценила простоту и удобство передачи файлов между устройствами жена. Популярный IT блоггер Techno Tim снял подробный обзор про эту бесплатную программу. Рекомендую 👍.

Google Maps Integration With Zabbix Geomap Widget
Небольшой обзорный ролик от Dmitry Lambert по интеграции Zabbix с Google Maps. Он, кстати, открыл отдельный канал Dmitry Lambert Tech, где будет выкладывать IT ролики на различные тематики, как остальные блоггеры. Я посмотрел, мне не зашло про всякие TrueNAS и NextCloud смотреть. Они у всех блоггеров примерно одинаковые.

Мобильное приложение Сингулярити: обзор 2024
Как я уже говорил, перешёл на программу по ведению дел и задач Сингулярити. Соответственно, подписался на их канал. Недавно вышел большой обзор мобильного приложения, которым я тоже пользуюсь. Приложение удобное, мне нравится. Реально использую на смартфоне, хоть и не часто. До этого использовал сервис todoist, но приложением их не пользовался. Субъективно, у Сингулярити оно удобнее.

ВСЁ ПРО ИГРЫ НА ЛИНУКСЕ (2024)
Чисто развлекательный контент для меня, так как автор снимает про Linux в качестве рабочей и развлекательной машины, а у меня винда для этого. Просто нравятся ролики этого автора. Хороший монтаж, картинка, тематика и т.д. Так что я их все смотрю. Они редко выходят, поэтому много времени не занимает.

Pika Backup -An open source linux backup solution that rivals the ease of Time Machine!
Когда увидел ролик, обрадовался. Подумал, что-то интересное про бэкапы, так как на этом канале обычно полезное и интересное выходит. Продукт может и неплохой, так как работает на базе BorgBackup, но это по сути GUI обёртка вокруг него. Актуально только для тех, у кого либо рабочая машина под Linux, либо на серверах GIU стоит. У меня ни того, ни другого, так что для меня материал оказался бесполезен. А сама программа неплохая.

Immich для просмотра и хранения личных фото и видео
Immich – одно из самых популярных open source решений для хостинга фотографий и видеороликов. Я в своё время делал подборку подобных решений, где про Immich не упомянул. Автор подробно рассказывает про этот сервис. Как и где развернуть, как спрятать за прокси, как настроить. В общем, хороший и подробный обзор-инструкция.

Install a self-hosted VPN platform // Netbird
Обзор и настройка популярного сервиса netbird.io для организации приватных сетей с peer-to-peer соединениями. Это что-то похожее на Tailscale, современный Hamachi или Nebula. Есть open source версия для установки на свой сервер. Думаю, имеет смысл попробовать этот продукт и написать заметку. Построено на базе WireGuard.

У меня на этом всё. Если тоже посмотрели что-то интересное и полезное, поделитесь в комментариях.

#видео
👍44👎4